diff options
| author | John Hawthorn <john@hawthorn.email> | 2024-02-19 18:53:13 -0800 |
|---|---|---|
| committer | John Hawthorn <john@hawthorn.email> | 2024-03-07 10:06:48 -0800 |
| commit | 18ee7c9a108bf3424814565377c8796e5e455cf7 (patch) | |
| tree | b40de1223dd83a046d872a0b3a9be5df96d36585 /test/ruby | |
| parent | 4a4e5dd9c97f46ad3e5f463129d5340647702368 (diff) | |
Clear all refined CCs on reopening refinement mod
In cfd7729ce7a31c8b6ec5dd0e99c67b2932de4732 we started using inline
caches for refinements. However, we weren't clearing inline caches when
defined on a reopened refinement module.
Fixes [Bug #20246]
Diffstat (limited to 'test/ruby')
| -rw-r--r-- | test/ruby/test_refinement.rb | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/test/ruby/test_refinement.rb b/test/ruby/test_refinement.rb index cb55627e2c..4fb23d1b54 100644 --- a/test/ruby/test_refinement.rb +++ b/test/ruby/test_refinement.rb @@ -1606,18 +1606,35 @@ class TestRefinement < Test::Unit::TestCase end using R + def m + C.new.m + end + assert_equal(:foo, C.new.m) + assert_equal(:foo, m) module R refine C do + + assert_equal(:foo, C.new.m) + assert_equal(:foo, m) + alias m m + + assert_equal(:foo, C.new.m) + assert_equal(:foo, m) + def m :bar end + + assert_equal(:bar, C.new.m, "[ruby-core:71423] [Bug #11672]") + assert_equal(:bar, m, "[Bug #20285]") end end assert_equal(:bar, C.new.m, "[ruby-core:71423] [Bug #11672]") + assert_equal(:bar, m, "[Bug #20285]") end; end |
