summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2007-03-13 16:55:04 +0000
committerMartin Odersky <odersky@gmail.com>2007-03-13 16:55:04 +0000
commit2bca03b1f530b69874e45aa07e51f6aeacc28a40 (patch)
tree2901fdf06c59874eab388bc2475ace18e72fd214
parentf947c1f55fcb33a6cb2ba52f587b07ac982f33dc (diff)
downloadscala-2bca03b1f530b69874e45aa07e51f6aeacc28a40.tar.gz
scala-2bca03b1f530b69874e45aa07e51f6aeacc28a40.tar.bz2
scala-2bca03b1f530b69874e45aa07e51f6aeacc28a40.zip
reverted bug1000 fix, because it caused wquickd...
reverted bug1000 fix, because it caused wquickdoc to crash
-rw-r--r--src/compiler/scala/tools/nsc/symtab/Types.scala4
-rw-r--r--src/compiler/scala/tools/nsc/typechecker/Typers.scala11
2 files changed, 10 insertions, 5 deletions
diff --git a/src/compiler/scala/tools/nsc/symtab/Types.scala b/src/compiler/scala/tools/nsc/symtab/Types.scala
index 6bb3951eb6..487cfb312c 100644
--- a/src/compiler/scala/tools/nsc/symtab/Types.scala
+++ b/src/compiler/scala/tools/nsc/symtab/Types.scala
@@ -447,7 +447,7 @@ trait Types requires SymbolTable {
member.owner != sym.owner &&
!sym.hasFlag(PRIVATE) && {
if (self eq null) self = this.narrow;
- matchesType(self.memberType(member), self.memberType(sym), true)
+ matchesType(self.memberType(member), self.memberType(sym), !phase.erasedTypes)
})) {
members = newScope(List(member, sym))
}
@@ -458,7 +458,7 @@ trait Types requires SymbolTable {
prevEntry.sym.owner != sym.owner &&
!sym.hasFlag(PRIVATE) && {
if (self eq null) self = this.narrow;
- matchesType(self.memberType(prevEntry.sym), self.memberType(sym), true)
+ matchesType(self.memberType(prevEntry.sym), self.memberType(sym), !phase.erasedTypes)
})) {
prevEntry = members lookupNextEntry prevEntry
}
diff --git a/src/compiler/scala/tools/nsc/typechecker/Typers.scala b/src/compiler/scala/tools/nsc/typechecker/Typers.scala
index f8b8b423d2..293d11053d 100644
--- a/src/compiler/scala/tools/nsc/typechecker/Typers.scala
+++ b/src/compiler/scala/tools/nsc/typechecker/Typers.scala
@@ -1411,10 +1411,15 @@ trait Typers requires Analyzer {
// preadapt symbol to number of arguments given
val argtypes = args map (arg => AllClass.tpe)
val pre = fun.symbol.tpe.prefix
- val sym = fun.symbol filter { alt =>
- isApplicable(context.undetparams, pre.memberType(alt), argtypes, pt) &&
+ var sym = fun.symbol filter { alt =>
+ isApplicable(context.undetparams, pre.memberType(alt), argtypes, pt)
+ }
+ if (sym hasFlag OVERLOADED) {
// eliminate functions that would result from tupling transforms
- formalTypes(alt.tpe.paramTypes, argtypes.length).length == argtypes.length
+ val sym1 = sym filter { alt =>
+ formalTypes(alt.tpe.paramTypes, argtypes.length).length == argtypes.length
+ }
+ if (sym1 != NoSymbol) sym = sym1
}
if (sym != NoSymbol)
fun = adapt(fun setSymbol sym setType pre.memberType(sym), funMode(mode), WildcardType)