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