From 75f058dbfd1c02daa191efb6eb53dc91fda8add6 Mon Sep 17 00:00:00 2001 From: Eric Huss Date: Fri, 17 Sep 2021 13:08:56 -0700 Subject: Check for macros in built-in attributes that don't support them. --- src/test/ui/invalid/invalid-crate-type-macro.rs | 7 +++++++ src/test/ui/invalid/invalid-crate-type-macro.stderr | 8 ++++++++ src/test/ui/modules/path-invalid-form.rs | 4 ++++ src/test/ui/modules/path-invalid-form.stderr | 8 ++++++++ src/test/ui/modules/path-macro.rs | 8 ++++++++ src/test/ui/modules/path-macro.stderr | 8 ++++++++ src/test/ui/recursion_limit/invalid_digit_type.rs | 3 +++ src/test/ui/recursion_limit/invalid_digit_type.stderr | 8 ++++++++ src/test/ui/recursion_limit/invalid_macro.rs | 7 +++++++ src/test/ui/recursion_limit/invalid_macro.stderr | 8 ++++++++ 10 files changed, 69 insertions(+) create mode 100644 src/test/ui/invalid/invalid-crate-type-macro.rs create mode 100644 src/test/ui/invalid/invalid-crate-type-macro.stderr create mode 100644 src/test/ui/modules/path-invalid-form.rs create mode 100644 src/test/ui/modules/path-invalid-form.stderr create mode 100644 src/test/ui/modules/path-macro.rs create mode 100644 src/test/ui/modules/path-macro.stderr create mode 100644 src/test/ui/recursion_limit/invalid_digit_type.rs create mode 100644 src/test/ui/recursion_limit/invalid_digit_type.stderr create mode 100644 src/test/ui/recursion_limit/invalid_macro.rs create mode 100644 src/test/ui/recursion_limit/invalid_macro.stderr (limited to 'src') diff --git a/src/test/ui/invalid/invalid-crate-type-macro.rs b/src/test/ui/invalid/invalid-crate-type-macro.rs new file mode 100644 index 00000000000..9ba5e79ba94 --- /dev/null +++ b/src/test/ui/invalid/invalid-crate-type-macro.rs @@ -0,0 +1,7 @@ +#![crate_type = foo!()] //~ ERROR malformed `crate_type` attribute + +macro_rules! foo { + () => {"rlib"}; +} + +fn main() {} diff --git a/src/test/ui/invalid/invalid-crate-type-macro.stderr b/src/test/ui/invalid/invalid-crate-type-macro.stderr new file mode 100644 index 00000000000..c196d4278a2 --- /dev/null +++ b/src/test/ui/invalid/invalid-crate-type-macro.stderr @@ -0,0 +1,8 @@ +error: malformed `crate_type` attribute input + --> $DIR/invalid-crate-type-macro.rs:1:1 + | +LL | #![crate_type = foo!()] + | ^^^^^^^^^^^^^^^^^^^^^^^ help: must be of the form: `#![crate_type = "bin|lib|..."]` + +error: aborting due to previous error + diff --git a/src/test/ui/modules/path-invalid-form.rs b/src/test/ui/modules/path-invalid-form.rs new file mode 100644 index 00000000000..713ef4a795d --- /dev/null +++ b/src/test/ui/modules/path-invalid-form.rs @@ -0,0 +1,4 @@ +#[path = 123] //~ ERROR malformed `path` attribute +mod foo; + +fn main() {} diff --git a/src/test/ui/modules/path-invalid-form.stderr b/src/test/ui/modules/path-invalid-form.stderr new file mode 100644 index 00000000000..7e8aa44ef8b --- /dev/null +++ b/src/test/ui/modules/path-invalid-form.stderr @@ -0,0 +1,8 @@ +error: malformed `path` attribute input + --> $DIR/path-invalid-form.rs:1:1 + | +LL | #[path = 123] + | ^^^^^^^^^^^^^ help: must be of the form: `#[path = "file"]` + +error: aborting due to previous error + diff --git a/src/test/ui/modules/path-macro.rs b/src/test/ui/modules/path-macro.rs new file mode 100644 index 00000000000..ce2d1e2da26 --- /dev/null +++ b/src/test/ui/modules/path-macro.rs @@ -0,0 +1,8 @@ +macro_rules! foo { + () => {"bar.rs"}; +} + +#[path = foo!()] //~ ERROR malformed `path` attribute +mod abc; + +fn main() {} diff --git a/src/test/ui/modules/path-macro.stderr b/src/test/ui/modules/path-macro.stderr new file mode 100644 index 00000000000..9a2e01ea264 --- /dev/null +++ b/src/test/ui/modules/path-macro.stderr @@ -0,0 +1,8 @@ +error: malformed `path` attribute input + --> $DIR/path-macro.rs:5:1 + | +LL | #[path = foo!()] + | ^^^^^^^^^^^^^^^^ help: must be of the form: `#[path = "file"]` + +error: aborting due to previous error + diff --git a/src/test/ui/recursion_limit/invalid_digit_type.rs b/src/test/ui/recursion_limit/invalid_digit_type.rs new file mode 100644 index 00000000000..e408109b368 --- /dev/null +++ b/src/test/ui/recursion_limit/invalid_digit_type.rs @@ -0,0 +1,3 @@ +#![recursion_limit = 123] //~ ERROR malformed `recursion_limit` attribute + +fn main() {} diff --git a/src/test/ui/recursion_limit/invalid_digit_type.stderr b/src/test/ui/recursion_limit/invalid_digit_type.stderr new file mode 100644 index 00000000000..6d1409bb390 --- /dev/null +++ b/src/test/ui/recursion_limit/invalid_digit_type.stderr @@ -0,0 +1,8 @@ +error: malformed `recursion_limit` attribute input + --> $DIR/invalid_digit_type.rs:1:1 + | +LL | #![recursion_limit = 123] + | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: must be of the form: `#![recursion_limit = "N"]` + +error: aborting due to previous error + diff --git a/src/test/ui/recursion_limit/invalid_macro.rs b/src/test/ui/recursion_limit/invalid_macro.rs new file mode 100644 index 00000000000..7db67a8d162 --- /dev/null +++ b/src/test/ui/recursion_limit/invalid_macro.rs @@ -0,0 +1,7 @@ +#![recursion_limit = foo!()] //~ ERROR malformed `recursion_limit` attribute + +macro_rules! foo { + () => {"128"}; +} + +fn main() {} diff --git a/src/test/ui/recursion_limit/invalid_macro.stderr b/src/test/ui/recursion_limit/invalid_macro.stderr new file mode 100644 index 00000000000..0189e99da37 --- /dev/null +++ b/src/test/ui/recursion_limit/invalid_macro.stderr @@ -0,0 +1,8 @@ +error: malformed `recursion_limit` attribute input + --> $DIR/invalid_macro.rs:1:1 + | +LL | #![recursion_limit = foo!()] + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: must be of the form: `#![recursion_limit = "N"]` + +error: aborting due to previous error + -- cgit 1.4.1-3-g733a5