diff options
| author | Max Bernstein <rubybugs@bernsteinbear.com> | 2025-09-30 23:39:06 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-09-30 21:39:06 +0000 |
| commit | 8cefb70e210348f509648df943eebe61ef708c3d (patch) | |
| tree | 99dde5e4782f685af2514b0ed98ebbad075a5a03 /test/ruby/test_zjit.rb | |
| parent | df2d1d5ad386c51ad9750282917ecacf2b343598 (diff) | |
ZJIT: Re-apply attr_writer inlining (#14678)
This re-applies https://github.com/ruby/ruby/pull/14629 / 40bb47665d3ff57e0f2eb5a9fd9e0109617015c9 by reverting https://github.com/ruby/ruby/pull/14673 / d4393772b89dab4f33c118a284d92dc80cd63c39.
Co-authored-by: Alan Wu <XrXr@users.noreply.github.com>
Diffstat (limited to 'test/ruby/test_zjit.rb')
| -rw-r--r-- | test/ruby/test_zjit.rb | 43 |
1 files changed, 42 insertions, 1 deletions
diff --git a/test/ruby/test_zjit.rb b/test/ruby/test_zjit.rb index 683d53f339..937cf44e19 100644 --- a/test/ruby/test_zjit.rb +++ b/test/ruby/test_zjit.rb @@ -1642,7 +1642,7 @@ class TestZJIT < Test::Unit::TestCase }, call_threshold: 2, insns: [:opt_send_without_block] end - def test_attr_accessor + def test_attr_accessor_getivar assert_compiles '[4, 4]', %q{ class C attr_accessor :foo @@ -1658,6 +1658,47 @@ class TestZJIT < Test::Unit::TestCase }, call_threshold: 2, insns: [:opt_send_without_block] end + def test_attr_accessor_setivar + assert_compiles '[5, 5]', %q{ + class C + attr_accessor :foo + + def initialize + @foo = 4 + end + end + + def test(c) + c.foo = 5 + c.foo + end + + c = C.new + [test(c), test(c)] + }, call_threshold: 2, insns: [:opt_send_without_block] + end + + def test_attr_writer + assert_compiles '[5, 5]', %q{ + class C + attr_writer :foo + + def initialize + @foo = 4 + end + + def get_foo = @foo + end + + def test(c) + c.foo = 5 + c.get_foo + end + c = C.new + [test(c), test(c)] + }, call_threshold: 2, insns: [:opt_send_without_block] + end + def test_uncached_getconstant_path assert_compiles RUBY_COPYRIGHT.dump, %q{ def test = RUBY_COPYRIGHT |
