Issue #11754 has been updated by Max Melentiev.


~~~
module X
  def self.test_def(name)
    define_method(name) {}
  end

  test_def :x

  private

  test_def :y 

  def pr; end
end

X.test_def :z
X.public_instance_methods
# 2.2.2 => [:x, :y, :z]
# 2.3-preview1 => [:x]

~~~

Is it ok?

----------------------------------------
Bug #11754: Visibility scope is kept after lexical scope is closed
https://bugs.ruby-lang.org/issues/11754#change-55172

* Author: Max Melentiev
* Status: Open
* Priority: Normal
* Assignee: 
* ruby -v: 
* Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN, 2.2: UNKNOWN
----------------------------------------
~~~
module X
  def self.test_def
   def x; end; 
  end

  private
  def y; end; 
end
X.test_def
X.instance_methods
~~~

In 2.2 it returns [:x], in 2.3-preview1 it returns empty array. Is it ok?



-- 
https://bugs.ruby-lang.org/