add unsized coercion test
This commit is contained in:
parent
76e755cf4a
commit
bee13d18af
2 changed files with 24 additions and 0 deletions
10
src/test/ui/unsized/param-mentioned-by-different-field.rs
Normal file
10
src/test/ui/unsized/param-mentioned-by-different-field.rs
Normal file
|
@ -0,0 +1,10 @@
|
|||
// We must not allow this with our current setup as `T`
|
||||
// is mentioned both in the tail of `Foo` and by another
|
||||
// field.
|
||||
struct Foo<T: ?Sized>(Box<T>, T);
|
||||
|
||||
fn main() {
|
||||
let x: Foo<[u8; 1]> = Foo(Box::new([2]), [3]);
|
||||
let y: &Foo<[u8]> = &x; //~ ERROR mismatched types
|
||||
assert_eq!(y.0.len(), 1);
|
||||
}
|
|
@ -0,0 +1,14 @@
|
|||
error[E0308]: mismatched types
|
||||
--> $DIR/param-mentioned-by-different-field.rs:8:25
|
||||
|
|
||||
LL | let y: &Foo<[u8]> = &x;
|
||||
| ---------- ^^ expected slice `[u8]`, found array `[u8; 1]`
|
||||
| |
|
||||
| expected due to this
|
||||
|
|
||||
= note: expected reference `&Foo<[u8]>`
|
||||
found reference `&Foo<[u8; 1]>`
|
||||
|
||||
error: aborting due to previous error
|
||||
|
||||
For more information about this error, try `rustc --explain E0308`.
|
Loading…
Add table
Reference in a new issue