Closed
Description
Encountered doing ill-advised type manipulations in the playground. By (mis)using some combination of universal function call syntax, the Fn trait, and other language features, I got an internal compiler error. I then simplified it to the point where it wouldn't make sense even if it didn't hit the error.
Code to reproduce the error:
trait CallSingle<A, B> {
fn call(&self, a: A) -> B where Self: Fn(A) -> B;
}
impl<A, B, F: Fn(A) -> B> CallSingle<A, B> for F {
fn call(&self, a: A) -> B {
<Self as Fn(A) -> B>::call
}
}
I'm not sure there should be any error it emits beyond what it already does, but this does panic the compiler: error: internal compiler error: /checkout/src/librustc_typeck/check/mod.rs:4419: impossible case reached