mirror of
https://github.com/rust-lang/rust.git
synced 2025-05-09 00:17:44 +00:00

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`).
52 lines
1.4 KiB
Plaintext
52 lines
1.4 KiB
Plaintext
error: parenthesized lifetime bounds are not supported
|
|
--> $DIR/trait-object-lifetime-parens.rs:9:21
|
|
|
|
|
LL | fn f<'a, T: Trait + ('a)>() {}
|
|
| ^^^^
|
|
|
|
|
help: remove the parentheses
|
|
|
|
|
LL - fn f<'a, T: Trait + ('a)>() {}
|
|
LL + fn f<'a, T: Trait + 'a>() {}
|
|
|
|
|
|
|
error: parenthesized lifetime bounds are not supported
|
|
--> $DIR/trait-object-lifetime-parens.rs:12:24
|
|
|
|
|
LL | let _: Box<Trait + ('a)>;
|
|
| ^^^^
|
|
|
|
|
help: remove the parentheses
|
|
|
|
|
LL - let _: Box<Trait + ('a)>;
|
|
LL + let _: Box<Trait + 'a>;
|
|
|
|
|
|
|
error: expected type, found lifetime
|
|
--> $DIR/trait-object-lifetime-parens.rs:16:17
|
|
|
|
|
LL | let _: Box<('a) + Trait>;
|
|
| ^^ expected type
|
|
|
|
error[E0178]: expected a path on the left-hand side of `+`
|
|
--> $DIR/trait-object-lifetime-parens.rs:16:16
|
|
|
|
|
LL | let _: Box<('a) + Trait>;
|
|
| ^^^^ expected a path
|
|
|
|
error[E0782]: expected a type, found a trait
|
|
--> $DIR/trait-object-lifetime-parens.rs:12:16
|
|
|
|
|
LL | let _: Box<Trait + ('a)>;
|
|
| ^^^^^^^^^^^^
|
|
|
|
|
help: you can add the `dyn` keyword if you want a trait object
|
|
|
|
|
LL | let _: Box<dyn Trait + ('a)>;
|
|
| +++
|
|
|
|
error: aborting due to 5 previous errors
|
|
|
|
Some errors have detailed explanations: E0178, E0782.
|
|
For more information about an error, try `rustc --explain E0178`.
|