diff options
Diffstat (limited to 'tests/ui/shadowed/shadowed-type-parameter.rs')
-rw-r--r-- | tests/ui/shadowed/shadowed-type-parameter.rs | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/tests/ui/shadowed/shadowed-type-parameter.rs b/tests/ui/shadowed/shadowed-type-parameter.rs new file mode 100644 index 000000000..66fd68a9f --- /dev/null +++ b/tests/ui/shadowed/shadowed-type-parameter.rs @@ -0,0 +1,30 @@ +// Test that shadowed lifetimes generate an error. + + +struct Foo<T>(T); + + +impl<T> Foo<T> { + fn shadow_in_method<T>(&self) {} + //~^ ERROR the name `T` is already used + + fn not_shadow_in_item<U>(&self) { + struct Bar<T, U>(T,U); // not a shadow, separate item + fn foo<T, U>() {} // same + } +} + +trait Bar<T> { + fn dummy(&self) -> T; + + fn shadow_in_required<T>(&self); + //~^ ERROR the name `T` is already used + + fn shadow_in_provided<T>(&self) {} + //~^ ERROR the name `T` is already used + + fn not_shadow_in_required<U>(&self); + fn not_shadow_in_provided<U>(&self) {} +} + +fn main() {} |