Skip to content

Commit 60925ac

Browse files
committed
Add attachements for field accesses
1 parent 046bca8 commit 60925ac

File tree

1 file changed

+19
-1
lines changed

1 file changed

+19
-1
lines changed

compiler/src/dotty/tools/dotc/transform/ErasurePreservation.scala

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -164,7 +164,25 @@ class ErasurePreservation extends MiniPhase {
164164

165165
override def transformApply(tree: tpd.Apply)(using Context): tpd.Tree = trace(i"transfromApply ${tree}") {
166166
val outers = getOuterParamss(ctx.owner, false)
167-
tree.putAttachment(InvokeReturnType, toReturnTypeB(tree.tpe, outers))
167+
toReturnTypeB(tree.tpe, outers) match
168+
case TypeB.None =>
169+
case other => tree.putAttachment(InvokeReturnType, other)
170+
tree
171+
}
172+
173+
override def transformIdent(tree: tpd.Ident)(using Context): tpd.Tree = trace(i"transfromIdent ${tree}, ${tree.tpe.widen}") {
174+
val outers = getOuterParamss(ctx.owner, false)
175+
toReturnTypeB(tree.tpe.widen, outers) match
176+
case TypeB.None =>
177+
case other => tree.putAttachment(InvokeReturnType, other)
178+
tree
179+
}
180+
181+
override def transformSelect(tree: tpd.Select)(using Context): tpd.Tree = trace(i"transfromSelect ${tree}, ${tree.tpe.widen}") {
182+
val outers = getOuterParamss(ctx.owner, false)
183+
toReturnTypeB(tree.tpe.widen, outers) match
184+
case TypeB.None =>
185+
case other => tree.putAttachment(InvokeReturnType, other)
168186
tree
169187
}
170188

0 commit comments

Comments
 (0)