error[E0109]: type arguments are not allowed on self type --> $DIR/unmatched-arg-and-hir-arg-issue-126385.rs:9:37 | LL | pub fn f(field: &[u32]) -> Self { | ---- ^^^ type argument not allowed | | | not allowed on self type | note: `Self` is of type `MyStruct<'_>` --> $DIR/unmatched-arg-and-hir-arg-issue-126385.rs:4:12 | LL | pub struct MyStruct<'field> { | ^^^^^^^^ `Self` corresponds to this type ... LL | impl MyStruct<'_> { | ----------------- `Self` is on type `MyStruct` in this `impl` help: the `Self` type doesn't accept type parameters, use the concrete type's name `MyStruct` instead if you want to specify its type parameters | LL - pub fn f(field: &[u32]) -> Self { LL + pub fn f(field: &[u32]) -> MyStruct { | error: lifetime may not live long enough --> $DIR/unmatched-arg-and-hir-arg-issue-126385.rs:10:9 | LL | pub fn f(field: &[u32]) -> Self { | - --------- return type is MyStruct<'2> | | | let's call the lifetime of this reference `'1` LL | Self { field } | ^^^^^^^^^^^^^^ associated function was supposed to return data with lifetime `'2` but it is returning data with lifetime `'1` error: aborting due to 2 previous errors For more information about this error, try `rustc --explain E0109`.