1
Fork 0

Merge unsized locals pat tests

This commit is contained in:
Santiago Pastorino 2020-10-21 08:23:40 -03:00
parent 00fd703eb7
commit cc9ab1cd58
No known key found for this signature in database
GPG key ID: 8131A24E0C79EFAF
4 changed files with 29 additions and 39 deletions

View file

@ -1,13 +0,0 @@
#![feature(box_patterns)]
#![feature(unsized_fn_params)]
// Ensure that even with unsized_fn_params, unsized types in parameter patterns are not accepted.
#[allow(dead_code)]
fn f1(box box _b: Box<Box<[u8]>>) {}
//~^ ERROR: the size for values of type `[u8]` cannot be known at compilation time [E0277]
fn f2((_x, _y): (i32, [i32])) {}
//~^ ERROR: the size for values of type `[i32]` cannot be known at compilation time [E0277]
fn main() {}

View file

@ -1,23 +0,0 @@
error[E0277]: the size for values of type `[u8]` cannot be known at compilation time
--> $DIR/unsized-local-pat.rs:7:15
|
LL | fn f1(box box _b: Box<Box<[u8]>>) {}
| ^^ doesn't have a size known at compile-time
|
= help: the trait `Sized` is not implemented for `[u8]`
= note: all local variables must have a statically known size
= help: unsized locals are gated as an unstable feature
error[E0277]: the size for values of type `[i32]` cannot be known at compilation time
--> $DIR/unsized-local-pat.rs:10:12
|
LL | fn f2((_x, _y): (i32, [i32])) {}
| ^^ doesn't have a size known at compile-time
|
= help: the trait `Sized` is not implemented for `[i32]`
= note: all local variables must have a statically known size
= help: unsized locals are gated as an unstable feature
error: aborting due to 2 previous errors
For more information about this error, try `rustc --explain E0277`.

View file

@ -1,6 +1,12 @@
#![feature(box_patterns)]
#![feature(unsized_fn_params)] #![feature(unsized_fn_params)]
// Ensure that even with unsized_fn_params, unsized locals are not accepted. #[allow(dead_code)]
fn f1(box box _b: Box<Box<[u8]>>) {}
//~^ ERROR: the size for values of type `[u8]` cannot be known at compilation time [E0277]
fn f2((_x, _y): (i32, [i32])) {}
//~^ ERROR: the size for values of type `[i32]` cannot be known at compilation time [E0277]
fn main() { fn main() {
let foo: Box<[u8]> = Box::new(*b"foo"); let foo: Box<[u8]> = Box::new(*b"foo");

View file

@ -1,5 +1,25 @@
error[E0277]: the size for values of type `[u8]` cannot be known at compilation time error[E0277]: the size for values of type `[u8]` cannot be known at compilation time
--> $DIR/unsized-locals-using-unsized-fn-params.rs:7:9 --> $DIR/unsized-locals-using-unsized-fn-params.rs:5:15
|
LL | fn f1(box box _b: Box<Box<[u8]>>) {}
| ^^ doesn't have a size known at compile-time
|
= help: the trait `Sized` is not implemented for `[u8]`
= note: all local variables must have a statically known size
= help: unsized locals are gated as an unstable feature
error[E0277]: the size for values of type `[i32]` cannot be known at compilation time
--> $DIR/unsized-locals-using-unsized-fn-params.rs:8:12
|
LL | fn f2((_x, _y): (i32, [i32])) {}
| ^^ doesn't have a size known at compile-time
|
= help: the trait `Sized` is not implemented for `[i32]`
= note: all local variables must have a statically known size
= help: unsized locals are gated as an unstable feature
error[E0277]: the size for values of type `[u8]` cannot be known at compilation time
--> $DIR/unsized-locals-using-unsized-fn-params.rs:13:9
| |
LL | let _foo: [u8] = *foo; LL | let _foo: [u8] = *foo;
| ^^^^ doesn't have a size known at compile-time | ^^^^ doesn't have a size known at compile-time
@ -8,6 +28,6 @@ LL | let _foo: [u8] = *foo;
= note: all local variables must have a statically known size = note: all local variables must have a statically known size
= help: unsized locals are gated as an unstable feature = help: unsized locals are gated as an unstable feature
error: aborting due to previous error error: aborting due to 3 previous errors
For more information about this error, try `rustc --explain E0277`. For more information about this error, try `rustc --explain E0277`.