44 lines
869 B
Rust
44 lines
869 B
Rust
|
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!()
|
||
|
}
|
||
|
}
|