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