summaryrefslogtreecommitdiff
path: root/test/ruby
diff options
context:
space:
mode:
authorMatt Valentine-House <matt@eightbitraptor.com>2024-02-05 16:12:46 +0000
committerKevin Newton <kddnewton@gmail.com>2024-02-13 21:19:12 -0500
commitedb755c84b6ccbb9fed1c04aa37080d4e884a434 (patch)
treedad1939b6039d95976d5f56aaad21dddc0fc16e0 /test/ruby
parentc2af974e6751b9a4c533a8c6855efd9897b09c5f (diff)
[PRISM] Add eval tests
Diffstat (limited to 'test/ruby')
-rw-r--r--test/ruby/test_compile_prism.rb37
1 files changed, 37 insertions, 0 deletions
diff --git a/test/ruby/test_compile_prism.rb b/test/ruby/test_compile_prism.rb
index 927ce3fa0e..3dbc634828 100644
--- a/test/ruby/test_compile_prism.rb
+++ b/test/ruby/test_compile_prism.rb
@@ -2643,6 +2643,43 @@ end
# Miscellaneous #
############################################################################
+ def test_eval
+ assert_prism_eval("eval('1 + 1')", raw: true)
+ assert_prism_eval("a = 1; eval('a + 1')", raw: true)
+
+ assert_prism_eval(<<~CODE, raw: true)
+ def prism_eval_splat(**bar)
+ eval("bar")
+ end
+ prism_eval_splat(bar: 10)
+ CODE
+
+ assert_prism_eval(<<~CODE, raw: true)
+ def prism_eval_keywords(baz:)
+ eval("baz")
+ end
+ prism_eval_keywords(baz: 10)
+ CODE
+
+ assert_prism_eval(<<~CODE, raw: true)
+ [1].each do |a|
+ [2].each do |b|
+ c = 3
+ eval("a + b + c")
+ end
+ end
+ CODE
+
+ assert_prism_eval(<<~CODE, raw: true)
+ def prism_eval_binding(b)
+ eval("bar", b)
+ end
+
+ bar = :ok
+ prism_eval_binding(binding)
+ CODE
+ end
+
def test_ScopeNode
assert_separately(%w[], <<~'RUBY')
def compare_eval(source)