mirror of https://github.com/rust-lang/rust
30 lines
567 B
Rust
30 lines
567 B
Rust
trait Shadow<'a> {
|
|
type Bar<'a>;
|
|
//~^ ERROR lifetime name `'a` shadows a lifetime name that is already in scope
|
|
}
|
|
|
|
trait NoShadow<'a> {
|
|
type Bar<'b>; // OK
|
|
}
|
|
|
|
impl<'a> NoShadow<'a> for &'a u32 {
|
|
type Bar<'a> = i32;
|
|
//~^ ERROR lifetime name `'a` shadows a lifetime name that is already in scope
|
|
}
|
|
|
|
trait ShadowT<T> {
|
|
type Bar<T>;
|
|
//~^ ERROR the name `T` is already used
|
|
}
|
|
|
|
trait NoShadowT<T> {
|
|
type Bar<U>; // OK
|
|
}
|
|
|
|
impl<T> NoShadowT<T> for Option<T> {
|
|
type Bar<T> = i32;
|
|
//~^ ERROR the name `T` is already used
|
|
}
|
|
|
|
fn main() {}
|