Issue #16971 has been reported by kwerle (Kurt Werle).

----------------------------------------
Bug #16971: weak_ref&.some_method should behave like object&.some_method
https://bugs.ruby-lang.org/issues/16971

* Author: kwerle (Kurt Werle)
* Status: Open
* Priority: Normal
* ruby -v: ruby 2.7.0p0 (2019-12-25 revision 647ee6f091) [x86_64-linux]
* Backport: 2.5: UNKNOWN, 2.6: UNKNOWN, 2.7: UNKNOWN
----------------------------------------
The following patterns mean basically the same thing and should behave the same:
``` ruby
weak_ref = WeakRef.new(some_object)
...
weak_ref.some_method if weak_ref.weakref_alive?()
some_object.some_method if some_object.present?
```

The some_object predicate got cleaned up by using &.some_method.  It would be super clean if WeakRef did the same.
``` ruby
weak_ref = WeakRef.new(some_object)
...
weak_ref&.some_method # should not raise WeakRef::RefError
```





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