From: "nobu (Nobuyoshi Nakada) via ruby-core" <ruby-core@...>
Date: 2025-06-20T00:16:49+00:00
Subject: [ruby-core:122560] [Ruby Bug#21446] StackOverflow when changing visibility in reopened refinement

Issue #21446 has been updated by nobu (Nobuyoshi Nakada).


It does not seem to need to reopen the refinement.

Reproduces just by changing visibility twice.

```ruby
module R
  refine B do
    private :a
    public :a
  end
end
```

----------------------------------------
Bug #21446: StackOverflow when changing visibility in reopened refinement
https://bugs.ruby-lang.org/issues/21446#change-113791

* Author: luke-gru (Luke Gruber)
* Status: Open
* ruby -v: 3.5.0
* Backport: 3.2: UNKNOWN, 3.3: UNKNOWN, 3.4: UNKNOWN
----------------------------------------
```ruby
class A
  def a
    :a
  end
end
class B < A
end

module R
  refine B do
    private :a
  end
end
module R
  refine B do
    public :a
  end
end
using R
B.new.a # StackOverflow
```

I would expect it to change the visibility, not to overflow the stack.



-- 
https://bugs.ruby-lang.org/
______________________________________________
 ruby-core mailing list -- ruby-core@ml.ruby-lang.org
 To unsubscribe send an email to ruby-core-leave@ml.ruby-lang.org
 ruby-core info -- https://ml.ruby-lang.org/mailman3/lists/ruby-core.ml.ruby-lang.org/