aboutsummaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authoreileencodes <eileencodes@gmail.com>2023-12-04 15:40:43 -0500
committerJemma Issroff <jemmaissroff@gmail.com>2023-12-04 16:45:18 -0500
commit7d371ca25d8e8f6524894be4413484cc9b04cb72 (patch)
tree4154b755aed9716d5081acd2f7c59335aef08723 /test
parent09e8d37f5b60f1cd1076c354128309cdf74d0df7 (diff)
downloadruby-7d371ca25d8e8f6524894be4413484cc9b04cb72.tar.gz
[PRISM] Handle percent literals for `defined?`
Tests all the possible percent literal with `defined?`. Implements the missing `PM_X_STRING_NODE` for the `%x` literal. Code: ```ruby defined?(%x[1,2,3]) ``` ``` "********* Ruby *************" == disasm: #<ISeq:<compiled>@<compiled>:0 (0,0)-(0,19)> 0000 putobject "expression" 0002 leave "********* PRISM *************" == disasm: #<ISeq:<compiled>@<compiled>:0 (0,0)-(0,19)> 0000 putobject "expression" 0002 leave ```
Diffstat (limited to 'test')
-rw-r--r--test/ruby/test_compile_prism.rb11
1 files changed, 11 insertions, 0 deletions
diff --git a/test/ruby/test_compile_prism.rb b/test/ruby/test_compile_prism.rb
index 3ca1dd3431..b4e24c6c67 100644
--- a/test/ruby/test_compile_prism.rb
+++ b/test/ruby/test_compile_prism.rb
@@ -110,6 +110,17 @@ module Prism
assert_prism_eval("defined? a && b")
assert_prism_eval("defined? a || b")
+ assert_prism_eval("defined? %[1,2,3]")
+ assert_prism_eval("defined? %q[1,2,3]")
+ assert_prism_eval("defined? %Q[1,2,3]")
+ assert_prism_eval("defined? %r[1,2,3]")
+ assert_prism_eval("defined? %i[1,2,3]")
+ assert_prism_eval("defined? %I[1,2,3]")
+ assert_prism_eval("defined? %w[1,2,3]")
+ assert_prism_eval("defined? %W[1,2,3]")
+ assert_prism_eval("defined? %s[1,2,3]")
+ assert_prism_eval("defined? %x[1,2,3]")
+
assert_prism_eval("defined? @a")
assert_prism_eval("defined? $a")
assert_prism_eval("defined? @@a")