In article <878yj3i1fk.fsf / serein.a02.aist.go.jp>,
  Tanaka Akira <akr / m17n.org> writes:

> ただ、ふと思いついたんですが、もし正しい解が何らかの意味でとりにくいな
> ら、2回動くのは許容するとしてもせめて String が返ることだけは防げませ
> んかね?

たとえば、次のようにするとか。

Index: eval.c
===================================================================
RCS file: /home/cvs/ruby-src/ruby/eval.c,v
retrieving revision 1.636
diff -u -r1.636 eval.c
--- eval.c	10 Feb 2004 11:49:14 -0000	1.636
+++ eval.c	16 Feb 2004 15:47:30 -0000
@@ -3633,6 +3633,8 @@
 		list = list->nd_next;
 	    }
 	    switch (nd_type(node)) {
+	      case NODE_LIT:
+		goto again;
 	      case NODE_DREGX:
 		result = rb_reg_new(RSTRING(str)->ptr, RSTRING(str)->len,
 				    node->nd_cflag);
-- 
[田中 哲][たなか あきら][Tanaka Akira]