From: "zverok (Victor Shepelev)" Date: 2021-12-04T20:02:41+00:00 Subject: [ruby-core:106489] [Ruby master Bug#18385] Refinement#import_methods(Enumerable) doesn't work Issue #18385 has been updated by zverok (Victor Shepelev). Yeah, at least the message should be clearer. I didn't realize that `import_methods` is a make-believe feature, not really integrated with the interpreter/object model. Are there any plans to integrate it more tightly, with refinements being "visible" to C code?.. ---------------------------------------- Bug #18385: Refinement#import_methods(Enumerable) doesn't work https://bugs.ruby-lang.org/issues/18385#change-95145 * Author: zverok (Victor Shepelev) * Status: Open * Priority: Normal * Assignee: shugo (Shugo Maeda) * Backport: 2.6: UNKNOWN, 2.7: UNKNOWN, 3.0: UNKNOWN ---------------------------------------- Very simple to reproduce: ```ruby module M refine String do import_methods Enumerable end end ``` Leads to: `import_methods': Can't import method: Enumerable#drop (ArgumentError)` Which, grepping through code, seems to be raised [here](https://github.com/ruby/ruby/blob/master/eval.c#L1529) but I am not versed enough in Ruby internals to debug further. An attempt to `import_methods Comparable` leads to the same problem, BTW: `Can't import method: Comparable#between?` Am I missing something crucial about `import_method` behavior? -- https://bugs.ruby-lang.org/ Unsubscribe: