diff options
| author | Steve Klabnik <steve@steveklabnik.com> | 2016-04-18 14:50:35 -0400 |
|---|---|---|
| committer | Steve Klabnik <steve@steveklabnik.com> | 2016-04-18 14:50:35 -0400 |
| commit | ec44ddc33a77192f2b9a03ec1747200f0fcb9ac3 (patch) | |
| tree | 03694a63b8981a95826c275ce7ef7055f7f76e01 | |
| parent | 31374d8030a30803d018c7a70b70e59030713adb (diff) | |
| parent | f089cf9b2ff2602edd989480b7cd9d4b8b820f84 (diff) | |
| download | rust-ec44ddc33a77192f2b9a03ec1747200f0fcb9ac3.tar.gz rust-ec44ddc33a77192f2b9a03ec1747200f0fcb9ac3.zip | |
Rollup merge of #33058 - Manishearth:fx-E0102, r=GuillaumeGomez
Update E0102's example (fixes #33057) r? @GuillaumeGomez
| -rw-r--r-- | src/librustc_typeck/diagnostics.rs | 33 |
1 files changed, 6 insertions, 27 deletions
diff --git a/src/librustc_typeck/diagnostics.rs b/src/librustc_typeck/diagnostics.rs index 646efe09da8..582b9696bb1 100644 --- a/src/librustc_typeck/diagnostics.rs +++ b/src/librustc_typeck/diagnostics.rs @@ -1420,45 +1420,24 @@ fn main() { "##, E0102: r##" -You hit this error because the compiler lacks information to -determine a type for this variable. Erroneous code example: +You hit this error because the compiler lacks the information to +determine the type of this variable. Erroneous code example: ```compile_fail -fn demo(devil: fn () -> !) { - let x: &_ = devil(); - // error: cannot determine a type for this local variable -} - -fn oh_no() -> ! { panic!("the devil is in the details") } - fn main() { - demo(oh_no); + // could be an array of anything + let x = []; // error: cannot determine a type for this local variable } ``` To solve this situation, constrain the type of the variable. Examples: -```no_run +``` #![allow(unused_variables)] -fn some_func(x: &u32) { - // some code -} - -fn demo(devil: fn () -> !) { - let x: &u32 = devil(); - // Here we defined the type at the variable creation - - let x: &_ = devil(); - some_func(x); - // Here, the type is determined by the function argument type -} - -fn oh_no() -> ! { panic!("the devil is in the details") } - fn main() { - demo(oh_no); + let x: [u8; 0] = []; } ``` "##, |
