summaryrefslogtreecommitdiff
path: root/sources/scala/tools/nsc/typechecker/Typers.scala
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2005-12-15 10:17:12 +0000
committerMartin Odersky <odersky@gmail.com>2005-12-15 10:17:12 +0000
commit62df5b4f60baad2032935efdc2266d4825b7c863 (patch)
treed973fafc89fe26d190e9d5bae789a2d63101d53a /sources/scala/tools/nsc/typechecker/Typers.scala
parentb68121ff0e8037e49455634b20c3c5d56b4df91a (diff)
downloadscala-62df5b4f60baad2032935efdc2266d4825b7c863.tar.gz
scala-62df5b4f60baad2032935efdc2266d4825b7c863.tar.bz2
scala-62df5b4f60baad2032935efdc2266d4825b7c863.zip
Diffstat (limited to 'sources/scala/tools/nsc/typechecker/Typers.scala')
-rwxr-xr-xsources/scala/tools/nsc/typechecker/Typers.scala8
1 files changed, 7 insertions, 1 deletions
diff --git a/sources/scala/tools/nsc/typechecker/Typers.scala b/sources/scala/tools/nsc/typechecker/Typers.scala
index 1d58570f4f..7cfa781624 100755
--- a/sources/scala/tools/nsc/typechecker/Typers.scala
+++ b/sources/scala/tools/nsc/typechecker/Typers.scala
@@ -49,7 +49,12 @@ import collection.mutable.HashMap;
private def inferView(pos: int, from: Type, to: Type, reportAmbiguous: boolean): Tree = {
if (settings.debug.value) log("infer view from " + from + " to " + to);//debug
if (phase.erasedTypes) EmptyTree
- else inferImplicit(pos, functionType(List(from), to), true, reportAmbiguous);
+ else from match {
+ case MethodType(_, _) => EmptyTree
+ case OverloadedType(_, _) => EmptyTree
+ case PolyType(_, _) => EmptyTree
+ case _ => inferImplicit(pos, functionType(List(from), to), true, reportAmbiguous)
+ }
}
private def inferView(pos: int, from: Type, name: Name, reportAmbiguous: boolean): Tree = {
@@ -369,6 +374,7 @@ import collection.mutable.HashMap;
case _ => TypeTree(tree.tpe) setOriginal(tree)
}
} else if ((mode & (EXPRmode | FUNmode)) == (EXPRmode | FUNmode) &&
+ !tree.tpe.isInstanceOf[MethodType] && !tree.tpe.isInstanceOf[OverloadedType] &&
((mode & TAPPmode) == 0 || tree.tpe.typeParams.isEmpty) &&
adaptToName(tree, nme.apply).tpe.nonLocalMember(nme.apply)
.filter(m => m.tpe.paramSectionCount > 0) != NoSymbol) { // (8)