summaryrefslogtreecommitdiff
path: root/src
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
parentaf995b1f8fa2787022ad3c09cfc8d4d9a46785f0 (diff)
downloadscala-0f6e14043510907ef0ee0f6a86699064b017f0de.tar.gz
scala-0f6e14043510907ef0ee0f6a86699064b017f0de.tar.bz2
scala-0f6e14043510907ef0ee0f6a86699064b017f0de.zip
fixed bug767
Diffstat (limited to 'src')
-rw-r--r--src/compiler/scala/tools/nsc/ast/Trees.scala8
-rw-r--r--src/compiler/scala/tools/nsc/transform/UnCurry.scala6
2 files changed, 8 insertions, 6 deletions
diff --git a/src/compiler/scala/tools/nsc/ast/Trees.scala b/src/compiler/scala/tools/nsc/ast/Trees.scala
index 91a2d727a3..a8b64575cb 100644
--- a/src/compiler/scala/tools/nsc/ast/Trees.scala
+++ b/src/compiler/scala/tools/nsc/ast/Trees.scala
@@ -610,10 +610,10 @@ trait Trees requires Global {
case Ident(name) =>
case Literal(value) =>
case TypeTree() =>
- case SingletonTypeTree(ref) => (eliminated by typecheck)
- case SelectFromTypeTree(qualifier, selector) => (eliminated by typecheck)
- case CompoundTypeTree(templ: Template) => (eliminated by typecheck)
- case AppliedTypeTree(tpt, args) => (eliminated by typecheck)
+ case SingletonTypeTree(ref) => (eliminated by uncurry)
+ case SelectFromTypeTree(qualifier, selector) => (eliminated by uncurry)
+ case CompoundTypeTree(templ: Template) => (eliminated by uncurry)
+ case AppliedTypeTree(tpt, args) => (eliminated by uncurry)
*/
abstract class TreeCopier {
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
}
}
}