From: nobu@... Date: 2020-06-03T13:55:46+00:00 Subject: [ruby-core:98642] [Ruby master Bug#16932] `defined?` on refined method call returns non-nil even before `using` Issue #16932 has been reported by nobu (Nobuyoshi Nakada). ---------------------------------------- Bug #16932: `defined?` on refined method call returns non-nil even before `using` https://bugs.ruby-lang.org/issues/16932 * Author: nobu (Nobuyoshi Nakada) * Status: Open * Priority: Normal * ruby -v: 2.8.0dev (2020-06-03T10:13:36Z master ee35a4dad3) * Backport: 2.5: REQUIRED, 2.6: REQUIRED, 2.7: REQUIRED ---------------------------------------- From 2.0 to master (ee35a4dad3), the second `defined?(a.x)` before `using` returns truthy value. ``` ruby class A end a = A.new p defined?(a.x) #=> nil (OK) m = Module.new do refine(A) do def x end end end a.x rescue p $! #=> NoMethodError: undefined method `x' p defined?(a.x) #=> "method" (NG) using m p defined?(a.x) #=> "method" (OK) ``` -- https://bugs.ruby-lang.org/ Unsubscribe: