mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-01 15:01:51 +00:00
21 lines
380 B
Rust
21 lines
380 B
Rust
|
pub trait MakeRef<'a> {
|
||
|
type Ref;
|
||
|
}
|
||
|
impl<'a, T: 'a> MakeRef<'a> for T {
|
||
|
type Ref = &'a T;
|
||
|
}
|
||
|
|
||
|
pub trait MakeRef2 {
|
||
|
type Ref2;
|
||
|
}
|
||
|
impl<'a, T: 'a> MakeRef2 for T {
|
||
|
//~^ ERROR the lifetime parameter `'a` is not constrained
|
||
|
type Ref2 = <T as MakeRef<'a>>::Ref;
|
||
|
}
|
||
|
|
||
|
fn foo() -> <String as MakeRef2>::Ref2 { &String::from("foo") }
|
||
|
|
||
|
fn main() {
|
||
|
println!("{}", foo());
|
||
|
}
|