From: "ydah (Yudai Takada) via ruby-core" Date: 2025-01-05T00:17:01+00:00 Subject: [ruby-core:120481] [Ruby master Bug#21003] unexpected warning about ignored block Issue #21003 has been updated by ydah (Yudai Takada). memo) This does not occur even in Ruby 3.4.1 when `--parser=parse.y`. ``` ��� ruby --parser=parse.y -e '$VERBOSE = true def foo(*, &block) = block def bar(buz, ...) = foo(buz, ...) bar(:test) {}' ~ ��� ruby --parser=parse.y -v -e '$VERBOSE = true def foo(*, &block) = block def bar(buz, ...) = foo(buz, ...) bar(:test) {}' ruby 3.4.1 (2024-12-25 revision 48d4efcb85) [arm64-darwin23] ``` ---------------------------------------- Bug #21003: unexpected warning about ignored block https://bugs.ruby-lang.org/issues/21003#change-111265 * Author: decuplet (Nikita Shilnikov) * Status: Open * ruby -v: ruby 3.4.1 (2024-12-25 revision 48d4efcb85) +PRISM [arm64-darwin24] * Backport: 3.1: DONTNEED, 3.2: DONTNEED, 3.3: DONTNEED, 3.4: REQUIRED ---------------------------------------- I stumbled upon this during the upgrade to 3.4. Here's the minimal repro: ```ruby $VERBOSE = true def foo(*, &block) = block def bar(buz, ...) = foo(buz, ...) bar(:test) {} ``` It gives ``` ruby reproduce.rb reproduce.rb:6: warning: the block passed to 'Object#bar' defined at reproduce.rb:4 may be ignored ``` where I believe it shouldn't. No warning reported if I change `def bar(buz, ...)` to `def bar(...)`. -- https://bugs.ruby-lang.org/ ______________________________________________ ruby-core mailing list -- ruby-core@ml.ruby-lang.org To unsubscribe send an email to ruby-core-leave@ml.ruby-lang.org ruby-core info -- https://ml.ruby-lang.org/mailman3/lists/ruby-core.ml.ruby-lang.org/