summaryrefslogtreecommitdiff
path: root/src/compiler/scala/tools/nsc/typechecker/Typers.scala
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2006-10-31 12:34:08 +0000
committerMartin Odersky <odersky@gmail.com>2006-10-31 12:34:08 +0000
commit37b3648e30cbce8ac9f2b9b48b63cdf15d6a2d34 (patch)
tree90eb35761ab8dc22a7f044e266d01d9a92fc1898 /src/compiler/scala/tools/nsc/typechecker/Typers.scala
parent5352638cee8a3b7b67d2dc717f651984b4f7001b (diff)
downloadscala-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.scala9
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) =>