aboutsummaryrefslogtreecommitdiff
path: root/src/dotty/tools/dotc/core/Types.scala
diff options
context:
space:
mode:
Diffstat (limited to 'src/dotty/tools/dotc/core/Types.scala')
-rw-r--r--src/dotty/tools/dotc/core/Types.scala7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/dotty/tools/dotc/core/Types.scala b/src/dotty/tools/dotc/core/Types.scala
index 8677ec6d2..dda5134c1 100644
--- a/src/dotty/tools/dotc/core/Types.scala
+++ b/src/dotty/tools/dotc/core/Types.scala
@@ -375,9 +375,10 @@ object Types {
def goRefined(tp: RefinedType) = {
val pdenot = go(tp.parent)
val rinfo = tp.refinedInfo.substThis(tp, pre)
- if (name.isTypeName) // simplified case that runs more efficiently
- pdenot.asSingleDenotation.derivedSingleDenotation(pdenot.symbol, rinfo)
- else
+ if (name.isTypeName) {// simplified case that runs more efficiently
+ val jointInfo = if (rinfo.isAlias) rinfo else pdenot.info & rinfo
+ pdenot.asSingleDenotation.derivedSingleDenotation(pdenot.symbol, jointInfo)
+ } else
pdenot & (new JointRefDenotation(NoSymbol, rinfo, Period.allInRun(ctx.runId)), pre)
}
def goThis(tp: ThisType) = {