@@ -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
@@ -1115,7 +1115,7 @@ object Denotations {
1115
1115
}
1116
1116
}
1117
1117
1118
- abstract class NonSymSingleDenotation (symbol : Symbol , initInfo : Type , override val prefix : Type , override val isRefinedMethod : Boolean ) extends SingleDenotation (symbol, initInfo) {
1118
+ abstract class NonSymSingleDenotation (symbol : Symbol , initInfo : Type , override val prefix : Type ) extends SingleDenotation (symbol, initInfo) {
1119
1119
def infoOrCompleter : Type = initInfo
1120
1120
def isType : Boolean = infoOrCompleter.isInstanceOf [TypeType ]
1121
1121
}
@@ -1124,27 +1124,29 @@ object Denotations {
1124
1124
symbol : Symbol ,
1125
1125
initInfo : Type ,
1126
1126
initValidFor : Period ,
1127
- prefix : Type ,
1128
- isRefinedMethod : Boolean ) extends NonSymSingleDenotation (symbol, initInfo, prefix, isRefinedMethod) {
1127
+ prefix : Type ) extends NonSymSingleDenotation (symbol, initInfo, prefix) {
1129
1128
validFor = initValidFor
1130
1129
override def hasUniqueSym : Boolean = true
1131
1130
protected def newLikeThis (s : Symbol , i : Type , pre : Type , isRefinedMethod : Boolean ): SingleDenotation =
1132
- new UniqueRefDenotation (s, i, validFor, pre, isRefinedMethod)
1131
+ if isRefinedMethod then
1132
+ new JointRefDenotation (s, i, validFor, pre, isRefinedMethod)
1133
+ else
1134
+ new UniqueRefDenotation (s, i, validFor, pre)
1133
1135
}
1134
1136
1135
1137
class JointRefDenotation (
1136
1138
symbol : Symbol ,
1137
1139
initInfo : Type ,
1138
1140
initValidFor : Period ,
1139
1141
prefix : Type ,
1140
- isRefinedMethod : Boolean ) extends NonSymSingleDenotation (symbol, initInfo, prefix, isRefinedMethod ) {
1142
+ override val isRefinedMethod : Boolean ) extends NonSymSingleDenotation (symbol, initInfo, prefix) {
1141
1143
validFor = initValidFor
1142
1144
override def hasUniqueSym : Boolean = false
1143
1145
protected def newLikeThis (s : Symbol , i : Type , pre : Type , isRefinedMethod : Boolean ): SingleDenotation =
1144
1146
new JointRefDenotation (s, i, validFor, pre, isRefinedMethod)
1145
1147
}
1146
1148
1147
- class ErrorDenotation (using Context ) extends NonSymSingleDenotation (NoSymbol , NoType , NoType , false ) {
1149
+ class ErrorDenotation (using Context ) extends NonSymSingleDenotation (NoSymbol , NoType , NoType ) {
1148
1150
override def exists : Boolean = false
1149
1151
override def hasUniqueSym : Boolean = false
1150
1152
validFor = Period .allInRun(ctx.runId)
0 commit comments