Skip to content

Commit b1ad9e0

Browse files
committed
Ensure members are checked in the same order
(seems to be a problem for idempotency tests).
1 parent d66cc10 commit b1ad9e0

File tree

1 file changed

+6
-3
lines changed

1 file changed

+6
-3
lines changed

compiler/src/dotty/tools/dotc/typer/RefChecks.scala

+6-3
Original file line numberDiff line numberDiff line change
@@ -609,15 +609,18 @@ object RefChecks {
609609
// (this is done for efficiency)
610610
// - members in a prefix of inherited parents that all come from Java or Scala2
611611
// (this is done to avoid false positives since Scala2's rules for checking are different)
612-
val membersToCheck = new util.HashSet[Name](4096)
612+
val seenMembers = new util.HashSet[Name](4096)
613613
val seenClasses = new util.HashSet[Symbol](256)
614+
val membersToCheck = new mutable.ArrayBuffer[Name]
614615
def addDecls(cls: Symbol): Unit =
615616
if (!seenClasses.contains(cls)) {
616617
seenClasses.addEntry(cls)
617618
for (mbr <- cls.info.decls)
618619
if (mbr.isTerm && !mbr.is(Synthetic | Bridge) && mbr.memberCanMatchInheritedSymbols &&
619-
!membersToCheck.contains(mbr.name))
620-
membersToCheck.addEntry(mbr.name)
620+
!seenMembers.contains(mbr.name)) {
621+
seenMembers.addEntry(mbr.name)
622+
membersToCheck += mbr.name
623+
}
621624
cls.info.parents.map(_.classSymbol)
622625
.filter(_.is(AbstractOrTrait))
623626
.dropWhile(_.is(JavaDefined | Scala2x))

0 commit comments

Comments
 (0)