aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--hash.c2
-rw-r--r--spec/ruby/core/hash/to_proc_spec.rb4
2 files changed, 5 insertions, 1 deletions
diff --git a/hash.c b/hash.c
index 358b78580b..f6581acfd2 100644
--- a/hash.c
+++ b/hash.c
@@ -5285,7 +5285,7 @@ hash_proc_call(RB_BLOCK_CALL_FUNC_ARGLIST(key, hash))
static VALUE
rb_hash_to_proc(VALUE hash)
{
- return rb_func_proc_new(hash_proc_call, hash);
+ return rb_func_lambda_new(hash_proc_call, hash, 1, 1);
}
static VALUE
diff --git a/spec/ruby/core/hash/to_proc_spec.rb b/spec/ruby/core/hash/to_proc_spec.rb
index 8b7ddd5e00..73c96bdf08 100644
--- a/spec/ruby/core/hash/to_proc_spec.rb
+++ b/spec/ruby/core/hash/to_proc_spec.rb
@@ -29,6 +29,10 @@ describe "Hash#to_proc" do
it "is a lambda" do
@proc.should.lambda?
end
+
+ it "has an arity of 1" do
+ @proc.arity.should == 1
+ end
end
it "raises ArgumentError if not passed exactly one argument" do