rust/tests/ui/parser/issues/issue-73568-lifetime-after-mut.rs
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

20 lines
565 B
Rust

#![crate_type="lib"]
fn x<'a>(x: &mut 'a i32){} //~ ERROR lifetime must precede `mut`
macro_rules! mac {
($lt:lifetime) => {
fn w<$lt>(w: &mut $lt i32) {}
//~^ ERROR lifetime must precede `mut`
}
}
mac!('a);
// avoid false positives
fn y<'a>(y: &mut 'a + Send) {
//~^ ERROR expected a path on the left-hand side of `+`
//~| ERROR at least one trait is required for an object type
let z = y as &mut 'a + Send;
//~^ ERROR expected value, found trait `Send`
//~| ERROR at least one trait is required for an object type
}