[#91458] [Ruby trunk Feature#4475] default variable name for parameter — matz@...
Issue #4475 has been updated by matz (Yukihiro Matsumoto).
3 messages
2019/02/07
[ruby-core:91403] [Ruby trunk Feature#15574] Prohibit to pass a block on super() implicitly
From:
duerst@...
Date:
2019-02-05 03:27:30 UTC
List:
ruby-core #91403
Issue #15574 has been updated by duerst (Martin D端rst).
ko1 (Koichi Sasada) wrote:
> Why don't you pass a block parameter explicitly?
> Because you know the spec and intentional, or simply forget to pass it (and working it with this spec fortunately)?
Until quite recently, using an explicit block parameter was (considered to be?) less efficient than an implicit block parameter.
----------------------------------------
Feature #15574: Prohibit to pass a block on super() implicitly
https://bugs.ruby-lang.org/issues/15574#change-76659
* Author: ko1 (Koichi Sasada)
* Status: Open
* Priority: Normal
* Assignee: matz (Yukihiro Matsumoto)
* Target version:
----------------------------------------
As described in [Feature #15554], `super()` (not `super`) pass the given block.
```
class C
def foo
p block_given?
end
end
class C1 < C
def foo
super #=> true
super() #=> true
end
end
C1.new.foo{}
```
`super` (without parameters) passes all passed parameters so it is no surprise to pass given block.
However, `super()` (with parameters. In this case, it passes 0 parameters) also pass given block implicitly.
I'm not sure who use this behavior, but I think it is simple to prohibit such implicit block passing.
--
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>