diff options
author | Martin Odersky <odersky@gmail.com> | 2006-10-31 12:34:08 +0000 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2006-10-31 12:34:08 +0000 |
commit | 37b3648e30cbce8ac9f2b9b48b63cdf15d6a2d34 (patch) | |
tree | 90eb35761ab8dc22a7f044e266d01d9a92fc1898 /src/compiler/scala/tools/nsc/typechecker/Typers.scala | |
parent | 5352638cee8a3b7b67d2dc717f651984b4f7001b (diff) | |
download | scala-37b3648e30cbce8ac9f2b9b48b63cdf15d6a2d34.tar.gz scala-37b3648e30cbce8ac9f2b9b48b63cdf15d6a2d34.tar.bz2 scala-37b3648e30cbce8ac9f2b9b48b63cdf15d6a2d34.zip |
fixed bugs 729, 752
Diffstat (limited to 'src/compiler/scala/tools/nsc/typechecker/Typers.scala')
-rw-r--r-- | src/compiler/scala/tools/nsc/typechecker/Typers.scala | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/src/compiler/scala/tools/nsc/typechecker/Typers.scala b/src/compiler/scala/tools/nsc/typechecker/Typers.scala index 756587fbba..4a4d6da251 100644 --- a/src/compiler/scala/tools/nsc/typechecker/Typers.scala +++ b/src/compiler/scala/tools/nsc/typechecker/Typers.scala @@ -501,8 +501,9 @@ trait Typers requires Analyzer { case mt: MethodType if (((mode & (EXPRmode | FUNmode | LHSmode)) == EXPRmode) && (context.undetparams.isEmpty || (mode & POLYmode) != 0)) => - if (!tree.symbol.isConstructor && pt != WildcardType && - isCompatible(tparamsToWildcards(mt, context.undetparams), pt) && + if (!tree.symbol.isConstructor && + //isCompatible(tparamsToWildcards(mt, context.undetparams), pt) && + pt != WildcardType && (pt <:< functionType(mt.paramTypes map (t => WildcardType), WildcardType))) { // (4.2) if (settings.debug.value) log("eta-expanding "+tree+":"+tree.tpe+" to "+pt) checkParamsConvertible(tree.pos, tree.tpe) @@ -599,7 +600,7 @@ trait Typers requires Analyzer { } else if (tree.tpe <:< pt) { tree } else if ((mode & PATTERNmode) != 0) { - if (tree.symbol.isModule) inferModulePattern(tree, pt) + if (tree.symbol != null && tree.symbol.isModule) inferModulePattern(tree, pt) tree } else { val tree1 = constfold(tree, pt) // (10) (11) @@ -1911,7 +1912,7 @@ trait Typers requires Analyzer { case ErrorType => expr1 case _ => - errorTree(expr1, "`&' must be applied to method type; cannot be applied to " + expr1.tpe) + errorTree(expr1, "`&' must be applied to method; cannot be applied to " + expr1.tpe) } case Typed(expr, tpt @ Ident(name)) if (name == nme.WILDCARD_STAR.toTypeName) => |