Skip to content

Commit e835668

Browse files
authored
Merge pull request #14774 from dotty-staging/fix-14771
Don't force LazyRefs when computing DepStatus
2 parents 15fccde + b3e006f commit e835668

File tree

2 files changed

+16
-0
lines changed

2 files changed

+16
-0
lines changed

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

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3639,6 +3639,9 @@ object Types {
36393639
if ann.refersToParamOf(thisLambdaType) then TrueDeps
36403640
else compute(status, parent, theAcc)
36413641
case _: ThisType | _: BoundType | NoPrefix => status
3642+
case t: LazyRef =>
3643+
if t.completed then compute(status, t.ref, theAcc)
3644+
else Unknown
36423645
case _ =>
36433646
(if theAcc != null then theAcc else DepAcc()).foldOver(status, tp)
36443647
compute(initial, tp, null)

tests/pos/i14771.scala

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
trait Layouts:
2+
type Layout <: {
3+
def withName(name: String): Layout
4+
}
5+
val l: Layout
6+
7+
val ls = new Layouts:
8+
class Layout17:
9+
def withName(name: String): Layout17 = this
10+
type Layout = Layout17
11+
val l = Layout17()
12+
13+
def test = ls.l

0 commit comments

Comments
 (0)