diff options
author | Martin Odersky <odersky@gmail.com> | 2006-10-06 14:36:24 +0000 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2006-10-06 14:36:24 +0000 |
commit | 0f6e14043510907ef0ee0f6a86699064b017f0de (patch) | |
tree | 95d0ce013672bac1969ada979cb1cd045a305197 /src/compiler/scala/tools/nsc/transform/UnCurry.scala | |
parent | af995b1f8fa2787022ad3c09cfc8d4d9a46785f0 (diff) | |
download | scala-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.scala | 6 |
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 } } } |