]> git.lizzy.rs Git - rust.git/commitdiff
Add tests for unsized-locals functions stability.
authorMasaki Hara <ackie.h.gmai@gmail.com>
Sun, 18 Nov 2018 15:26:05 +0000 (00:26 +0900)
committerMasaki Hara <ackie.h.gmai@gmail.com>
Wed, 21 Nov 2018 13:20:22 +0000 (22:20 +0900)
src/test/run-pass/unsized-locals/unsized-exprs.rs
src/test/ui/unsized-locals/auxiliary/ufuncs.rs [new file with mode: 0644]
src/test/ui/unsized-locals/unsized-exprs3.rs [new file with mode: 0644]
src/test/ui/unsized-locals/unsized-exprs3.stderr [new file with mode: 0644]

index 4b988f1e72d5aff2300c9bf42b5554bda4342787..bc64fcdec2e3934a68fa378f8b1c51a57cc2fde6 100644 (file)
@@ -34,4 +34,5 @@ fn main() {
     udrop::<[u8]>((*foo()));
     udrop::<[u8]>((*tfoo()).1);
     *afoo() + 42;
+    udrop as fn([u8]);
 }
diff --git a/src/test/ui/unsized-locals/auxiliary/ufuncs.rs b/src/test/ui/unsized-locals/auxiliary/ufuncs.rs
new file mode 100644 (file)
index 0000000..065563d
--- /dev/null
@@ -0,0 +1,3 @@
+#![feature(unsized_locals)]
+
+pub fn udrop<T: ?Sized>(_x: T) {}
diff --git a/src/test/ui/unsized-locals/unsized-exprs3.rs b/src/test/ui/unsized-locals/unsized-exprs3.rs
new file mode 100644 (file)
index 0000000..2133b01
--- /dev/null
@@ -0,0 +1,10 @@
+// aux-build:ufuncs.rs
+
+extern crate ufuncs;
+
+use ufuncs::udrop;
+
+fn main() {
+    udrop as fn([u8]);
+    //~^ERROR E0277
+}
diff --git a/src/test/ui/unsized-locals/unsized-exprs3.stderr b/src/test/ui/unsized-locals/unsized-exprs3.stderr
new file mode 100644 (file)
index 0000000..42f91a9
--- /dev/null
@@ -0,0 +1,14 @@
+error[E0277]: the size for values of type `[u8]` cannot be known at compilation time
+  --> $DIR/unsized-exprs3.rs:8:5
+   |
+LL |     udrop as fn([u8]);
+   |     ^^^^^ doesn't have a size known at compile-time
+   |
+   = help: the trait `std::marker::Sized` is not implemented for `[u8]`
+   = note: to learn more, visit <https://doc.rust-lang.org/book/second-edition/ch19-04-advanced-types.html#dynamically-sized-types-and-the-sized-trait>
+   = note: all function arguments must have a statically known size
+   = help: unsized locals are gated as an unstable feature
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0277`.