@@ -477,7 +477,7 @@ object Denotations {
477
477
val jointInfo = infoMeet(info1, info2, safeIntersection)
478
478
if jointInfo.exists then
479
479
val sym = if symScore >= 0 then sym1 else sym2
480
- JointRefDenotation (sym, jointInfo, denot1.validFor & denot2.validFor, pre, denot1.isRefinedMethod && denot2.isRefinedMethod)
480
+ JointRefDenotation (sym, jointInfo, denot1.validFor & denot2.validFor, pre, denot1.isRefinedMethod || denot2.isRefinedMethod)
481
481
else if symScore == 2 then denot1
482
482
else if symScore == - 2 then denot2
483
483
else
@@ -1117,7 +1117,7 @@ object Denotations {
1117
1117
}
1118
1118
}
1119
1119
1120
- abstract class NonSymSingleDenotation (symbol : Symbol , initInfo : Type , override val prefix : Type , override val isRefinedMethod : Boolean ) extends SingleDenotation (symbol, initInfo) {
1120
+ abstract class NonSymSingleDenotation (symbol : Symbol , initInfo : Type , override val prefix : Type ) extends SingleDenotation (symbol, initInfo) {
1121
1121
def infoOrCompleter : Type = initInfo
1122
1122
def isType : Boolean = infoOrCompleter.isInstanceOf [TypeType ]
1123
1123
}
@@ -1126,27 +1126,29 @@ object Denotations {
1126
1126
symbol : Symbol ,
1127
1127
initInfo : Type ,
1128
1128
initValidFor : Period ,
1129
- prefix : Type ,
1130
- isRefinedMethod : Boolean ) extends NonSymSingleDenotation (symbol, initInfo, prefix, isRefinedMethod) {
1129
+ prefix : Type ) extends NonSymSingleDenotation (symbol, initInfo, prefix) {
1131
1130
validFor = initValidFor
1132
1131
override def hasUniqueSym : Boolean = true
1133
1132
protected def newLikeThis (s : Symbol , i : Type , pre : Type , isRefinedMethod : Boolean ): SingleDenotation =
1134
- new UniqueRefDenotation (s, i, validFor, pre, isRefinedMethod)
1133
+ if isRefinedMethod then
1134
+ new JointRefDenotation (s, i, validFor, pre, isRefinedMethod)
1135
+ else
1136
+ new UniqueRefDenotation (s, i, validFor, pre)
1135
1137
}
1136
1138
1137
1139
class JointRefDenotation (
1138
1140
symbol : Symbol ,
1139
1141
initInfo : Type ,
1140
1142
initValidFor : Period ,
1141
1143
prefix : Type ,
1142
- isRefinedMethod : Boolean ) extends NonSymSingleDenotation (symbol, initInfo, prefix, isRefinedMethod ) {
1144
+ override val isRefinedMethod : Boolean ) extends NonSymSingleDenotation (symbol, initInfo, prefix) {
1143
1145
validFor = initValidFor
1144
1146
override def hasUniqueSym : Boolean = false
1145
1147
protected def newLikeThis (s : Symbol , i : Type , pre : Type , isRefinedMethod : Boolean ): SingleDenotation =
1146
1148
new JointRefDenotation (s, i, validFor, pre, isRefinedMethod)
1147
1149
}
1148
1150
1149
- class ErrorDenotation (using Context ) extends NonSymSingleDenotation (NoSymbol , NoType , NoType , false ) {
1151
+ class ErrorDenotation (using Context ) extends NonSymSingleDenotation (NoSymbol , NoType , NoType ) {
1150
1152
override def exists : Boolean = false
1151
1153
override def hasUniqueSym : Boolean = false
1152
1154
validFor = Period .allInRun(ctx.runId)
0 commit comments