rust/tests/ui/impl-trait/impl-trait-plus-priority.stderr
León Orell Valerian Liehr 6242335fdb
Improve diagnostic for E0178 (bad + in type)
Namely, use a more sensical primary span.
Don't pretty-print AST nodes for the diagnostic message. Why:
* It's lossy (e.g., it doesn't replicate trailing `+`s in trait objects.
* It's prone to leak error nodes (printed as `(/*ERROR*/)`) since
  the LHS can easily represent recovered code (e.g., `fn(i32?) + T`).
2025-04-15 10:08:49 +02:00

121 lines
2.7 KiB
Text

error: ambiguous `+` in a type
--> $DIR/impl-trait-plus-priority.rs:23:18
|
LL | type A = fn() -> impl A +;
| ^^^^^^^^
|
help: try adding parentheses
|
LL | type A = fn() -> (impl A +);
| + +
error: ambiguous `+` in a type
--> $DIR/impl-trait-plus-priority.rs:25:18
|
LL | type A = fn() -> impl A + B;
| ^^^^^^^^^^
|
help: try adding parentheses
|
LL | type A = fn() -> (impl A + B);
| + +
error: ambiguous `+` in a type
--> $DIR/impl-trait-plus-priority.rs:27:18
|
LL | type A = fn() -> dyn A + B;
| ^^^^^^^^^
|
help: try adding parentheses
|
LL | type A = fn() -> (dyn A + B);
| + +
error[E0178]: expected a path on the left-hand side of `+`
--> $DIR/impl-trait-plus-priority.rs:29:10
|
LL | type A = fn() -> A + B;
| ^^^^^^^^^----
| |
| perhaps you forgot parentheses?
error: ambiguous `+` in a type
--> $DIR/impl-trait-plus-priority.rs:32:18
|
LL | type A = Fn() -> impl A +;
| ^^^^^^^^
|
help: try adding parentheses
|
LL | type A = Fn() -> (impl A +);
| + +
error: ambiguous `+` in a type
--> $DIR/impl-trait-plus-priority.rs:34:18
|
LL | type A = Fn() -> impl A + B;
| ^^^^^^^^^^
|
help: try adding parentheses
|
LL | type A = Fn() -> (impl A + B);
| + +
error: ambiguous `+` in a type
--> $DIR/impl-trait-plus-priority.rs:36:18
|
LL | type A = Fn() -> dyn A + B;
| ^^^^^^^^^
|
help: try adding parentheses
|
LL | type A = Fn() -> (dyn A + B);
| + +
error: ambiguous `+` in a type
--> $DIR/impl-trait-plus-priority.rs:40:11
|
LL | type A = &impl A +;
| ^^^^^^^^
|
help: try adding parentheses
|
LL | type A = &(impl A +);
| + +
error: ambiguous `+` in a type
--> $DIR/impl-trait-plus-priority.rs:42:11
|
LL | type A = &impl A + B;
| ^^^^^^^^^^
|
help: try adding parentheses
|
LL | type A = &(impl A + B);
| + +
error: ambiguous `+` in a type
--> $DIR/impl-trait-plus-priority.rs:44:11
|
LL | type A = &dyn A + B;
| ^^^^^^^^^
|
help: try adding parentheses
|
LL | type A = &(dyn A + B);
| + +
error[E0178]: expected a path on the left-hand side of `+`
--> $DIR/impl-trait-plus-priority.rs:46:10
|
LL | type A = &A + B;
| ^^
|
help: try adding parentheses
|
LL | type A = &(A + B);
| + +
error: aborting due to 11 previous errors
For more information about this error, try `rustc --explain E0178`.