遠藤と申します。
1.8.6 、1.9 共に以下のようにすると落ちます。
$ ./ruby -e '0..:"'
-e:1: unterminated string meets end of file
-e:1: empty symbol literal
-e:1: [BUG] Segmentation fault
ruby 1.8.6 (2007-06-26) [i686-linux]
アボートしました (core dumped)
とりあえず以下のパッチ (ruby 1.8 用) で落ちなくなりましたが、
全然わかってないので適当に見てください。
Index: parse.y
===================================================================
--- parse.y (revision 12652)
+++ parse.y (working copy)
@@ -2142,11 +2142,13 @@
dsym : tSYMBEG xstring_contents tSTRING_END
{
lex_state = EXPR_END;
- if (!($$ = $2)) {
+ if (!$2) {
+ $$ = NEW_NIL();
yyerror("empty symbol literal");
}
else {
VALUE lit;
+ $$ = $2;
switch (nd_type($$)) {
case NODE_DSTR:
--
Yusuke ENDOH <mame / tsg.ne.jp>