diff options
author | Martin Odersky <odersky@gmail.com> | 2009-02-05 19:24:56 +0000 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2009-02-05 19:24:56 +0000 |
commit | 48355ee28a930f19000901d761f24ca44b324c1f (patch) | |
tree | d16dd3125cdcdb955af61c1289f5e92af07a147c /src/compiler/scala/tools/nsc/typechecker/RefChecks.scala | |
parent | a81199163d973c9e643d28cc00bb3adb7ea26a10 (diff) | |
download | scala-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.scala | 9 |
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 |