Kero1
(Kero)
1
Hi!
Up to 1.8.0-preview6, the code below prints three lines (A, B, A).
1.8.0-preview7 prints only two (A, B).
What’s going on?
Bye,
Kero.
class A
def initialize(&block)
p “A #{block}” if block_given?
end
end
class B < A
def initialize(&block)
super() { puts “world” }
p “B #{block}” if block_given?
end
end
B.new() { puts “hello” } # results in two lines printed, OK
B.new() # nothing printed ![:frowning: :frowning:](https://ruby-talk.trydiscourse.com/images/emoji/twitter/frowning.png?v=5)
Kero van Gelder wrote:
Hi!
…
B.new() { puts “hello” } # results in two lines printed, OK
B.new() # nothing printed ![:frowning: :frowning:](https://emoji.discourse-cdn.com/twitter/frowning.png?v=12)
Hi,
this is what I got (with todays CVS)
···
class A
def initialize
if block_given?
p “A block”
else
p “A no-block”
end
end
end
class B < A
def initialize
super &(proc { puts “world” })
if block_given?
p “B block”
else
p “B no-block”
end
end
end
B.new() { puts “hello” }
B.new()
“A block”
“B block”
“A block”
“B no-block”
and
class A
def initialize
if block_given?
p “A block”
else
p “A no-block”
end
end
end
class B < A
def initialize
super { puts “world” }
if block_given?
p “B block”
else
p “B no-block”
end
end
end
B.new() { puts “hello” }
B.new()
“A block”
“B block”
“A no-block”
“B no-block”
/Christoph