f3e9b1a703
Now the main span focuses on the erroneous not-a-function callee, while showing the entire call expression is relegated to a secondary span. In the case where the erroneous callee is itself a call, we point out the definition, and, if the call expression spans multiple lines, tentatively suggest a semicolon (because we suspect that the "outer" call is actually supposed to be a tuple). The new `bug!` assertion is, in fact, safe (`confirm_builtin_call` is only called by `check_call`, which is only called with a first arg of kind `ExprKind::Call` in `check_expr_kind`). Resolves #51055.
234 lines
6.5 KiB
Plaintext
234 lines
6.5 KiB
Plaintext
error[E0423]: expected value, found enum `n::Z`
|
|
--> $DIR/privacy-enum-ctor.rs:33:9
|
|
|
|
|
LL | n::Z;
|
|
| ^^^^
|
|
|
|
|
= note: did you mean to use one of the following variants?
|
|
- `m::Z::Fn`
|
|
- `m::Z::Struct`
|
|
- `m::Z::Unit`
|
|
|
|
error[E0423]: expected value, found enum `Z`
|
|
--> $DIR/privacy-enum-ctor.rs:35:9
|
|
|
|
|
LL | Z;
|
|
| ^ did you mean `f`?
|
|
|
|
|
= note: did you mean to use one of the following variants?
|
|
- `m::Z::Fn`
|
|
- `m::Z::Struct`
|
|
- `m::Z::Unit`
|
|
|
|
error[E0423]: expected value, found struct variant `Z::Struct`
|
|
--> $DIR/privacy-enum-ctor.rs:39:20
|
|
|
|
|
LL | let _: Z = Z::Struct;
|
|
| ^^^^^^^^^ did you mean `Z::Struct { /* fields */ }`?
|
|
|
|
error[E0423]: expected value, found enum `m::E`
|
|
--> $DIR/privacy-enum-ctor.rs:51:16
|
|
|
|
|
LL | let _: E = m::E;
|
|
| ^^^-
|
|
| |
|
|
| did you mean `f`?
|
|
|
|
|
= note: did you mean to use one of the following variants?
|
|
- `E::Fn`
|
|
- `E::Struct`
|
|
- `E::Unit`
|
|
help: possible better candidates are found in other modules, you can import them into scope
|
|
|
|
|
LL | use std::f32::consts::E;
|
|
|
|
|
LL | use std::f64::consts::E;
|
|
|
|
|
|
|
error[E0423]: expected value, found struct variant `m::E::Struct`
|
|
--> $DIR/privacy-enum-ctor.rs:55:16
|
|
|
|
|
LL | let _: E = m::E::Struct;
|
|
| ^^^^^^^^^^^^ did you mean `m::E::Struct { /* fields */ }`?
|
|
|
|
error[E0423]: expected value, found enum `E`
|
|
--> $DIR/privacy-enum-ctor.rs:59:16
|
|
|
|
|
LL | let _: E = E;
|
|
| ^
|
|
|
|
|
= note: did you mean to use one of the following variants?
|
|
- `E::Fn`
|
|
- `E::Struct`
|
|
- `E::Unit`
|
|
help: possible better candidates are found in other modules, you can import them into scope
|
|
|
|
|
LL | use std::f32::consts::E;
|
|
|
|
|
LL | use std::f64::consts::E;
|
|
|
|
|
|
|
error[E0423]: expected value, found struct variant `E::Struct`
|
|
--> $DIR/privacy-enum-ctor.rs:63:16
|
|
|
|
|
LL | let _: E = E::Struct;
|
|
| ^^^^^^^^^ did you mean `E::Struct { /* fields */ }`?
|
|
|
|
error[E0412]: cannot find type `Z` in this scope
|
|
--> $DIR/privacy-enum-ctor.rs:67:12
|
|
|
|
|
LL | let _: Z = m::n::Z;
|
|
| ^ did you mean `E`?
|
|
help: possible candidate is found in another module, you can import it into scope
|
|
|
|
|
LL | use m::n::Z;
|
|
|
|
|
|
|
error[E0423]: expected value, found enum `m::n::Z`
|
|
--> $DIR/privacy-enum-ctor.rs:67:16
|
|
|
|
|
LL | let _: Z = m::n::Z;
|
|
| ^^^^^^^
|
|
|
|
|
= note: did you mean to use one of the following variants?
|
|
- `m::Z::Fn`
|
|
- `m::Z::Struct`
|
|
- `m::Z::Unit`
|
|
|
|
error[E0412]: cannot find type `Z` in this scope
|
|
--> $DIR/privacy-enum-ctor.rs:71:12
|
|
|
|
|
LL | let _: Z = m::n::Z::Fn;
|
|
| ^ did you mean `E`?
|
|
help: possible candidate is found in another module, you can import it into scope
|
|
|
|
|
LL | use m::n::Z;
|
|
|
|
|
|
|
error[E0412]: cannot find type `Z` in this scope
|
|
--> $DIR/privacy-enum-ctor.rs:74:12
|
|
|
|
|
LL | let _: Z = m::n::Z::Struct;
|
|
| ^ did you mean `E`?
|
|
help: possible candidate is found in another module, you can import it into scope
|
|
|
|
|
LL | use m::n::Z;
|
|
|
|
|
|
|
error[E0423]: expected value, found struct variant `m::n::Z::Struct`
|
|
--> $DIR/privacy-enum-ctor.rs:74:16
|
|
|
|
|
LL | let _: Z = m::n::Z::Struct;
|
|
| ^^^^^^^^^^^^^^^ did you mean `m::n::Z::Struct { /* fields */ }`?
|
|
|
|
error[E0412]: cannot find type `Z` in this scope
|
|
--> $DIR/privacy-enum-ctor.rs:78:12
|
|
|
|
|
LL | let _: Z = m::n::Z::Unit {};
|
|
| ^ did you mean `E`?
|
|
help: possible candidate is found in another module, you can import it into scope
|
|
|
|
|
LL | use m::n::Z;
|
|
|
|
|
|
|
error[E0603]: enum `Z` is private
|
|
--> $DIR/privacy-enum-ctor.rs:67:22
|
|
|
|
|
LL | let _: Z = m::n::Z;
|
|
| ^
|
|
|
|
error[E0603]: enum `Z` is private
|
|
--> $DIR/privacy-enum-ctor.rs:71:22
|
|
|
|
|
LL | let _: Z = m::n::Z::Fn;
|
|
| ^
|
|
|
|
error[E0603]: enum `Z` is private
|
|
--> $DIR/privacy-enum-ctor.rs:74:22
|
|
|
|
|
LL | let _: Z = m::n::Z::Struct;
|
|
| ^
|
|
|
|
error[E0603]: enum `Z` is private
|
|
--> $DIR/privacy-enum-ctor.rs:78:22
|
|
|
|
|
LL | let _: Z = m::n::Z::Unit {};
|
|
| ^
|
|
|
|
error[E0308]: mismatched types
|
|
--> $DIR/privacy-enum-ctor.rs:37:20
|
|
|
|
|
LL | let _: Z = Z::Fn;
|
|
| ^^^^^ expected enum `m::n::Z`, found fn item
|
|
|
|
|
= note: expected type `m::n::Z`
|
|
found type `fn(u8) -> m::n::Z {m::n::Z::Fn}`
|
|
|
|
error[E0618]: expected function, found enum variant `Z::Unit`
|
|
--> $DIR/privacy-enum-ctor.rs:41:17
|
|
|
|
|
LL | Unit,
|
|
| ---- `Z::Unit` defined here
|
|
...
|
|
LL | let _ = Z::Unit();
|
|
| ^^^^^^^--
|
|
| |
|
|
| call expression requires function
|
|
help: `Z::Unit` is a unit variant, you need to write it without the parenthesis
|
|
|
|
|
LL | let _ = Z::Unit;
|
|
| ^^^^^^^
|
|
|
|
error[E0308]: mismatched types
|
|
--> $DIR/privacy-enum-ctor.rs:53:16
|
|
|
|
|
LL | let _: E = m::E::Fn;
|
|
| ^^^^^^^^ expected enum `m::E`, found fn item
|
|
|
|
|
= note: expected type `m::E`
|
|
found type `fn(u8) -> m::E {m::E::Fn}`
|
|
|
|
error[E0618]: expected function, found enum variant `m::E::Unit`
|
|
--> $DIR/privacy-enum-ctor.rs:57:16
|
|
|
|
|
LL | Unit,
|
|
| ---- `m::E::Unit` defined here
|
|
...
|
|
LL | let _: E = m::E::Unit();
|
|
| ^^^^^^^^^^--
|
|
| |
|
|
| call expression requires function
|
|
help: `m::E::Unit` is a unit variant, you need to write it without the parenthesis
|
|
|
|
|
LL | let _: E = m::E::Unit;
|
|
| ^^^^^^^^^^
|
|
|
|
error[E0308]: mismatched types
|
|
--> $DIR/privacy-enum-ctor.rs:61:16
|
|
|
|
|
LL | let _: E = E::Fn;
|
|
| ^^^^^ expected enum `m::E`, found fn item
|
|
|
|
|
= note: expected type `m::E`
|
|
found type `fn(u8) -> m::E {m::E::Fn}`
|
|
|
|
error[E0618]: expected function, found enum variant `E::Unit`
|
|
--> $DIR/privacy-enum-ctor.rs:65:16
|
|
|
|
|
LL | Unit,
|
|
| ---- `E::Unit` defined here
|
|
...
|
|
LL | let _: E = E::Unit();
|
|
| ^^^^^^^--
|
|
| |
|
|
| call expression requires function
|
|
help: `E::Unit` is a unit variant, you need to write it without the parenthesis
|
|
|
|
|
LL | let _: E = E::Unit;
|
|
| ^^^^^^^
|
|
|
|
error: aborting due to 23 previous errors
|
|
|
|
Some errors occurred: E0308, E0412, E0423, E0603, E0618.
|
|
For more information about an error, try `rustc --explain E0308`.
|