Issue #13574 has been updated by Eregon (Benoit Daloze).


matthewd (Matthew Draper) wrote:
> apart from removing the method first, which isn't atomic

What do you mean?
That remove_method + new definition is not atomic?

----------------------------------------
Bug #13574: Method redefinition warning
https://bugs.ruby-lang.org/issues/13574#change-65085

* Author: tenderlovemaking (Aaron Patterson)
* Status: Open
* Priority: Normal
* Assignee: 
* Target version: 
* ruby -v: ruby 2.5.0dev (2017-03-22 gc-compact 58059) [x86_64-darwin16]
* Backport: 2.2: UNKNOWN, 2.3: UNKNOWN, 2.4: UNKNOWN
----------------------------------------
Hi,

If I redefine a method like this, I get a warning:

~~~ruby
class Foo
  def bar
  end
end

class Foo
  def bar
  end
end
~~~

If I alias the method to a different name, I don't get a warning:

~~~ruby
class Foo
  def bar
  end
end

class Foo
  alias :foo :bar

  def bar
  end
end
~~~

I think this is expected.  However, if I alias the method to itself, I don't get a warning:

~~~ruby
class Foo
  def bar
  end
end

class Foo
  alias :bar :bar

  def bar
  end
end
~~~

I think this case should cause a warning.

---Files--------------------------------
warn-on-same-name-alias.diff (425 Bytes)


-- 
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>