should ignore block to next, break, etc. fix #3039

parent 81a7b403
......@@ -852,19 +852,24 @@ call_with_block(parser_state *p, node *a, node *b)
{
node *n;
if (a->car == (node*)NODE_SUPER ||
a->car == (node*)NODE_ZSUPER) {
switch ((enum node_type)a->car) {
case NODE_SUPER:
case NODE_ZSUPER:
if (!a->cdr) a->cdr = cons(0, b);
else {
args_with_block(p, a->cdr, b);
}
}
else {
break;
case NODE_CALL:
case NODE_FCALL:
n = a->cdr->cdr->cdr;
if (!n->car) n->car = cons(0, b);
else {
args_with_block(p, n->car, b);
}
break;
default:
break;
}
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment