diff options
author | Den Shabalin <den.shabalin@gmail.com> | 2013-09-06 18:28:44 +0200 |
---|---|---|
committer | Den Shabalin <den.shabalin@gmail.com> | 2013-09-12 12:43:23 +0200 |
commit | 95fe19545d60ae9aa79d2c8d5665c7f3b0cbdb1a (patch) | |
tree | 7848cd767ac44c0e6e5790553d29afac9439a030 /src/reflect/scala/reflect/internal/TreeGen.scala | |
parent | 5607bd137d8a22c6933e3692a4a1626928acf67f (diff) | |
download | scala-95fe19545d60ae9aa79d2c8d5665c7f3b0cbdb1a.tar.gz scala-95fe19545d60ae9aa79d2c8d5665c7f3b0cbdb1a.tar.bz2 scala-95fe19545d60ae9aa79d2c8d5665c7f3b0cbdb1a.zip |
SI-6489 parsing in macros should provide proper positions
1. macro parsing doesn't use toolbox any more but calls parser directly
2. in order for this to work parser has to be refactored to limit
usage of currentUnit and rewire it into parser's local unit
method which might use currentUnit for some parsers but will
user proper unit for UnitParser
3. similar change has to be done to make compilation unit's
reporter overridable
Diffstat (limited to 'src/reflect/scala/reflect/internal/TreeGen.scala')
-rw-r--r-- | src/reflect/scala/reflect/internal/TreeGen.scala | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/reflect/scala/reflect/internal/TreeGen.scala b/src/reflect/scala/reflect/internal/TreeGen.scala index 07fa6fb317..26adf20c52 100644 --- a/src/reflect/scala/reflect/internal/TreeGen.scala +++ b/src/reflect/scala/reflect/internal/TreeGen.scala @@ -437,4 +437,10 @@ abstract class TreeGen extends macros.TreeBuilder { else if (!stats.last.isTerm) Block(stats, Literal(Constant(()))) else if (stats.length == 1) stats.head else Block(stats.init, stats.last) + + def mkTreeOrBlock(stats: List[Tree]) = stats match { + case Nil => EmptyTree + case head :: Nil => head + case _ => gen.mkBlock(stats) + } } |