Skip to content

Commit 7c43bc0

Browse files
committed
add test for ICE: failed to resolve instance for <fn() -> impl ...> rust-lang#123145
Fixes rust-lang#123145
1 parent 7836909 commit 7c43bc0

File tree

2 files changed

+35
-0
lines changed

2 files changed

+35
-0
lines changed
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
// ICE failed to resolve instance for ...
2+
// issue: rust-lang/rust#123145
3+
//@ build-fail
4+
//~^^^ ERROR overflow evaluating the requirement `(fn() -> impl Handler
5+
6+
trait Handler {
7+
fn handle(&self) {}
8+
}
9+
10+
impl<H: Handler, F: Fn() -> H> Handler for F {}
11+
12+
impl<L: Handler> Handler for (L,) {}
13+
14+
fn one() -> impl Handler {
15+
(one,)
16+
}
17+
18+
fn main() {
19+
one.handle();
20+
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
error[E0275]: overflow evaluating the requirement `(fn() -> impl Handler {one},): Handler`
2+
|
3+
note: required for `fn() -> impl Handler {one}` to implement `Handler`
4+
--> $DIR/failed-to-resolve-instance-ice-123145.rs:10:32
5+
|
6+
LL | impl<H: Handler, F: Fn() -> H> Handler for F {}
7+
| ------- ^^^^^^^ ^
8+
| |
9+
| unsatisfied trait bound introduced here
10+
= note: 2 redundant requirements hidden
11+
= note: required for `fn() -> impl Handler {one}` to implement `Handler`
12+
13+
error: aborting due to 1 previous error
14+
15+
For more information about this error, try `rustc --explain E0275`.

0 commit comments

Comments
 (0)