summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornagachika <nagachika@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2013-03-09 14:11:06 +0000
committernagachika <nagachika@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2013-03-09 14:11:06 +0000
commit530ce295d601b9e28574628605f149380ecb7af2 (patch)
tree672cf15acb020034c44b4cd4f4402bbdf51f2594
parent6ba3994835ce63ad4ee3b5e98fbebed46c60c0d8 (diff)
merge revision(s) 39444,39446: [Backport #7922]
* compile.c (iseq_set_arguments): no keyword check if any keyword rest argument exists, even unnamed. [ruby-core:52744] [Bug #7922] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_0_0@39670 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog5
-rw-r--r--compile.c1
-rw-r--r--test/ruby/test_syntax.rb3
-rw-r--r--version.h2
4 files changed, 9 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index b665375acc..a65ded2e52 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Sat Mar 9 23:08:43 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * compile.c (iseq_set_arguments): no keyword check if any keyword rest
+ argument exists, even unnamed. [ruby-core:52744] [Bug #7922]
+
Sat Mar 9 22:50:28 2013 Zachary Scott <zachary@zacharyscott.net>
* array.c: Document #<=> return values and formatting
diff --git a/compile.c b/compile.c
index 5e0b61572e..fc5229fd9b 100644
--- a/compile.c
+++ b/compile.c
@@ -1204,7 +1204,6 @@ iseq_set_arguments(rb_iseq_t *iseq, LINK_ANCHOR *optargs, NODE *node_args)
else if (args->kw_rest_arg) {
iseq->arg_keyword = get_dyna_var_idx_at_raw(iseq, args->kw_rest_arg->nd_vid);
COMPILE(optargs, "kwarg", args->kw_rest_arg);
- iseq->arg_keyword_check = (args->kw_rest_arg->nd_vid & ID_SCOPE_MASK) == ID_JUNK;
ADD_INSN(optargs, nd_line(args->kw_rest_arg), pop);
}
else {
diff --git a/test/ruby/test_syntax.rb b/test/ruby/test_syntax.rb
index 2877491cdc..bc29007359 100644
--- a/test/ruby/test_syntax.rb
+++ b/test/ruby/test_syntax.rb
@@ -77,6 +77,9 @@ class TestSyntax < Test::Unit::TestCase
eval("def o.m(k: 0) k end")
end
assert_equal(42, o.m(k: 42), '[ruby-core:45744]')
+ bug7922 = '[ruby-core:52744] [Bug #7922]'
+ def o.bug7922(**) end
+ assert_nothing_raised(ArgumentError, bug7922) {o.bug7922(foo: 42)}
end
def test_keyword_splat
diff --git a/version.h b/version.h
index bb56253075..e35f6a684a 100644
--- a/version.h
+++ b/version.h
@@ -1,6 +1,6 @@
#define RUBY_VERSION "2.0.0"
#define RUBY_RELEASE_DATE "2013-03-09"
-#define RUBY_PATCHLEVEL 39
+#define RUBY_PATCHLEVEL 40
#define RUBY_RELEASE_YEAR 2013
#define RUBY_RELEASE_MONTH 3