|  | macro_rules! foo { | 
|  | () => { | 
|  | break (); //~ ERROR `break` outside of a loop or labeled block | 
|  | }; | 
|  | ($e: expr) => { | 
|  | break $e; //~ ERROR `break` outside of a loop or labeled block | 
|  | }; | 
|  | (stmt $s: stmt) => { | 
|  | $s | 
|  | }; | 
|  | (@ $e: expr) => { | 
|  | { break $e; } //~ ERROR `break` outside of a loop or labeled block | 
|  | }; | 
|  | (=> $s: stmt) => { | 
|  | { $s } | 
|  | }; | 
|  | } | 
|  |  | 
|  | fn main() { | 
|  | { | 
|  | foo!(); | 
|  | } | 
|  | { | 
|  | foo!(()); | 
|  | } | 
|  | { | 
|  | foo!(stmt break ()); //~ ERROR `break` outside of a loop or labeled block | 
|  | } | 
|  | { | 
|  | foo!(@ ()); | 
|  | } | 
|  | { | 
|  | foo!(=> break ()); //~ ERROR `break` outside of a loop or labeled block | 
|  | } | 
|  | { | 
|  | macro_rules! bar { | 
|  | () => { | 
|  | break () //~ ERROR `break` outside of a loop or labeled block | 
|  | }; | 
|  | } | 
|  | bar!() | 
|  | } | 
|  | } |