diff options
| author | eileencodes <eileencodes@gmail.com> | 2023-12-04 15:22:10 -0500 |
|---|---|---|
| committer | Jemma Issroff <jemmaissroff@gmail.com> | 2023-12-04 16:45:18 -0500 |
| commit | 09e8d37f5b60f1cd1076c354128309cdf74d0df7 (patch) | |
| tree | fc921454ce9616684968bc7fefb51375e3809285 | |
| parent | 33bc22efe5d372898f3a37004f324f7457e9a944 (diff) | |
[PRISM] Implement `PM_INTERPOLATED_REGULAR_EXPRESSION_NODE`
Implements `PM_INTERPOLATED_REGULAR_EXPRESSION_NODE` for `defined?`
Code:
```ruby
defined?(/#{1}/)
```
```
"********* Ruby *************"
== disasm: #<ISeq:<compiled>@<compiled>:0 (0,0)-(0,16)>
0000 putobject "expression"
0002 leave
"********* PRISM *************"
== disasm: #<ISeq:<compiled>@<compiled>:0 (0,0)-(0,16)>
0000 putobject "expression"
0002 leave
```
| -rw-r--r-- | prism_compile.c | 1 | ||||
| -rw-r--r-- | test/ruby/test_compile_prism.rb | 1 |
2 files changed, 2 insertions, 0 deletions
diff --git a/prism_compile.c b/prism_compile.c index ad038a2ed6..7c9f368ef5 100644 --- a/prism_compile.c +++ b/prism_compile.c @@ -1478,6 +1478,7 @@ pm_compile_defined_expr0(rb_iseq_t *iseq, const pm_node_t *node, LINK_ANCHOR *co case PM_FLOAT_NODE: case PM_HASH_NODE: case PM_INTEGER_NODE: + case PM_INTERPOLATED_REGULAR_EXPRESSION_NODE: case PM_INTERPOLATED_STRING_NODE: case PM_LAMBDA_NODE: case PM_OR_NODE: diff --git a/test/ruby/test_compile_prism.rb b/test/ruby/test_compile_prism.rb index e77051e383..3ca1dd3431 100644 --- a/test/ruby/test_compile_prism.rb +++ b/test/ruby/test_compile_prism.rb @@ -105,6 +105,7 @@ module Prism assert_prism_eval('defined?("#{expr}")') assert_prism_eval("defined? :sym") assert_prism_eval("defined? /foo/") + assert_prism_eval('defined?(/#{1}/)') assert_prism_eval("defined? -> { 1 + 1 }") assert_prism_eval("defined? a && b") assert_prism_eval("defined? a || b") |
