< :前の番号
^ :番号順リスト
> :次の番号
P :前の記事(スレッド移動)
N :次の記事(スレッド移動)
|<:前のスレッド
>|:次のスレッド
^ :返事先
_:自分への返事
>:同じ返事先を持つ記事(前)
<:同じ返事先を持つ記事(後)
---:分割してスレッド表示、再表示
| :分割して(縦)スレッド表示、再表示
~ :スレッドのフレーム消去
.:インデックス
..:インデックスのインデックス
Issue #15720 has been updated by jeremyevans0 (Jeremy Evans).
Assignee set to ko1 (Koichi Sasada)
Status changed from Open to Assigned
File sse-unused-refinement.patch added
I can confirm this issue. I believe it stems from the fact that in `vm_call_method_each_type`, `cc->me` is getting overwritten by `ref_me` even if they already have the same `def` but a different `defined_class`, which results in infinite recursion. The attached patch should fix your example, but my understanding of this code is limited. ko1 or shugo should probably review this patch and determine if it is the proper way to fix this issue. This could possibly be related to #14068.
----------------------------------------
Bug #15720: SystemStackError when referencing a refinement in a module that isn't used
https://bugs.ruby-lang.org/issues/15720#change-78424
* 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>