summaryrefslogtreecommitdiffstats
path: root/src/test/ui/hygiene/hygienic-labels-in-let.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/ui/hygiene/hygienic-labels-in-let.rs')
-rw-r--r--src/test/ui/hygiene/hygienic-labels-in-let.rs82
1 files changed, 0 insertions, 82 deletions
diff --git a/src/test/ui/hygiene/hygienic-labels-in-let.rs b/src/test/ui/hygiene/hygienic-labels-in-let.rs
deleted file mode 100644
index 8cf66f31a..000000000
--- a/src/test/ui/hygiene/hygienic-labels-in-let.rs
+++ /dev/null
@@ -1,82 +0,0 @@
-// run-pass
-#![allow(unreachable_code)]
-#![allow(unused_labels)]
-
-// Test that labels injected by macros do not break hygiene. This
-// checks cases where the macros invocations are under the rhs of a
-// let statement.
-
-// 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! while_true {
- ($e: expr) => {
- // $e shouldn't be able to interact with this 'x
- 'x: while 1 + 1 == 2 {
- $e
- }
- };
-}
-
-macro_rules! run_once {
- ($e: expr) => {
- // ditto
- 'x: for _ in 0..1 {
- $e
- }
- };
-}
-
-pub fn main() {
- let mut i = 0;
-
- let j: isize = {
- 'x: loop {
- // this 'x should refer to the outer loop, lexically
- loop_x!(break 'x);
- i += 1;
- }
- i + 1
- };
- assert_eq!(j, 1);
-
- let k: isize = {
- 'x: for _ in 0..1 {
- // ditto
- loop_x!(break 'x);
- i += 1;
- }
- i + 1
- };
- assert_eq!(k, 1);
-
- let l: isize = {
- 'x: for _ in 0..1 {
- // ditto
- while_true!(break 'x);
- i += 1;
- }
- i + 1
- };
- assert_eq!(l, 1);
-
- let n: isize = {
- 'x: for _ in 0..1 {
- // ditto
- run_once!(continue 'x);
- i += 1;
- }
- i + 1
- };
- assert_eq!(n, 1);
-}