test/t/syntax.rb: add test for &nil in formal parameters

Co-authored-by: Claude <noreply@anthropic.com>
This commit is contained in:
Yukihiro "Matz" Matsumoto
2026-02-19 17:26:04 +09:00
parent b07518e85c
commit a1ee420aea
+23
View File
@@ -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