Hi, I noticed that as of 14511 Symbol#to_proc isn' working as I would expect/it's documented: irb(main):001:0> (1..3).map(&:to_s) => ["[1]", "[2]", "[3]"] I have created a patch to fix the issue and added a test for Symbol#to_proc. This is my first timing delving into the depths of Ruby itself, so if it looks like I'm doing something stupid, I probably am. Fred * string.c (sym_call) pass through the arguments themselves, not the array containing them * test/ruby/test_symbol.rb test_to_proc: Added a test for Symbol#to_proc Index: string.c =================================================================== --- string.c (revision 14520) +++ string.c (working copy) @@ -5526,8 +5526,8 @@ if (argc < 1) { rb_raise(rb_eArgError, "no receiver given"); } - obj = argv[0]; - return rb_funcall3(obj, (ID)sym, argc - 1, argv + 1); + obj = RARRAY_PTR(args)[0]; + return rb_funcall3(obj, (ID)sym, RARRAY_LEN(args) - 1, RARRAY_PTR(args) + 1); } /* Index: test/ruby/test_symbol.rb =================================================================== --- test/ruby/test_symbol.rb (revision 14520) +++ test/ruby/test_symbol.rb (working copy) @@ -74,4 +74,8 @@ assert_inspect_evaled(':$0') assert_inspect_evaled(':$1') end + + def test_to_proc + assert_equal %w(1 2 3), (1..3).map(&:to_s) + end end