error[E0623]: lifetime mismatch --> $DIR/regions-creating-enums3.rs:7:5 | LL | fn mk_add_bad1<'a,'b>(x: &'a Ast<'a>, y: &'b Ast<'b>) -> Ast<'a> { | ----------- ------- | | | this parameter and the return type are declared with different lifetimes... LL | Ast::Add(x, y) //~ ERROR lifetime mismatch [E0623] | ^^^^^^^^^^^^^^ ...but data from `y` is returned here error: aborting due to previous error For more information about this error, try `rustc --explain E0623`.