diff options
Diffstat (limited to 'src/test/ui/dollar-crate')
4 files changed, 113 insertions, 0 deletions
diff --git a/src/test/ui/dollar-crate/dollar-crate-is-keyword-2.rs b/src/test/ui/dollar-crate/dollar-crate-is-keyword-2.rs new file mode 100644 index 000000000..bbab6f877 --- /dev/null +++ b/src/test/ui/dollar-crate/dollar-crate-is-keyword-2.rs @@ -0,0 +1,13 @@ +mod a {} + +macro_rules! m { + () => { + use a::$crate; //~ ERROR unresolved import `a::$crate` + use a::$crate::b; //~ ERROR `$crate` in paths can only be used in start position + type A = a::$crate; //~ ERROR `$crate` in paths can only be used in start position + } +} + +m!(); + +fn main() {} diff --git a/src/test/ui/dollar-crate/dollar-crate-is-keyword-2.stderr b/src/test/ui/dollar-crate/dollar-crate-is-keyword-2.stderr new file mode 100644 index 000000000..d46029710 --- /dev/null +++ b/src/test/ui/dollar-crate/dollar-crate-is-keyword-2.stderr @@ -0,0 +1,37 @@ +error[E0433]: failed to resolve: `$crate` in paths can only be used in start position + --> $DIR/dollar-crate-is-keyword-2.rs:6:16 + | +LL | use a::$crate::b; + | ^^^^^^ `$crate` in paths can only be used in start position +... +LL | m!(); + | ---- in this macro invocation + | + = note: this error originates in the macro `m` (in Nightly builds, run with -Z macro-backtrace for more info) + +error[E0432]: unresolved import `a::$crate` + --> $DIR/dollar-crate-is-keyword-2.rs:5:13 + | +LL | use a::$crate; + | ^^^^^^^^^ no `$crate` in `a` +... +LL | m!(); + | ---- in this macro invocation + | + = note: this error originates in the macro `m` (in Nightly builds, run with -Z macro-backtrace for more info) + +error[E0433]: failed to resolve: `$crate` in paths can only be used in start position + --> $DIR/dollar-crate-is-keyword-2.rs:7:21 + | +LL | type A = a::$crate; + | ^^^^^^ `$crate` in paths can only be used in start position +... +LL | m!(); + | ---- in this macro invocation + | + = note: this error originates in the macro `m` (in Nightly builds, run with -Z macro-backtrace for more info) + +error: aborting due to 3 previous errors + +Some errors have detailed explanations: E0432, E0433. +For more information about an error, try `rustc --explain E0432`. diff --git a/src/test/ui/dollar-crate/dollar-crate-is-keyword.rs b/src/test/ui/dollar-crate/dollar-crate-is-keyword.rs new file mode 100644 index 000000000..d625163dc --- /dev/null +++ b/src/test/ui/dollar-crate/dollar-crate-is-keyword.rs @@ -0,0 +1,17 @@ +macro_rules! m { + () => { + // Avoid having more than one `$crate`-named item in the same module, + // as even though they error, they still parse as `$crate` and conflict. + mod foo { + struct $crate {} //~ ERROR expected identifier, found reserved identifier `$crate` + } + + use $crate; //~ ERROR `$crate` may not be imported + use $crate as $crate; //~ ERROR expected identifier, found reserved identifier `$crate` + //~^ ERROR `$crate` may not be imported + } +} + +m!(); + +fn main() {} diff --git a/src/test/ui/dollar-crate/dollar-crate-is-keyword.stderr b/src/test/ui/dollar-crate/dollar-crate-is-keyword.stderr new file mode 100644 index 000000000..b02782230 --- /dev/null +++ b/src/test/ui/dollar-crate/dollar-crate-is-keyword.stderr @@ -0,0 +1,46 @@ +error: expected identifier, found reserved identifier `$crate` + --> $DIR/dollar-crate-is-keyword.rs:6:20 + | +LL | struct $crate {} + | ^^^^^^ expected identifier, found reserved identifier +... +LL | m!(); + | ---- in this macro invocation + | + = note: this error originates in the macro `m` (in Nightly builds, run with -Z macro-backtrace for more info) + +error: expected identifier, found reserved identifier `$crate` + --> $DIR/dollar-crate-is-keyword.rs:10:23 + | +LL | use $crate as $crate; + | ^^^^^^ expected identifier, found reserved identifier +... +LL | m!(); + | ---- in this macro invocation + | + = note: this error originates in the macro `m` (in Nightly builds, run with -Z macro-backtrace for more info) + +error: `$crate` may not be imported + --> $DIR/dollar-crate-is-keyword.rs:9:9 + | +LL | use $crate; + | ^^^^^^^^^^^ +... +LL | m!(); + | ---- in this macro invocation + | + = note: this error originates in the macro `m` (in Nightly builds, run with -Z macro-backtrace for more info) + +error: `$crate` may not be imported + --> $DIR/dollar-crate-is-keyword.rs:10:9 + | +LL | use $crate as $crate; + | ^^^^^^^^^^^^^^^^^^^^^ +... +LL | m!(); + | ---- in this macro invocation + | + = note: this error originates in the macro `m` (in Nightly builds, run with -Z macro-backtrace for more info) + +error: aborting due to 4 previous errors + |