Issue #21988 has been reported by tompng (tomoya ishida). ---------------------------------------- Bug #21988: `return a, &b` should be syntax error https://bugs.ruby-lang.org/issues/21988 * Author: tompng (tomoya ishida) * Status: Open * ruby -v: ruby 4.0.0 (2025-12-25 revision 553f1675f3) +YJIT +MN +PRISM [arm64-darwin24] * Backport: 3.2: UNKNOWN, 3.3: UNKNOWN, 3.4: UNKNOWN, 4.0: UNKNOWN ---------------------------------------- `return a, &b` is syntax error in parse.y, but accepted in Prism ~~~ruby Prism.parse_success?('return a, &b') #=> true RubyVM::AbstractSyntaxTree.parse('return a, &b') #=> block argument should not be given (SyntaxError) ~~~ When evaluated, block part is just ignored ~~~ruby ->{return (p :arg_part), **(p kwsplat_part:1), &(p :block_part)}.call # :arg_part # {kwsplat_part: 1} #=> [:arg_part, {kwsplat_part: 1}] ~~~ -- https://bugs.ruby-lang.org/