aboutsummaryrefslogtreecommitdiff
path: root/src/dotty/tools/dotc/ast/untpd.scala
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2013-12-18 11:29:13 +0100
committerMartin Odersky <odersky@gmail.com>2013-12-18 11:29:13 +0100
commit15d8a2e9804fe55c9261e195088da55c0eaa6803 (patch)
treec9cfbfe068b7f301c43e9987959f29843cf715dc /src/dotty/tools/dotc/ast/untpd.scala
parent6b106397a683b9de4bf05da7e768ebf747085c55 (diff)
downloaddotty-15d8a2e9804fe55c9261e195088da55c0eaa6803.tar.gz
dotty-15d8a2e9804fe55c9261e195088da55c0eaa6803.tar.bz2
dotty-15d8a2e9804fe55c9261e195088da55c0eaa6803.zip
Making sure New's always end in an application.
Diffstat (limited to 'src/dotty/tools/dotc/ast/untpd.scala')
-rw-r--r--src/dotty/tools/dotc/ast/untpd.scala7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/dotty/tools/dotc/ast/untpd.scala b/src/dotty/tools/dotc/ast/untpd.scala
index 351548d91..740e8f110 100644
--- a/src/dotty/tools/dotc/ast/untpd.scala
+++ b/src/dotty/tools/dotc/ast/untpd.scala
@@ -107,7 +107,7 @@ object untpd extends Trees.Instance[Untyped] with TreeInfo[Untyped] {
}
var prefix: Tree = Select(New(tycon), nme.CONSTRUCTOR)
if (targs.nonEmpty) prefix = TypeApply(prefix, targs)
- (prefix /: argss)(Apply(_, _))
+ ensureApplied((prefix /: argss)(Apply(_, _)))
}
def Block(stat: Tree, expr: Tree): Block =
@@ -116,6 +116,11 @@ object untpd extends Trees.Instance[Untyped] with TreeInfo[Untyped] {
def Apply(fn: Tree, arg: Tree): Apply =
Apply(fn, arg :: Nil)
+ def ensureApplied(tpt: Tree) = tpt match {
+ case _: Apply => tpt
+ case _ => Apply(tpt, Nil)
+ }
+
def AppliedTypeTree(tpt: Tree, arg: Tree): AppliedTypeTree =
AppliedTypeTree(tpt, arg :: Nil)