diff options
| author | Masaki Hara <ackie.h.gmai@gmail.com> | 2018-11-19 00:26:05 +0900 |
|---|---|---|
| committer | Masaki Hara <ackie.h.gmai@gmail.com> | 2018-11-21 22:20:22 +0900 |
| commit | 2ff6ffc872645bf6f5bc7dda4a817a1fc7789684 (patch) | |
| tree | 04a69f00c59422e6794023e8d0b96676d860a8ac | |
| parent | 8ab5be13a31261317c0e4b52bd4743da03e5bf74 (diff) | |
| download | rust-2ff6ffc872645bf6f5bc7dda4a817a1fc7789684.tar.gz rust-2ff6ffc872645bf6f5bc7dda4a817a1fc7789684.zip | |
Add tests for unsized-locals functions stability.
| -rw-r--r-- | src/test/run-pass/unsized-locals/unsized-exprs.rs | 1 | ||||
| -rw-r--r-- | src/test/ui/unsized-locals/auxiliary/ufuncs.rs | 3 | ||||
| -rw-r--r-- | src/test/ui/unsized-locals/unsized-exprs3.rs | 10 | ||||
| -rw-r--r-- | src/test/ui/unsized-locals/unsized-exprs3.stderr | 14 |
4 files changed, 28 insertions, 0 deletions
diff --git a/src/test/run-pass/unsized-locals/unsized-exprs.rs b/src/test/run-pass/unsized-locals/unsized-exprs.rs index 4b988f1e72d..bc64fcdec2e 100644 --- a/src/test/run-pass/unsized-locals/unsized-exprs.rs +++ b/src/test/run-pass/unsized-locals/unsized-exprs.rs @@ -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 index 00000000000..065563d45a4 --- /dev/null +++ b/src/test/ui/unsized-locals/auxiliary/ufuncs.rs @@ -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 index 00000000000..2133b01e094 --- /dev/null +++ b/src/test/ui/unsized-locals/unsized-exprs3.rs @@ -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 index 00000000000..42f91a946a8 --- /dev/null +++ b/src/test/ui/unsized-locals/unsized-exprs3.stderr @@ -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`. |
