mirror of
https://github.com/rust-lang/rust
synced 2024-11-05 20:45:15 +00:00
Test for zero-sized function items not ICEing
This commit is contained in:
parent
bf459752d4
commit
cd4c30940f
4 changed files with 40 additions and 0 deletions
|
@ -0,0 +1,7 @@
|
|||
#![feature(unsized_locals)]
|
||||
|
||||
struct Test([i32]);
|
||||
|
||||
fn main() {
|
||||
let _x: fn(_) -> Test = Test;
|
||||
} //~^the size for values of type `[i32]` cannot be known at compilation time
|
|
@ -0,0 +1,14 @@
|
|||
error[E0277]: the size for values of type `[i32]` cannot be known at compilation time
|
||||
--> $DIR/issue-30276-feature-flagged.rs:6:29
|
||||
|
|
||||
LL | let _x: fn(_) -> Test = Test;
|
||||
| ^^^^ doesn't have a size known at compile-time
|
||||
|
|
||||
= help: within `Test`, the trait `std::marker::Sized` is not implemented for `[i32]`
|
||||
= note: to learn more, visit <https://doc.rust-lang.org/book/ch19-04-advanced-types.html#dynamically-sized-types-and-the-sized-trait>
|
||||
= note: required because it appears within the type `Test`
|
||||
= note: the return type of a function must have a statically known size
|
||||
|
||||
error: aborting due to previous error
|
||||
|
||||
For more information about this error, try `rustc --explain E0277`.
|
5
src/test/ui/unsized-locals/issue-30276.rs
Normal file
5
src/test/ui/unsized-locals/issue-30276.rs
Normal file
|
@ -0,0 +1,5 @@
|
|||
struct Test([i32]);
|
||||
|
||||
fn main() {
|
||||
let _x: fn(_) -> Test = Test;
|
||||
} //~^the size for values of type `[i32]` cannot be known at compilation time
|
14
src/test/ui/unsized-locals/issue-30276.stderr
Normal file
14
src/test/ui/unsized-locals/issue-30276.stderr
Normal file
|
@ -0,0 +1,14 @@
|
|||
error[E0277]: the size for values of type `[i32]` cannot be known at compilation time
|
||||
--> $DIR/issue-30276.rs:4:29
|
||||
|
|
||||
LL | let _x: fn(_) -> Test = Test;
|
||||
| ^^^^ doesn't have a size known at compile-time
|
||||
|
|
||||
= help: the trait `std::marker::Sized` is not implemented for `[i32]`
|
||||
= note: to learn more, visit <https://doc.rust-lang.org/book/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`.
|
Loading…
Reference in a new issue