diff options
| author | bors <bors@rust-lang.org> | 2015-02-14 17:01:11 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2015-02-14 17:01:11 +0000 |
| commit | b63cee4a11fcfecf20ed8419bc3bd6859e6496bc (patch) | |
| tree | e614f946a2e7811fe886a52ee19899a4ede35dd9 /src/test | |
| parent | 3d1c1added595c1c3410a1b72d8f0134942e4e24 (diff) | |
| parent | 07d00deab22dc07ffc58b8e74d45596242ca8b15 (diff) | |
| download | rust-b63cee4a11fcfecf20ed8419bc3bd6859e6496bc.tar.gz rust-b63cee4a11fcfecf20ed8419bc3bd6859e6496bc.zip | |
Auto merge of #22158 - Kimundi:the_lonely_uppercase_keyword, r=pnkfelix
It is only allowed in paths now, where it will either work inside a `trait` or `impl` item, or not resolve outside of it. [breaking-change] Closes #22137
Diffstat (limited to 'src/test')
| -rw-r--r-- | src/test/compile-fail/self_type_keyword.rs | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/src/test/compile-fail/self_type_keyword.rs b/src/test/compile-fail/self_type_keyword.rs new file mode 100644 index 00000000000..6f5aeead57e --- /dev/null +++ b/src/test/compile-fail/self_type_keyword.rs @@ -0,0 +1,49 @@ +// Copyright 2015 The Rust Project Developers. See the COPYRIGHT +// file at the top-level directory of this distribution and at +// http://rust-lang.org/COPYRIGHT. +// +// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or +// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license +// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your +// option. This file may not be copied, modified, or distributed +// except according to those terms. + +struct Self; +//~^ ERROR expected identifier, found keyword `Self` + +struct Bar<'Self>; +//~^ ERROR invalid lifetime name + +pub fn main() { + let Self = 5; + //~^ ERROR expected identifier, found keyword `Self` + + match 15 { + Self => (), + //~^ ERROR expected identifier, found keyword `Self` + ref Self => (), + //~^ ERROR expected identifier, found keyword `Self` + mut Self => (), + //~^ ERROR expected identifier, found keyword `Self` + ref mut Self => (), + //~^ ERROR expected identifier, found keyword `Self` + Self!() => (), + //~^ ERROR expected identifier, found keyword `Self` + Foo { x: Self } => (), + //~^ ERROR expected identifier, found keyword `Self` + Foo { Self } => (), + //~^ ERROR expected identifier, found keyword `Self` + } +} + +use self::Self as Foo; +//~^ ERROR expected identifier, found keyword `Self` + +use std::option::Option as Self; +//~^ ERROR expected identifier, found keyword `Self` + +extern crate Self; +//~^ ERROR expected identifier, found keyword `Self` + +trait Self {} +//~^ ERROR expected identifier, found keyword `Self` |
