diff options
Diffstat (limited to 'tests/ui/loops/loop-break-value.rs')
| -rw-r--r-- | tests/ui/loops/loop-break-value.rs | 36 | 
1 files changed, 36 insertions, 0 deletions
| diff --git a/tests/ui/loops/loop-break-value.rs b/tests/ui/loops/loop-break-value.rs index e38a5aa29eb..c35200520cb 100644 --- a/tests/ui/loops/loop-break-value.rs +++ b/tests/ui/loops/loop-break-value.rs @@ -107,6 +107,7 @@ fn main() { } break; //~ ERROR mismatched types }; + let _ = 'a: loop { loop { break; // This doesn't affect the expected break type of the 'a loop @@ -119,6 +120,41 @@ fn main() { break 'a; //~ ERROR mismatched types }; + loop { + break; + let _ = loop { + break 2; + loop { + break; + } + }; + break 2; //~ ERROR mismatched types + } + + 'a: loop { + break; + let _ = 'a: loop { + //~^ WARNING label name `'a` shadows a label name that is already in scope + break 2; + loop { + break 'a; //~ ERROR mismatched types + } + }; + break 2; //~ ERROR mismatched types + } + + 'a: loop { + break; + let _ = 'a: loop { + //~^ WARNING label name `'a` shadows a label name that is already in scope + break 'a 2; + loop { + break 'a; //~ ERROR mismatched types + } + }; + break 2; //~ ERROR mismatched types + }; + loop { // point at the return type break 2; //~ ERROR mismatched types } | 
