aboutsummaryrefslogtreecommitdiffstats
path: root/test/ruby/test_syntax.rb
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2014-03-05 06:56:49 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2014-03-05 06:56:49 +0000
commit01740f0c273c89f7bcff3d5014d73c8ff6fb1986 (patch)
treeb77db215efbdf036129c34ca4a1548e69ee990e8 /test/ruby/test_syntax.rb
parent89e70fe8e7d6b6253e5aa84c2b414957a22a3d7d (diff)
downloadruby-01740f0c273c89f7bcff3d5014d73c8ff6fb1986.tar.gz
parse.y: optional arguments in rhs
* parse.y (f_arg_asgn): define optional arguments as argument variables in the rhs default expressions. [ruby-core:61299] [Bug #9593] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45272 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test/ruby/test_syntax.rb')
-rw-r--r--test/ruby/test_syntax.rb24
1 files changed, 24 insertions, 0 deletions
diff --git a/test/ruby/test_syntax.rb b/test/ruby/test_syntax.rb
index cac755a390..bc1d80f990 100644
--- a/test/ruby/test_syntax.rb
+++ b/test/ruby/test_syntax.rb
@@ -111,6 +111,30 @@ class TestSyntax < Test::Unit::TestCase
assert_raise(TypeError) {o.kw(**h)}
end
+ def test_keyword_self_reference
+ bug9593 = '[ruby-core:61299] [Bug #9593]'
+ o = Object.new
+ def o.foo(var: defined?(var)) var end
+ assert_equal(42, o.foo(var: 42))
+ assert_equal("local-variable", o.foo, bug9593)
+
+ o = Object.new
+ def o.foo(var: var) var end
+ assert_nil(o.foo, bug9593)
+ end
+
+ def test_optional_self_reference
+ bug9593 = '[ruby-core:61299] [Bug #9593]'
+ o = Object.new
+ def o.foo(var = defined?(var)) var end
+ assert_equal(42, o.foo(42))
+ assert_equal("local-variable", o.foo, bug9593)
+
+ o = Object.new
+ def o.foo(var = var) var end
+ assert_nil(o.foo, bug9593)
+ end
+
def test_warn_grouped_expression
bug5214 = '[ruby-core:39050]'
assert_warning("", bug5214) do