summaryrefslogtreecommitdiff
path: root/src/compiler/scala/tools/nsc/typechecker/RefChecks.scala
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2009-02-05 19:24:56 +0000
committerMartin Odersky <odersky@gmail.com>2009-02-05 19:24:56 +0000
commit48355ee28a930f19000901d761f24ca44b324c1f (patch)
treed16dd3125cdcdb955af61c1289f5e92af07a147c /src/compiler/scala/tools/nsc/typechecker/RefChecks.scala
parenta81199163d973c9e643d28cc00bb3adb7ea26a10 (diff)
downloadscala-48355ee28a930f19000901d761f24ca44b324c1f.tar.gz
scala-48355ee28a930f19000901d761f24ca44b324c1f.tar.bz2
scala-48355ee28a930f19000901d761f24ca44b324c1f.zip
Fixed duplicate symbols problem in new collecti...
Fixed duplicate symbols problem in new collection libraries by adding a special case to Erasure. Fixed override problems in new collection libraries by refining OverriddenPairs. Fixed repeated load by applying patch to Settings. Improved error message iin RefChecks.
Diffstat (limited to 'src/compiler/scala/tools/nsc/typechecker/RefChecks.scala')
-rw-r--r--src/compiler/scala/tools/nsc/typechecker/RefChecks.scala9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/compiler/scala/tools/nsc/typechecker/RefChecks.scala b/src/compiler/scala/tools/nsc/typechecker/RefChecks.scala
index af010998b8..acee4132af 100644
--- a/src/compiler/scala/tools/nsc/typechecker/RefChecks.scala
+++ b/src/compiler/scala/tools/nsc/typechecker/RefChecks.scala
@@ -103,8 +103,11 @@ abstract class RefChecks extends InfoTransform {
case List(MixinOverrideError(_, msg)) =>
unit.error(clazz.pos, msg)
case MixinOverrideError(member, msg) :: others =>
- unit.error(clazz.pos, msg+";\n other members with override errors are: "+
- (others.map(_.member.name).filter(member.name != _).removeDuplicates mkString ", "))
+ val others1 = others.map(_.member.name.decode).filter(member.name != _).removeDuplicates
+ unit.error(
+ clazz.pos,
+ msg+(if (others1.isEmpty) ""
+ else ";\n other members with override errors are: "+(others1 mkString ", ")))
}
}
@@ -273,7 +276,7 @@ abstract class RefChecks extends InfoTransform {
val opc = new overridingPairs.Cursor(clazz)
while (opc.hasNext) {
- //Console.println("overrides " + opc.overriding/* + ":" + opc.overriding.tpe*/ + opc.overriding.locationString + " " + opc.overridden/* + ":" + opc.overridden.tpe*/ + opc.overridden.locationString + opc.overridden.hasFlag(DEFERRED));//DEBUG
+ //Console.println(opc.overriding/* + ":" + opc.overriding.tpe*/ + " in "+opc.overriding.fullNameString + " overrides " + opc.overridden/* + ":" + opc.overridden.tpe*/ + " in "+opc.overridden.fullNameString + "/"+ opc.overridden.hasFlag(DEFERRED));//debug
if (!opc.overridden.isClass) checkOverride(clazz, opc.overriding, opc.overridden);
opc.next