diff options
| author | Jemma Issroff <jemmaissroff@gmail.com> | 2023-11-02 14:36:45 -0300 |
|---|---|---|
| committer | Jemma Issroff <jemmaissroff@gmail.com> | 2023-11-02 17:46:43 -0300 |
| commit | ca24136da61c9bca9a8260cb0ac2ff206f6f3843 (patch) | |
| tree | 8496ba7f8bb747313a2c184c518ea9fc1ececc27 | |
| parent | 698654ca8456a7e08033cb4eab2d6e9cef7b1413 (diff) | |
[PRISM] Fix popped on DefinedNode
| -rw-r--r-- | prism_compile.c | 4 | ||||
| -rw-r--r-- | test/ruby/test_compile_prism.rb | 2 |
2 files changed, 3 insertions, 3 deletions
diff --git a/prism_compile.c b/prism_compile.c index 59152d351e..6b8bf06bfe 100644 --- a/prism_compile.c +++ b/prism_compile.c @@ -1262,7 +1262,9 @@ pm_compile_defined_expr(rb_iseq_t *iseq, const pm_node_t *node, LINK_ANCHOR *con lfinish[0] = NEW_LABEL(lineno); lfinish[1] = 0; - pm_compile_defined_expr0(iseq, node, ret, src, popped, scope_node, dummy_line_node, lineno, in_condition, lfinish); + if (!popped) { + pm_compile_defined_expr0(iseq, node, ret, src, popped, scope_node, dummy_line_node, lineno, in_condition, lfinish); + } if (lfinish[1]) { ELEM_INSERT_NEXT(last, &new_insn_body(iseq, &dummy_line_node, BIN(putnil), 0)->link); diff --git a/test/ruby/test_compile_prism.rb b/test/ruby/test_compile_prism.rb index fbc637a390..f30c3b621b 100644 --- a/test/ruby/test_compile_prism.rb +++ b/test/ruby/test_compile_prism.rb @@ -89,7 +89,6 @@ module Prism end def test_DefinedNode -=begin assert_prism_eval("defined? nil") assert_prism_eval("defined? self") assert_prism_eval("defined? true") @@ -140,7 +139,6 @@ module Prism assert_prism_eval("x = 1; defined? x ||= 1") assert_prism_eval("if defined? A; end") -=end end def test_GlobalVariableReadNode |
