diff options
| author | Jeffrey Seyfried <jeffrey.seyfried@gmail.com> | 2016-11-01 01:35:05 +0000 |
|---|---|---|
| committer | Jeffrey Seyfried <jeffrey.seyfried@gmail.com> | 2016-11-02 07:42:42 +0000 |
| commit | 1e6c275b1c685454b357d9ec5357a45de333963e (patch) | |
| tree | 9ca7abcc84678d5c492bf81a4405b401a148e05a | |
| parent | 076c5d445b7611995a8d7e26e94c327a79eb20e2 (diff) | |
| download | rust-1e6c275b1c685454b357d9ec5357a45de333963e.tar.gz rust-1e6c275b1c685454b357d9ec5357a45de333963e.zip | |
Add regression test.
| -rw-r--r-- | src/test/compile-fail/auxiliary/define_macro.rs | 16 | ||||
| -rw-r--r-- | src/test/compile-fail/out-of-order-shadowing.rs | 21 |
2 files changed, 37 insertions, 0 deletions
diff --git a/src/test/compile-fail/auxiliary/define_macro.rs b/src/test/compile-fail/auxiliary/define_macro.rs new file mode 100644 index 00000000000..6b6b14a896b --- /dev/null +++ b/src/test/compile-fail/auxiliary/define_macro.rs @@ -0,0 +1,16 @@ +// Copyright 2016 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. + +#[macro_export] +macro_rules! define_macro { + ($i:ident) => { + macro_rules! $i { () => {} } + } +} diff --git a/src/test/compile-fail/out-of-order-shadowing.rs b/src/test/compile-fail/out-of-order-shadowing.rs new file mode 100644 index 00000000000..1fafaf85112 --- /dev/null +++ b/src/test/compile-fail/out-of-order-shadowing.rs @@ -0,0 +1,21 @@ +// Copyright 2016 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. + +// aux-build:define_macro.rs +// error-pattern: `bar` is already in scope + +macro_rules! bar { () => {} } +define_macro!(bar); +bar!(); + +macro_rules! m { () => { #[macro_use] extern crate define_macro; } } +m!(); + +fn main() {} |
