diff options
| author | Georg Brandl <georg@python.org> | 2016-05-02 16:47:07 +0200 |
|---|---|---|
| committer | Georg Brandl <georg@python.org> | 2016-05-02 16:48:36 +0200 |
| commit | 6fed0132f314622700da9cd9f5746cfc4f4bb87f (patch) | |
| tree | d37b7028de650d0b71281be802235d67ee0c2782 /src/test | |
| parent | 855fb6192263a5c059325bb4b4e10b55e4e8ddbb (diff) | |
| download | rust-6fed0132f314622700da9cd9f5746cfc4f4bb87f.tar.gz rust-6fed0132f314622700da9cd9f5746cfc4f4bb87f.zip | |
middle: reset loop labels while visiting closure
This should fix #31754 and follow-up #25343. Before the latter, the closure was visited twice in the context of the enclosing fn, which made even a single closure with a loop label emit a warning. With this change, the closure is still visited within the context of the main fn (which is intended, since it is not a separate item) but resets the found loop labels while being visited. Fixes: #31754
Diffstat (limited to 'src/test')
| -rw-r--r-- | src/test/run-pass/issue-25343.rs | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/test/run-pass/issue-25343.rs b/src/test/run-pass/issue-25343.rs index 9e01d577276..64e7350fb82 100644 --- a/src/test/run-pass/issue-25343.rs +++ b/src/test/run-pass/issue-25343.rs @@ -8,9 +8,24 @@ // option. This file may not be copied, modified, or distributed // except according to those terms. +#[allow(unused)] fn main() { || { 'label: loop { } }; + + // More cases added from issue 31754 + + 'label2: loop { + break; + } + + let closure = || { + 'label2: loop {} + }; + + fn inner_fn() { + 'label2: loop {} + } } |
