diff options
| author | Matt Valentine-House <matt@eightbitraptor.com> | 2024-02-05 16:12:46 +0000 |
|---|---|---|
| committer | Kevin Newton <kddnewton@gmail.com> | 2024-02-13 21:19:12 -0500 |
| commit | edb755c84b6ccbb9fed1c04aa37080d4e884a434 (patch) | |
| tree | dad1939b6039d95976d5f56aaad21dddc0fc16e0 /test | |
| parent | c2af974e6751b9a4c533a8c6855efd9897b09c5f (diff) | |
[PRISM] Add eval tests
Diffstat (limited to 'test')
| -rw-r--r-- | test/ruby/test_compile_prism.rb | 37 |
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) |
