From a6782d9e4e38c1925d7db239bf26e3d228893ea5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Esteban=20K=C3=BCber?= Date: Sat, 9 Jun 2018 14:21:07 -0700 Subject: [PATCH] Update E0423 description E0423 doesn't apply only to structs, update the error index description to make this clear. --- src/librustc_resolve/diagnostics.rs | 34 +++++++++++++++++++++++++---- 1 file changed, 30 insertions(+), 4 deletions(-) diff --git a/src/librustc_resolve/diagnostics.rs b/src/librustc_resolve/diagnostics.rs index 232a32deb864..f0ef07276f69 100644 --- a/src/librustc_resolve/diagnostics.rs +++ b/src/librustc_resolve/diagnostics.rs @@ -967,16 +967,18 @@ one. "##, E0423: r##" -A `struct` variant name was used like a function name. +An identifier was used like a function name or a value was expected and the +identifier exists but it belongs to a different namespace. -Erroneous code example: +For (an erroneous) example, here a `struct` variant name were used as a +function: ```compile_fail,E0423 struct Foo { a: bool }; let f = Foo(); -// error: `Foo` is a struct variant name, but this expression uses -// it like a function name +// error: expected function, found `Foo` +// `Foo` is a struct name, but this expression uses it like a function name ``` Please verify you didn't misspell the name of what you actually wanted to use @@ -987,6 +989,30 @@ fn Foo() -> u32 { 0 } let f = Foo(); // ok! ``` + +It is common to forget the trailing `!` on macro invocations, which would also +yield this error: + +```compile_fail,E0423 +println(""); +// error: expected function, found macro `println` +// did you mean `println!(...)`? (notice the trailing `!`) +``` + +Another case where this error is emitted is when a value is expected, but +something else is found: + +```compile_fail,E0423 +pub mod a { + pub const I: i32 = 1; +} + +fn h1() -> i32 { + a.I + //~^ ERROR expected value, found module `a` + // did you mean `a::I`? +} +``` "##, E0424: r##"