From 145cced9bcb6a52fccfa0c669121bd07d3b3ff74 Mon Sep 17 00:00:00 2001 From: Koichi Sasada Date: Mon, 15 Apr 2024 14:22:40 +0900 Subject: fix incorrect warning. `super()` (not zsuper) passes the passed block and it can be used. ```ruby class C0 def foo; yield; end end class C1 < C0 def foo; super(); end end C1.new.foo{p :block} #=> :block ``` --- test/ruby/test_method.rb | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'test/ruby') diff --git a/test/ruby/test_method.rb b/test/ruby/test_method.rb index 67b3e03e10..34b58a1f51 100644 --- a/test/ruby/test_method.rb +++ b/test/ruby/test_method.rb @@ -1666,20 +1666,25 @@ class TestMethod < Test::Unit::TestCase def foo = nil def bar = nil def baz = nil + def qux = nil end class C1 < C0 def foo = super def bar = super() def baz(&_) = super(&_) + def qux = super(&nil) end C1.new.foo{} # no warning - C1.new.bar{} # warning + C1.new.bar{} # no warning C1.new.baz{} # no warning + # C1.new.qux{} # TODO: warning line:16 but not supported yet. RUBY - assert_equal 1, err.size - assert_match(/-:14: warning.+bar/, err.join) + assert_equal 0, err.size + # TODO + # assert_equal 1, err.size + # assert_match(/-:16: warning.+qux/, err.join) end end end -- cgit v1.2.3