macro definition scope is wrong
This:
function foo() {
macro ret {
case () => { "outer" }
}
function bar() {
macro ret {
case () => { "inner" }
}
ret()
}
ret()
}
expands to "inner" for both invocations of ret() which is wrong.