This repository was archived by the owner on May 28, 2025. It is now read-only.
File tree Expand file tree Collapse file tree 2 files changed +29
-0
lines changed
tests/ui/impl-trait/non-defining-uses Expand file tree Collapse file tree 2 files changed +29
-0
lines changed Original file line number Diff line number Diff line change 1+ // Regression test for ICE from issue #140545
2+ // The error message is confusing and wrong, but that's a different problem (#139350)
3+ //@ edition:2018
4+
5+ trait Foo { }
6+ fn a ( x : impl Foo ) -> impl Foo {
7+ if true { x } else { a ( a ( x) ) }
8+ //~^ ERROR: expected generic type parameter, found `impl Foo` [E0792]
9+ //~| ERROR: type parameter `impl Foo` is part of concrete type but not used in parameter list for the `impl Trait` type alias
10+ }
11+
12+ fn main ( ) { }
Original file line number Diff line number Diff line change 1+ error[E0792]: expected generic type parameter, found `impl Foo`
2+ --> $DIR/double-wrap-with-defining-use.rs:7:26
3+ |
4+ LL | fn a(x: impl Foo) -> impl Foo {
5+ | -------- this generic parameter must be used with a generic type parameter
6+ LL | if true { x } else { a(a(x)) }
7+ | ^^^^^^^
8+
9+ error: type parameter `impl Foo` is part of concrete type but not used in parameter list for the `impl Trait` type alias
10+ --> $DIR/double-wrap-with-defining-use.rs:7:26
11+ |
12+ LL | if true { x } else { a(a(x)) }
13+ | ^^^^^^^
14+
15+ error: aborting due to 2 previous errors
16+
17+ For more information about this error, try `rustc --explain E0792`.
You can’t perform that action at this time.
0 commit comments