diff options
author | Sean McDirmid <sean.mcdirmid@gmail.com> | 2006-02-09 15:03:35 +0000 |
---|---|---|
committer | Sean McDirmid <sean.mcdirmid@gmail.com> | 2006-02-09 15:03:35 +0000 |
commit | 25eb10e214a35aa9f8c5a811a668e1fcfeed842c (patch) | |
tree | 3857ce17f503f6d4bf79c32437d50e94c7d7e324 /src/compiler/scala/tools/nsc/typechecker/Typers.scala | |
parent | 1d7dd9a70a0d47268e784a78460fe224c741426e (diff) | |
download | scala-25eb10e214a35aa9f8c5a811a668e1fcfeed842c.tar.gz scala-25eb10e214a35aa9f8c5a811a668e1fcfeed842c.tar.bz2 scala-25eb10e214a35aa9f8c5a811a668e1fcfeed842c.zip |
Diffstat (limited to 'src/compiler/scala/tools/nsc/typechecker/Typers.scala')
-rw-r--r-- | src/compiler/scala/tools/nsc/typechecker/Typers.scala | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/src/compiler/scala/tools/nsc/typechecker/Typers.scala b/src/compiler/scala/tools/nsc/typechecker/Typers.scala index 3fb8af5111..fd2a9239b9 100644 --- a/src/compiler/scala/tools/nsc/typechecker/Typers.scala +++ b/src/compiler/scala/tools/nsc/typechecker/Typers.scala @@ -380,10 +380,22 @@ mixin class Typers requires Analyzer { val tree1 = TypeTree(clazz.primaryConstructor.tpe.asSeenFrom(tree.tpe.prefix, clazz.owner)) setPos tree.pos // tree.tpe.prefix.memberType(clazz.primaryConstructor); //!!! - inferConstructorInstance(tree1, clazz.unsafeTypeParams, pt) - tree1 + try { + inferConstructorInstance(tree1, clazz.unsafeTypeParams, pt) + } catch { + case npe : NullPointerException => + logError("CONTEXT: " + context . unit . source .dbg(tree.pos), npe); + throw npe; + case fe : FatalError => + logError("CONTEXT: " + context . unit . source .dbg(tree.pos), fe); + throw fe; + case t : Throwable => + logError("CONTEXT: " + context . unit . source .dbg(tree.pos), t); + throw t; + } + tree1 } else if (clazz.isSubClass(SeqClass)) { // (5.2) - pt.baseType(clazz).baseType(SeqClass) match { + pt.baseType(clazz).baseType(SeqClass) match { case TypeRef(pre, seqClass, args) => tree.setType(MethodType(List(typeRef(pre, RepeatedParamClass, args)), pt)) case NoType => |