[ruby-core:93040] [Ruby trunk Bug#15720] SystemStackError when referencing a refinement in a module that isn't used
From:
nobu@...
Date:
2019-06-11 09:03:21 UTC
List:
ruby-core #93040
Issue #15720 has been updated by nobu (Nobuyoshi Nakada).
Seems fine.
Just rename `test_refining_module_repeatedly` which redefines an existing method.
----------------------------------------
Bug #15720: SystemStackError when referencing a refinement in a module that isn't used
https://bugs.ruby-lang.org/issues/15720#change-78431
* Author: chocolateboy (Chocolate Boy)
* Status: Assigned
* Priority: Normal
* Assignee: ko1 (Koichi Sasada)
* Target version:
* ruby -v: ruby 2.7.0dev (2019-03-21 trunk 67332) [x86_64-linux]
* Backport: 2.4: UNKNOWN, 2.5: UNKNOWN, 2.6: UNKNOWN
----------------------------------------
```ruby
module M1
refine Kernel do
def foo
'foo called!'
end
end
end
module M2
refine Kernel do
def bar
'bar called!'
end
end
end
using M1
puts foo
puts bar
```
Expected:
```
foo called!
Traceback (most recent call last):
bug.rb:20:in `<main>': undefined local variable or method `bar' for main:Object (NameError)
```
Actual:
```
foo called!
Traceback (most recent call last):
bug.rb:20:in `<main>': stack level too deep (SystemStackError)
```
Platform: Linux (Arch)
ruby -v:
- ruby 2.7.0dev (2019-03-21 trunk 67332) [x86_64-linux]
- ruby 2.6.2p47 (2019-03-13 revision 67232) [x86_64-linux]
- ruby 2.5.5p157 (2019-03-15 revision 67260) [x86_64-linux]
---Files--------------------------------
bug.rb (188 Bytes)
sse-unused-refinement.patch (1.85 KB)
--
https://bugs.ruby-lang.org/
Unsubscribe: <mailto:ruby-core-request@ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>