summaryrefslogtreecommitdiff
path: root/src/compiler/scala/tools/nsc/dependencies/Changes.scala
diff options
context:
space:
mode:
authorHubert Plociniczak <hubert.plociniczak@epfl.ch>2010-01-30 17:06:34 +0000
committerHubert Plociniczak <hubert.plociniczak@epfl.ch>2010-01-30 17:06:34 +0000
commit3078e1709307dc07fec5265e7a1afc108bacda00 (patch)
tree0076d5450885aafa38f7dec9deb47837aaf76aa1 /src/compiler/scala/tools/nsc/dependencies/Changes.scala
parentc73ab4525e402cbbc0fd745a34c453520c87564c (diff)
downloadscala-3078e1709307dc07fec5265e7a1afc108bacda00.tar.gz
scala-3078e1709307dc07fec5265e7a1afc108bacda00.tar.bz2
scala-3078e1709307dc07fec5265e7a1afc108bacda00.zip
Better test for checking existential types, whe...
Better test for checking existential types, where symbols not necessarily have the same name. Added test for that. The problem manifested itself in Globals.scala for variable classpath causing execissive compilation without any reason. No review.
Diffstat (limited to 'src/compiler/scala/tools/nsc/dependencies/Changes.scala')
-rw-r--r--src/compiler/scala/tools/nsc/dependencies/Changes.scala4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/compiler/scala/tools/nsc/dependencies/Changes.scala b/src/compiler/scala/tools/nsc/dependencies/Changes.scala
index 5d261c67a2..c5669d6214 100644
--- a/src/compiler/scala/tools/nsc/dependencies/Changes.scala
+++ b/src/compiler/scala/tools/nsc/dependencies/Changes.scala
@@ -75,7 +75,9 @@ abstract class Changes {
case (ConstantType(value1), ConstantType(value2)) =>
value1 == value2
case (TypeRef(pre1, sym1, args1), TypeRef(pre2, sym2, args2)) =>
- sameType(pre1, pre2) && sameSymbol(sym1, sym2) &&
+ sameType(pre1, pre2) &&
+ (sameSymbol(sym1, sym2) ||
+ ( sym1.isType && sym2.isType && sameType(sym1.info, sym2.info))) &&
(sym1.variance == sym2.variance) &&
((tp1.isHigherKinded && tp2.isHigherKinded && tp1.normalize =:= tp2.normalize) ||
sameTypes(args1, args2))