aboutsummaryrefslogtreecommitdiffstats
path: root/eval.c
diff options
context:
space:
mode:
Diffstat (limited to 'eval.c')
-rw-r--r--eval.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/eval.c b/eval.c
index 5e2131ebed..32f7972c39 100644
--- a/eval.c
+++ b/eval.c
@@ -1803,6 +1803,7 @@ is_defined(self, node, buf)
VALUE val; /* OK */
int state;
+ again:
if (!node) return "expression";
switch (nd_type(node)) {
case NODE_SUPER:
@@ -1824,7 +1825,6 @@ is_defined(self, node, buf)
goto check_bound;
case NODE_CALL:
- if (!is_defined(self, node->nd_recv, buf)) return 0;
PUSH_TAG(PROT_NONE);
if ((state = EXEC_TAG()) == 0) {
val = rb_eval(self, node->nd_recv);
@@ -1960,6 +1960,10 @@ is_defined(self, node, buf)
}
break;
+ case NODE_NEWLINE:
+ node = node->nd_next;
+ goto again;
+
default:
PUSH_TAG(PROT_NONE);
if ((state = EXEC_TAG()) == 0) {