From ef118b8c86944d6fe3520782335835b9ec96590a Mon Sep 17 00:00:00 2001 From: Denys Shabalin Date: Wed, 22 Jan 2014 17:49:26 +0100 Subject: Tag synthetic unit with attachment This makes it easy to differentiate unit inserted by a compiler vs unit written by the user. Useful for quasiquotes and pretty printing. Additionally SyntacticBlock extractor is changed to treat EmptyTree as zero-element block. --- src/reflect/scala/reflect/internal/TreeGen.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/reflect/scala/reflect/internal/TreeGen.scala') diff --git a/src/reflect/scala/reflect/internal/TreeGen.scala b/src/reflect/scala/reflect/internal/TreeGen.scala index b16cbd8325..0e1eb7d3a9 100644 --- a/src/reflect/scala/reflect/internal/TreeGen.scala +++ b/src/reflect/scala/reflect/internal/TreeGen.scala @@ -447,7 +447,7 @@ abstract class TreeGen extends macros.TreeBuilder { /** Create block of statements `stats` */ def mkBlock(stats: List[Tree]): Tree = if (stats.isEmpty) Literal(Constant(())) - else if (!stats.last.isTerm) Block(stats, Literal(Constant(()))) + else if (!stats.last.isTerm) Block(stats, Literal(Constant(())).updateAttachment(SyntheticUnitAttachment)) else if (stats.length == 1) stats.head else Block(stats.init, stats.last) -- cgit v1.2.3