|
#![crate_type = "lib"]
|
|
|
|
pub trait Foo<'a, T> {
|
|
fn foo(&'a self) -> T;
|
|
}
|
|
|
|
pub fn foo<'a, T>(x: &'a Foo<'a, T>) -> T {
|
|
let x: &'a Foo<T> = x;
|
|
// ^ the lifetime parameter of Foo is left to be inferred.
|
|
x.foo()
|
|
// ^ encoding this method call in metadata triggers an ICE.
|
|
}
|