diff options
Diffstat (limited to 'src/test/ui/hygiene/hygienic-labels.rs')
-rw-r--r-- | src/test/ui/hygiene/hygienic-labels.rs | 60 |
1 files changed, 0 insertions, 60 deletions
diff --git a/src/test/ui/hygiene/hygienic-labels.rs b/src/test/ui/hygiene/hygienic-labels.rs deleted file mode 100644 index 6a7d81f04..000000000 --- a/src/test/ui/hygiene/hygienic-labels.rs +++ /dev/null @@ -1,60 +0,0 @@ -// run-pass -#![allow(unreachable_code)] -#![allow(unused_labels)] -// Test that labels injected by macros do not break hygiene. - -// Issue #24278: The label/lifetime shadowing checker from #24162 -// conservatively ignores hygiene, and thus issues warnings that are -// both true- and false-positives for this test. - -macro_rules! loop_x { - ($e: expr) => { - // $e shouldn't be able to interact with this 'x - 'x: loop { - $e - } - }; -} - -macro_rules! run_once { - ($e: expr) => { - // ditto - 'x: for _ in 0..1 { - $e - } - }; -} - -macro_rules! while_x { - ($e: expr) => { - // ditto - 'x: while 1 + 1 == 2 { - $e - } - }; -} - -pub fn main() { - 'x: for _ in 0..1 { - // this 'x should refer to the outer loop, lexically - loop_x!(break 'x); - panic!("break doesn't act hygienically inside for loop"); - } - - 'x: loop { - // ditto - loop_x!(break 'x); - panic!("break doesn't act hygienically inside infinite loop"); - } - - 'x: while 1 + 1 == 2 { - while_x!(break 'x); - panic!("break doesn't act hygienically inside infinite while loop"); - } - - 'x: for _ in 0..1 { - // ditto - run_once!(continue 'x); - panic!("continue doesn't act hygienically inside for loop"); - } -} |