summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog7
-rw-r--r--bootstraptest/test_syntax.rb3
-rw-r--r--parse.y4
3 files changed, 11 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index be67d6e859c..4d052c9f658 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+Fri Jul 31 02:57:39 2009 Yusuke Endoh <mame@tsg.ne.jp>
+
+ * parse.y (literal_concat_gen): NODE_DSTR was incorrectly handled as
+ NODE_STR. [ruby-dev:38968]
+
+ * bootstraptest/test_syntax.rb: add a test for above.
+
Fri Jul 31 00:55:48 2009 Yusuke Endoh <mame@tsg.ne.jp>
* test/ruby/test_module.rb (test_ancestors, test_included_modules):
diff --git a/bootstraptest/test_syntax.rb b/bootstraptest/test_syntax.rb
index a9005a42929..131625ea6bb 100644
--- a/bootstraptest/test_syntax.rb
+++ b/bootstraptest/test_syntax.rb
@@ -828,3 +828,6 @@ assert_normal_exit %q{
p a.compact!
}
+assert_equal 'ok', %q{
+ "#{}""#{}ok"
+}, '[ruby-dev:38968]'
diff --git a/parse.y b/parse.y
index fbbad25fb8b..e6c921e57a5 100644
--- a/parse.y
+++ b/parse.y
@@ -7833,9 +7833,7 @@ literal_concat_gen(struct parser_params *parser, NODE *head, NODE *tail)
head = tail;
}
else {
- nd_set_type(tail, NODE_ARRAY);
- tail->nd_head = NEW_STR(tail->nd_lit);
- list_concat(head, tail);
+ list_concat(head, NEW_ARRAY(tail));
}
break;