diff options
Diffstat (limited to 'src/test/ui/keyword')
20 files changed, 170 insertions, 0 deletions
diff --git a/src/test/ui/keyword/extern/keyword-extern-as-identifier-expr.rs b/src/test/ui/keyword/extern/keyword-extern-as-identifier-expr.rs new file mode 100644 index 000000000..b738eb4c7 --- /dev/null +++ b/src/test/ui/keyword/extern/keyword-extern-as-identifier-expr.rs @@ -0,0 +1,3 @@ +fn main() { + let s = extern::foo::Bar; //~ ERROR expected expression, found keyword `extern` +} diff --git a/src/test/ui/keyword/extern/keyword-extern-as-identifier-expr.stderr b/src/test/ui/keyword/extern/keyword-extern-as-identifier-expr.stderr new file mode 100644 index 000000000..8bb89d2ee --- /dev/null +++ b/src/test/ui/keyword/extern/keyword-extern-as-identifier-expr.stderr @@ -0,0 +1,8 @@ +error: expected expression, found keyword `extern` + --> $DIR/keyword-extern-as-identifier-expr.rs:2:13 + | +LL | let s = extern::foo::Bar; + | ^^^^^^ expected expression + +error: aborting due to previous error + diff --git a/src/test/ui/keyword/extern/keyword-extern-as-identifier-pat.rs b/src/test/ui/keyword/extern/keyword-extern-as-identifier-pat.rs new file mode 100644 index 000000000..8a420f720 --- /dev/null +++ b/src/test/ui/keyword/extern/keyword-extern-as-identifier-pat.rs @@ -0,0 +1,3 @@ +fn main() { + let extern = 0; //~ ERROR expected identifier, found keyword `extern` +} diff --git a/src/test/ui/keyword/extern/keyword-extern-as-identifier-pat.stderr b/src/test/ui/keyword/extern/keyword-extern-as-identifier-pat.stderr new file mode 100644 index 000000000..9bf416341 --- /dev/null +++ b/src/test/ui/keyword/extern/keyword-extern-as-identifier-pat.stderr @@ -0,0 +1,13 @@ +error: expected identifier, found keyword `extern` + --> $DIR/keyword-extern-as-identifier-pat.rs:2:9 + | +LL | let extern = 0; + | ^^^^^^ expected identifier, found keyword + | +help: escape `extern` to use it as an identifier + | +LL | let r#extern = 0; + | ++ + +error: aborting due to previous error + diff --git a/src/test/ui/keyword/extern/keyword-extern-as-identifier-type.rs b/src/test/ui/keyword/extern/keyword-extern-as-identifier-type.rs new file mode 100644 index 000000000..12aa05976 --- /dev/null +++ b/src/test/ui/keyword/extern/keyword-extern-as-identifier-type.rs @@ -0,0 +1,3 @@ +type A = extern::foo::bar; //~ ERROR expected type, found keyword `extern` + +fn main() {} diff --git a/src/test/ui/keyword/extern/keyword-extern-as-identifier-type.stderr b/src/test/ui/keyword/extern/keyword-extern-as-identifier-type.stderr new file mode 100644 index 000000000..20ecf6bac --- /dev/null +++ b/src/test/ui/keyword/extern/keyword-extern-as-identifier-type.stderr @@ -0,0 +1,8 @@ +error: expected type, found keyword `extern` + --> $DIR/keyword-extern-as-identifier-type.rs:1:10 + | +LL | type A = extern::foo::bar; + | ^^^^^^ expected type + +error: aborting due to previous error + diff --git a/src/test/ui/keyword/extern/keyword-extern-as-identifier-use.rs b/src/test/ui/keyword/extern/keyword-extern-as-identifier-use.rs new file mode 100644 index 000000000..a46ce67d4 --- /dev/null +++ b/src/test/ui/keyword/extern/keyword-extern-as-identifier-use.rs @@ -0,0 +1,4 @@ +use extern::foo; //~ ERROR expected identifier, found keyword `extern` + //~| ERROR unresolved import `r#extern` + +fn main() {} diff --git a/src/test/ui/keyword/extern/keyword-extern-as-identifier-use.stderr b/src/test/ui/keyword/extern/keyword-extern-as-identifier-use.stderr new file mode 100644 index 000000000..54ee45c28 --- /dev/null +++ b/src/test/ui/keyword/extern/keyword-extern-as-identifier-use.stderr @@ -0,0 +1,22 @@ +error: expected identifier, found keyword `extern` + --> $DIR/keyword-extern-as-identifier-use.rs:1:5 + | +LL | use extern::foo; + | ^^^^^^ expected identifier, found keyword + | +help: escape `extern` to use it as an identifier + | +LL | use r#extern::foo; + | ++ + +error[E0432]: unresolved import `r#extern` + --> $DIR/keyword-extern-as-identifier-use.rs:1:5 + | +LL | use extern::foo; + | ^^^^^^ maybe a missing crate `r#extern`? + | + = help: consider adding `extern crate r#extern` to use the `r#extern` crate + +error: aborting due to 2 previous errors + +For more information about this error, try `rustc --explain E0432`. diff --git a/src/test/ui/keyword/keyword-false-as-identifier.rs b/src/test/ui/keyword/keyword-false-as-identifier.rs new file mode 100644 index 000000000..6382f841b --- /dev/null +++ b/src/test/ui/keyword/keyword-false-as-identifier.rs @@ -0,0 +1,3 @@ +fn main() { + let false = 22; //~ error: mismatched types +} diff --git a/src/test/ui/keyword/keyword-false-as-identifier.stderr b/src/test/ui/keyword/keyword-false-as-identifier.stderr new file mode 100644 index 000000000..6dcfa3a48 --- /dev/null +++ b/src/test/ui/keyword/keyword-false-as-identifier.stderr @@ -0,0 +1,11 @@ +error[E0308]: mismatched types + --> $DIR/keyword-false-as-identifier.rs:2:9 + | +LL | let false = 22; + | ^^^^^ -- this expression has type `{integer}` + | | + | expected integer, found `bool` + +error: aborting due to previous error + +For more information about this error, try `rustc --explain E0308`. diff --git a/src/test/ui/keyword/keyword-self-as-identifier.rs b/src/test/ui/keyword/keyword-self-as-identifier.rs new file mode 100644 index 000000000..72e4f01e2 --- /dev/null +++ b/src/test/ui/keyword/keyword-self-as-identifier.rs @@ -0,0 +1,3 @@ +fn main() { + let Self = 22; //~ ERROR cannot find unit struct, unit variant or constant `Self` in this scope +} diff --git a/src/test/ui/keyword/keyword-self-as-identifier.stderr b/src/test/ui/keyword/keyword-self-as-identifier.stderr new file mode 100644 index 000000000..060e7c3ea --- /dev/null +++ b/src/test/ui/keyword/keyword-self-as-identifier.stderr @@ -0,0 +1,9 @@ +error[E0531]: cannot find unit struct, unit variant or constant `Self` in this scope + --> $DIR/keyword-self-as-identifier.rs:2:9 + | +LL | let Self = 22; + | ^^^^ not found in this scope + +error: aborting due to previous error + +For more information about this error, try `rustc --explain E0531`. diff --git a/src/test/ui/keyword/keyword-self-as-type-param.rs b/src/test/ui/keyword/keyword-self-as-type-param.rs new file mode 100644 index 000000000..55c7ac128 --- /dev/null +++ b/src/test/ui/keyword/keyword-self-as-type-param.rs @@ -0,0 +1,10 @@ +// Regression test of #36638. + +struct Foo<Self>(Self); +//~^ ERROR unexpected keyword `Self` in generic parameters +//~| ERROR recursive type `Foo` has infinite size + +trait Bar<Self> {} +//~^ ERROR unexpected keyword `Self` in generic parameters + +fn main() {} diff --git a/src/test/ui/keyword/keyword-self-as-type-param.stderr b/src/test/ui/keyword/keyword-self-as-type-param.stderr new file mode 100644 index 000000000..419652e13 --- /dev/null +++ b/src/test/ui/keyword/keyword-self-as-type-param.stderr @@ -0,0 +1,32 @@ +error: unexpected keyword `Self` in generic parameters + --> $DIR/keyword-self-as-type-param.rs:3:12 + | +LL | struct Foo<Self>(Self); + | ^^^^ + | + = note: you cannot use `Self` as a generic parameter because it is reserved for associated items + +error: unexpected keyword `Self` in generic parameters + --> $DIR/keyword-self-as-type-param.rs:7:11 + | +LL | trait Bar<Self> {} + | ^^^^ + | + = note: you cannot use `Self` as a generic parameter because it is reserved for associated items + +error[E0072]: recursive type `Foo` has infinite size + --> $DIR/keyword-self-as-type-param.rs:3:1 + | +LL | struct Foo<Self>(Self); + | ^^^^^^^^^^^^^^^^ ---- recursive without indirection + | | + | recursive type has infinite size + | +help: insert some indirection (e.g., a `Box`, `Rc`, or `&`) to make `Foo` representable + | +LL | struct Foo<Self>(Box<Self>); + | ++++ + + +error: aborting due to 3 previous errors + +For more information about this error, try `rustc --explain E0072`. diff --git a/src/test/ui/keyword/keyword-super-as-identifier.rs b/src/test/ui/keyword/keyword-super-as-identifier.rs new file mode 100644 index 000000000..02c1b27b0 --- /dev/null +++ b/src/test/ui/keyword/keyword-super-as-identifier.rs @@ -0,0 +1,3 @@ +fn main() { + let super = 22; //~ ERROR failed to resolve: there are too many leading `super` keywords +} diff --git a/src/test/ui/keyword/keyword-super-as-identifier.stderr b/src/test/ui/keyword/keyword-super-as-identifier.stderr new file mode 100644 index 000000000..1f64f3b73 --- /dev/null +++ b/src/test/ui/keyword/keyword-super-as-identifier.stderr @@ -0,0 +1,9 @@ +error[E0433]: failed to resolve: there are too many leading `super` keywords + --> $DIR/keyword-super-as-identifier.rs:2:9 + | +LL | let super = 22; + | ^^^^^ there are too many leading `super` keywords + +error: aborting due to previous error + +For more information about this error, try `rustc --explain E0433`. diff --git a/src/test/ui/keyword/keyword-super.rs b/src/test/ui/keyword/keyword-super.rs new file mode 100644 index 000000000..c121a6c10 --- /dev/null +++ b/src/test/ui/keyword/keyword-super.rs @@ -0,0 +1,3 @@ +fn main() { + let super: isize; //~ ERROR failed to resolve: there are too many leading `super` keywords +} diff --git a/src/test/ui/keyword/keyword-super.stderr b/src/test/ui/keyword/keyword-super.stderr new file mode 100644 index 000000000..0e0d67cb9 --- /dev/null +++ b/src/test/ui/keyword/keyword-super.stderr @@ -0,0 +1,9 @@ +error[E0433]: failed to resolve: there are too many leading `super` keywords + --> $DIR/keyword-super.rs:2:9 + | +LL | let super: isize; + | ^^^^^ there are too many leading `super` keywords + +error: aborting due to previous error + +For more information about this error, try `rustc --explain E0433`. diff --git a/src/test/ui/keyword/keyword-true-as-identifier.rs b/src/test/ui/keyword/keyword-true-as-identifier.rs new file mode 100644 index 000000000..8c4ad7e2a --- /dev/null +++ b/src/test/ui/keyword/keyword-true-as-identifier.rs @@ -0,0 +1,3 @@ +fn main() { + let true = 22; //~ error: mismatched types +} diff --git a/src/test/ui/keyword/keyword-true-as-identifier.stderr b/src/test/ui/keyword/keyword-true-as-identifier.stderr new file mode 100644 index 000000000..86f6e0006 --- /dev/null +++ b/src/test/ui/keyword/keyword-true-as-identifier.stderr @@ -0,0 +1,11 @@ +error[E0308]: mismatched types + --> $DIR/keyword-true-as-identifier.rs:2:9 + | +LL | let true = 22; + | ^^^^ -- this expression has type `{integer}` + | | + | expected integer, found `bool` + +error: aborting due to previous error + +For more information about this error, try `rustc --explain E0308`. |