Skip to content

Commit effaca1

Browse files
committed
Address reviewers comments
1 parent 04bc040 commit effaca1

File tree

2 files changed

+12
-9
lines changed

2 files changed

+12
-9
lines changed

compiler/src/dotty/tools/dotc/core/Phases.scala

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -321,8 +321,8 @@ object Phases {
321321
private var mySymbolicRefs = false
322322
private var myLabelsReordered = false
323323

324-
private var myMembersGroup = 0
325-
private var myParentsGroup = 0
324+
private var mySameMembersStartId = NoPhaseId
325+
private var mySameParentsStartId = NoPhaseId
326326

327327
/** The sequence position of this phase in the given context where 0
328328
* is reserved for NoPhase and the first real phase is at position 1.
@@ -339,8 +339,11 @@ object Phases {
339339
final def refChecked = myRefChecked // Phase is after RefChecks
340340
final def symbolicRefs = mySymbolicRefs // Phase is after ResolveSuper, newly generated TermRefs should be symbolic
341341
final def labelsReordered = myLabelsReordered // Phase is after LabelDefs, labels are flattened and owner chains don't mirror this
342-
final def membersGroup = myMembersGroup // group id for phases where all symbols have the same non-private members
343-
final def parentsGroup = myParentsGroup // group id for phases where all symbols have the same base classes
342+
343+
final def sameMembersStartId = mySameMembersStartId
344+
// id of first phase where all symbols are guaranteed to have the same members as in this phase
345+
final def sameParentsStartId = mySameParentsStartId
346+
// id of first phase where all symbols are guaranteed to have the same parents as in this phase
344347

345348
protected[Phases] def init(base: ContextBase, start: Int, end:Int): Unit = {
346349
if (start >= FirstPhaseId)
@@ -352,8 +355,8 @@ object Phases {
352355
myRefChecked = prev.getClass == classOf[RefChecks] || prev.refChecked
353356
mySymbolicRefs = prev.getClass == classOf[ResolveSuper] || prev.symbolicRefs
354357
myLabelsReordered = prev.getClass == classOf[LabelDefs] || prev.labelsReordered
355-
myMembersGroup = if (changesMembers) prev.membersGroup + 1 else prev.membersGroup
356-
myParentsGroup = if (changesParents) prev.parentsGroup + 1 else prev.parentsGroup
358+
mySameMembersStartId = if (changesMembers) id else prev.sameMembersStartId
359+
mySameParentsStartId = if (changesParents) id else prev.sameMembersStartId
357360
}
358361

359362
protected[Phases] def init(base: ContextBase, id: Int): Unit = init(base, id, id)

compiler/src/dotty/tools/dotc/core/SymDenotations.scala

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1257,7 +1257,7 @@ object SymDenotations {
12571257
private def baseTypeRefCache(implicit ctx: Context): BaseTypeRefMap = {
12581258
if (myBaseTypeRefCachePeriod != ctx.period &&
12591259
(myBaseTypeRefCachePeriod.runId != ctx.runId ||
1260-
ctx.phases(myBaseTypeRefCachePeriod.phaseId).parentsGroup != ctx.phase.parentsGroup)) {
1260+
ctx.phases(myBaseTypeRefCachePeriod.phaseId).sameParentsStartId != ctx.phase.sameParentsStartId)) {
12611261
myBaseTypeRefCache = new BaseTypeRefMap
12621262
myBaseTypeRefCachePeriod = ctx.period
12631263
}
@@ -2027,7 +2027,7 @@ object SymDenotations {
20272027
finally addDependent(onBehalf)
20282028
}
20292029

2030-
def sameGroup(p1: Phase, p2: Phase) = p1.membersGroup == p2.membersGroup
2030+
def sameGroup(p1: Phase, p2: Phase) = p1.sameMembersStartId == p2.sameMembersStartId
20312031
}
20322032

20332033
private class BaseDataImpl(createdAt: Period) extends InheritedCacheImpl(createdAt) with BaseData {
@@ -2068,7 +2068,7 @@ object SymDenotations {
20682068
finally addDependent(onBehalf)
20692069
}
20702070

2071-
def sameGroup(p1: Phase, p2: Phase) = p1.parentsGroup == p2.parentsGroup
2071+
def sameGroup(p1: Phase, p2: Phase) = p1.sameParentsStartId == p2.sameParentsStartId
20722072
}
20732073

20742074
class BaseClassSet(val classIds: Array[Int]) extends AnyVal {

0 commit comments

Comments
 (0)