diff options
Diffstat (limited to 'tests/ui/unsized/unsized-struct.rs')
-rw-r--r-- | tests/ui/unsized/unsized-struct.rs | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/tests/ui/unsized/unsized-struct.rs b/tests/ui/unsized/unsized-struct.rs new file mode 100644 index 000000000..bfa5aa0a5 --- /dev/null +++ b/tests/ui/unsized/unsized-struct.rs @@ -0,0 +1,18 @@ +fn is_sized<T:Sized>() { } +fn not_sized<T: ?Sized>() { } + +struct Foo<T> { data: T } +fn foo1<T>() { not_sized::<Foo<T>>() } // Hunky dory. +fn foo2<T: ?Sized>() { not_sized::<Foo<T>>() } +//~^ ERROR the size for values of type +// +// Not OK: `T` is not sized. + +struct Bar<T: ?Sized> { data: T } +fn bar1<T: ?Sized>() { not_sized::<Bar<T>>() } +fn bar2<T: ?Sized>() { is_sized::<Bar<T>>() } +//~^ ERROR the size for values of type +// +// Not OK: `Bar<T>` is not sized, but it should be. + +fn main() { } |