File tree Expand file tree Collapse file tree 1 file changed +4
-4
lines changed
compiler/src/dotty/tools/dotc/core Expand file tree Collapse file tree 1 file changed +4
-4
lines changed Original file line number Diff line number Diff line change @@ -111,7 +111,7 @@ object Types {
111
111
x || t.mightBeProvisional && {
112
112
t.mightBeProvisional = t match {
113
113
case t : TypeVar =>
114
- ! t.inst.exists
114
+ ! t.inst.exists || apply(x, t.inst)
115
115
case t : TypeRef =>
116
116
(t : Type ).mightBeProvisional = false // break cycles
117
117
t.symbol.is(Provisional ) ||
@@ -1691,7 +1691,7 @@ object Types {
1691
1691
* attempt in `denot` does not yield a denotation.
1692
1692
*/
1693
1693
private def denotAt (lastd : Denotation , now : Period )(implicit ctx : Context ): Denotation = {
1694
- if (lastd != null && (lastd.validFor contains now)) {
1694
+ if (lastd != null && (lastd.validFor contains now) && checkedPeriod != Nowhere ) {
1695
1695
checkedPeriod = now
1696
1696
lastd
1697
1697
}
@@ -1731,10 +1731,10 @@ object Types {
1731
1731
lastDenotation match {
1732
1732
case lastd0 : SingleDenotation =>
1733
1733
val lastd = lastd0.skipRemoved
1734
- if (lastd.validFor.runId == ctx.runId) finish(lastd.current)
1734
+ if (lastd.validFor.runId == ctx.runId && (checkedPeriod != Nowhere ) ) finish(lastd.current)
1735
1735
else lastd match {
1736
1736
case lastd : SymDenotation =>
1737
- if (ctx.stillValid(lastd)) finish(lastd.current)
1737
+ if (ctx.stillValid(lastd) && (checkedPeriod != Nowhere ) ) finish(lastd.current)
1738
1738
else finish(memberDenot(lastd.initial.name, allowPrivate = false ))
1739
1739
case _ =>
1740
1740
fromDesignator
You can’t perform that action at this time.
0 commit comments