From a1ee420aea398d58b20842aef12145d07f908602 Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Thu, 19 Feb 2026 17:26:04 +0900 Subject: [PATCH] test/t/syntax.rb: add test for `&nil` in formal parameters Co-authored-by: Claude --- test/t/syntax.rb | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/test/t/syntax.rb b/test/t/syntax.rb index 3e9495823..42a6d4198 100644 --- a/test/t/syntax.rb +++ b/test/t/syntax.rb @@ -1271,3 +1271,26 @@ assert('pattern matching - complex patterns') do assert_equal [2, 3], rest end end + +assert('&nil in formal parameters') do + def m(&nil); end + m + m(&nil) + assert_raise(ArgumentError) { m {} } + + def m2(a, b, &nil); end + m2(1, 2) + assert_raise(ArgumentError) { m2(1, 2) {} } + + def m3(a, b=1, *c, &nil); end + m3(1) + assert_raise(ArgumentError) { m3(1) {} } + + def m4(a:, &nil); end + m4(a: 1) + assert_raise(ArgumentError) { m4(a: 1) {} } + + f = ->(&nil) { :ok } + assert_equal :ok, f.call + assert_raise(ArgumentError) { f.call {} } +end