summaryrefslogtreecommitdiff
path: root/src/compiler/scala/tools/nsc/transform/UnCurry.scala
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2006-10-06 14:36:24 +0000
committerMartin Odersky <odersky@gmail.com>2006-10-06 14:36:24 +0000
commit0f6e14043510907ef0ee0f6a86699064b017f0de (patch)
tree95d0ce013672bac1969ada979cb1cd045a305197 /src/compiler/scala/tools/nsc/transform/UnCurry.scala
parentaf995b1f8fa2787022ad3c09cfc8d4d9a46785f0 (diff)
downloadscala-0f6e14043510907ef0ee0f6a86699064b017f0de.tar.gz
scala-0f6e14043510907ef0ee0f6a86699064b017f0de.tar.bz2
scala-0f6e14043510907ef0ee0f6a86699064b017f0de.zip
fixed bug767
Diffstat (limited to 'src/compiler/scala/tools/nsc/transform/UnCurry.scala')
-rw-r--r--src/compiler/scala/tools/nsc/transform/UnCurry.scala6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/compiler/scala/tools/nsc/transform/UnCurry.scala b/src/compiler/scala/tools/nsc/transform/UnCurry.scala
index 0957e0c435..13b8ea7638 100644
--- a/src/compiler/scala/tools/nsc/transform/UnCurry.scala
+++ b/src/compiler/scala/tools/nsc/transform/UnCurry.scala
@@ -415,7 +415,7 @@ abstract class UnCurry extends InfoTransform with TypingTransformers {
if (tree.symbol.isMethod && (!tree.tpe.isInstanceOf[PolyType] || tree.tpe.typeParams.isEmpty)) {
if (!tree.tpe.isInstanceOf[MethodType]) tree.tpe = MethodType(List(), tree.tpe);
atPos(tree.pos)(Apply(tree, List()) setType tree.tpe.resultType)
- } else if (tree.isType && !tree.isInstanceOf[TypeTree]) {
+ } else if (tree.isType) {
TypeTree(tree.tpe) setPos tree.pos
} else {
tree
@@ -471,8 +471,10 @@ abstract class UnCurry extends InfoTransform with TypingTransformers {
case Return(expr) if (tree.symbol != currentOwner.enclMethod) =>
if (settings.debug.value) log("non local return in "+tree.symbol+" from "+currentOwner.enclMethod)
atPos(tree.pos)(nonLocalReturnThrow(expr, tree.symbol))
- case _ =>
+ case TypeTree() =>
tree
+ case _ =>
+ if (tree.isType) TypeTree(tree.tpe) setPos tree.pos else tree
}
}
}