summaryrefslogtreecommitdiffstats
path: root/src/test/ui/unsized/unsized5.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/ui/unsized/unsized5.rs')
-rw-r--r--src/test/ui/unsized/unsized5.rs34
1 files changed, 34 insertions, 0 deletions
diff --git a/src/test/ui/unsized/unsized5.rs b/src/test/ui/unsized/unsized5.rs
new file mode 100644
index 000000000..befd2244d
--- /dev/null
+++ b/src/test/ui/unsized/unsized5.rs
@@ -0,0 +1,34 @@
+// Test `?Sized` types not allowed in fields (except the last one).
+
+struct S1<X: ?Sized> {
+ f1: X,
+ //~^ ERROR the size for values of type
+ f2: isize,
+}
+struct S2<X: ?Sized> {
+ f: isize,
+ g: X,
+ //~^ ERROR the size for values of type
+ h: isize,
+}
+struct S3 {
+ f: str,
+ //~^ ERROR the size for values of type
+ g: [usize]
+}
+struct S4 {
+ f: [u8],
+ //~^ ERROR the size for values of type
+ g: usize
+}
+enum E<X: ?Sized> {
+ V1(X, isize),
+ //~^ ERROR the size for values of type
+}
+enum F<X: ?Sized> {
+ V2{f1: X, f: isize},
+ //~^ ERROR the size for values of type
+}
+
+pub fn main() {
+}