]> git.lizzy.rs Git - rust.git/blob - src/test/ui/dst/dst-bad-coerce4.rs
Rollup merge of #100479 - compiler-errors:argument-type-error-improvements, r=lcnr
[rust.git] / src / test / ui / dst / dst-bad-coerce4.rs
1 // Attempt to coerce from unsized to sized.
2
3 #![feature(unsized_tuple_coercion)]
4
5 struct Fat<T: ?Sized> {
6     ptr: T
7 }
8
9 pub fn main() {
10     // With a vec of isizes.
11     let f1: &Fat<[isize]> = &Fat { ptr: [1, 2, 3] };
12     let f2: &Fat<[isize; 3]> = f1;
13     //~^ ERROR mismatched types
14     //~| expected array `[isize; 3]`, found slice `[isize]`
15     //~| expected reference `&Fat<[isize; 3]>`
16     //~| found reference `&Fat<[isize]>`
17
18     // Tuple with a vec of isizes.
19     let f1: &([isize],) = &([1, 2, 3],);
20     let f2: &([isize; 3],) = f1;
21     //~^ ERROR mismatched types
22     //~| expected array `[isize; 3]`, found slice `[isize]`
23     //~| expected reference `&([isize; 3],)`
24     //~| found reference `&([isize],)`
25 }