aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--test/ruby/test_keyword.rb6
-rw-r--r--vm_method.c1
2 files changed, 7 insertions, 0 deletions
diff --git a/test/ruby/test_keyword.rb b/test/ruby/test_keyword.rb
index bbf3953c17..c3a3a450f1 100644
--- a/test/ruby/test_keyword.rb
+++ b/test/ruby/test_keyword.rb
@@ -2724,6 +2724,12 @@ class TestKeywordArguments < Test::Unit::TestCase
end
def test_ruby2_keywords
+ assert_raise(ArgumentError) do
+ Class.new do
+ ruby2_keywords
+ end
+ end
+
c = Class.new do
ruby2_keywords def foo(meth, *args)
send(meth, *args)
diff --git a/vm_method.c b/vm_method.c
index 4504468789..877198cee1 100644
--- a/vm_method.c
+++ b/vm_method.c
@@ -1811,6 +1811,7 @@ rb_mod_ruby2_keywords(int argc, VALUE *argv, VALUE module)
int i;
VALUE origin_class = RCLASS_ORIGIN(module);
+ rb_check_arity(argc, 1, UNLIMITED_ARGUMENTS);
rb_check_frozen(module);
for (i = 0; i < argc; i++) {