diff options
| author | memoryruins <memoryruinsmusic@gmail.com> | 2019-10-11 17:13:38 -0400 |
|---|---|---|
| committer | memoryruins <memoryruinsmusic@gmail.com> | 2019-10-11 17:13:38 -0400 |
| commit | 95a65cd1e3d0242339d71326cfdd638e869a37d6 (patch) | |
| tree | 360523bf10ec6caa309ffd3d92fe90ebf3d33438 | |
| parent | 05db5a269868c11a0d3916665a478962d4648a6b (diff) | |
| download | rust-95a65cd1e3d0242339d71326cfdd638e869a37d6.tar.gz rust-95a65cd1e3d0242339d71326cfdd638e869a37d6.zip | |
Add regression test for CONST_ERR lints in extern macros
| -rw-r--r-- | src/test/ui/consts/auxiliary/external_macro.rs | 14 | ||||
| -rw-r--r-- | src/test/ui/consts/const-external-macro-const-err.rs | 13 | ||||
| -rw-r--r-- | src/test/ui/consts/const-external-macro-const-err.stderr | 11 |
3 files changed, 38 insertions, 0 deletions
diff --git a/src/test/ui/consts/auxiliary/external_macro.rs b/src/test/ui/consts/auxiliary/external_macro.rs new file mode 100644 index 00000000000..d260634c996 --- /dev/null +++ b/src/test/ui/consts/auxiliary/external_macro.rs @@ -0,0 +1,14 @@ +#![feature(allow_internal_unstable)] + +// Macro to help ensure CONST_ERR lint errors +// are not silenced in external macros. +// https://github.com/rust-lang/rust/issues/65300 + +#[macro_export] +#[allow_internal_unstable(type_ascription)] +macro_rules! static_assert { + ($test:expr) => { + #[allow(dead_code)] + const _: () = [()][!($test: bool) as usize]; + } +} diff --git a/src/test/ui/consts/const-external-macro-const-err.rs b/src/test/ui/consts/const-external-macro-const-err.rs new file mode 100644 index 00000000000..616d24f4a7b --- /dev/null +++ b/src/test/ui/consts/const-external-macro-const-err.rs @@ -0,0 +1,13 @@ +// edition:2018 +// aux-build:external_macro.rs + +// Ensure that CONST_ERR lint errors +// are not silenced in external macros. +// https://github.com/rust-lang/rust/issues/65300 + +extern crate external_macro; +use external_macro::static_assert; + +fn main() { + static_assert!(2 + 2 == 5); //~ ERROR +} diff --git a/src/test/ui/consts/const-external-macro-const-err.stderr b/src/test/ui/consts/const-external-macro-const-err.stderr new file mode 100644 index 00000000000..237c4d792c9 --- /dev/null +++ b/src/test/ui/consts/const-external-macro-const-err.stderr @@ -0,0 +1,11 @@ +error: any use of this value will cause an error + --> $DIR/const-external-macro-const-err.rs:12:5 + | +LL | static_assert!(2 + 2 == 5); + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ index out of bounds: the len is 1 but the index is 1 + | + = note: `#[deny(const_err)]` on by default + = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) + +error: aborting due to previous error + |
