diff options
author | Jeremy Evans <code@jeremyevans.net> | 2019-04-24 11:40:02 -0700 |
---|---|---|
committer | Jeremy Evans <code@jeremyevans.net> | 2019-08-30 12:39:31 -0700 |
commit | fa41a7b2608523a89d4eb1c9309d39a140e839ef (patch) | |
tree | 106484dff969ef1400bfb6c33523e94b88a3a92e /test/ruby/test_ast.rb | |
parent | 4d64693c703edbccc5b155072276ce7b8c3becdb (diff) |
Make RubyVM::AbstractSyntaxTree handle **nil syntax
Use false instead of nil for the keyword and keyword rest values
in that case.
Notes
Notes:
Merged: https://github.com/ruby/ruby/pull/2395
Diffstat (limited to 'test/ruby/test_ast.rb')
-rw-r--r-- | test/ruby/test_ast.rb | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/test/ruby/test_ast.rb b/test/ruby/test_ast.rb index ee9c1ddc00..5c431a47b1 100644 --- a/test/ruby/test_ast.rb +++ b/test/ruby/test_ast.rb @@ -308,4 +308,17 @@ class TestAst < Test::Unit::TestCase type2 = body.children[2] assert_not_equal(type1, type2) end + + def test_keyword_rest + kwrest = lambda do |arg_str| + node = RubyVM::AbstractSyntaxTree.parse("def a(#{arg_str}) end") + node = node.children.last.children.last.children[1].children[-2] + node ? node.children : node + end + + assert_equal(nil, kwrest.call('')) + assert_equal([nil], kwrest.call('**')) + assert_equal(false, kwrest.call('**nil')) + assert_equal([:a], kwrest.call('**a')) + end end |