bd32c4c21e
PR #121208 converted this from a `span_delayed_bug` to a `span_bug` because nothing in the test suite caused execution to hit this path. But now fuzzing has found a test case that does hit it. So this commit converts it back to `span_delayed_bug` and adds the relevant test. Fixes #126385.
35 lines
1.5 KiB
Plaintext
35 lines
1.5 KiB
Plaintext
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<u32> {
|
|
| ---- ^^^ 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]) -> MyStruct<u32> {
|
|
| ~~~~~~~~
|
|
|
|
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<u32> {
|
|
| - --------- 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`.
|