diff options
Diffstat (limited to 'tests/ui/self/self_type_keyword.rs')
-rw-r--r-- | tests/ui/self/self_type_keyword.rs | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/tests/ui/self/self_type_keyword.rs b/tests/ui/self/self_type_keyword.rs new file mode 100644 index 000000000..b42bf8eea --- /dev/null +++ b/tests/ui/self/self_type_keyword.rs @@ -0,0 +1,41 @@ +mod foo { + struct Self; + //~^ ERROR expected identifier, found keyword `Self` +} + +struct Bar<'Self>; +//~^ ERROR lifetimes cannot use keyword names +//~| ERROR parameter `'Self` is never used + +struct Foo; + +pub fn main() { + match 15 { + ref Self => (), + //~^ ERROR expected identifier, found keyword `Self` + mut Self => (), + //~^ ERROR `mut` must be followed by a named binding + //~| ERROR cannot find unit struct, unit variant or constant `Self` + ref mut Self => (), + //~^ ERROR expected identifier, found keyword `Self` + Self!() => (), + //~^ ERROR cannot find macro `Self` in this scope + Foo { Self } => (), + //~^ ERROR expected identifier, found keyword `Self` + } +} + +mod m1 { + extern crate core as Self; + //~^ ERROR expected identifier, found keyword `Self` +} + +mod m2 { + use std::option::Option as Self; + //~^ ERROR expected identifier, found keyword `Self` +} + +mod m3 { + trait Self {} + //~^ ERROR expected identifier, found keyword `Self` +} |