Skip to content

Commit 6446173

Browse files
committed
Retain tree at pickling time
1 parent c98a67e commit 6446173

File tree

2 files changed

+9
-8
lines changed

2 files changed

+9
-8
lines changed

compiler/src/dotty/tools/dotc/core/tasty/TreePickler.scala

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -291,7 +291,9 @@ class TreePickler(pickler: TastyPickler) {
291291
def pickleTreeUnlessEmpty(tree: Tree)(implicit ctx: Context): Unit =
292292
if (!tree.isEmpty) pickleTree(tree)
293293

294-
def pickleDef(tag: Int, sym: Symbol, tpt: Tree, rhs: Tree = EmptyTree, pickleParams: => Unit = ())(implicit ctx: Context) = {
294+
def pickleDef(tag: Int, tree: MemberDef, tpt: Tree, rhs: Tree = EmptyTree, pickleParams: => Unit = ())(implicit ctx: Context) = {
295+
val sym = tree.symbol
296+
sym.defTree = tree
295297
assert(symRefs(sym) == NoAddr, sym)
296298
registerDef(sym)
297299
writeByte(tag)
@@ -310,9 +312,9 @@ class TreePickler(pickler: TastyPickler) {
310312
def pickleParam(tree: Tree)(implicit ctx: Context): Unit = {
311313
registerTreeAddr(tree)
312314
tree match {
313-
case tree: ValDef => pickleDef(PARAM, tree.symbol, tree.tpt)
314-
case tree: DefDef => pickleDef(PARAM, tree.symbol, tree.tpt, tree.rhs)
315-
case tree: TypeDef => pickleDef(TYPEPARAM, tree.symbol, tree.rhs)
315+
case tree: ValDef => pickleDef(PARAM, tree, tree.tpt)
316+
case tree: DefDef => pickleDef(PARAM, tree, tree.tpt, tree.rhs)
317+
case tree: TypeDef => pickleDef(TYPEPARAM, tree, tree.rhs)
316318
}
317319
}
318320

@@ -467,7 +469,7 @@ class TreePickler(pickler: TastyPickler) {
467469
patterns.foreach(pickleTree)
468470
}
469471
case tree: ValDef =>
470-
pickleDef(VALDEF, tree.symbol, tree.tpt, tree.rhs)
472+
pickleDef(VALDEF, tree, tree.tpt, tree.rhs)
471473
case tree: DefDef =>
472474
def pickleAllParams = {
473475
pickleParams(tree.tparams)
@@ -476,9 +478,9 @@ class TreePickler(pickler: TastyPickler) {
476478
withLength { pickleParams(vparams) }
477479
}
478480
}
479-
pickleDef(DEFDEF, tree.symbol, tree.tpt, tree.rhs, pickleAllParams)
481+
pickleDef(DEFDEF, tree, tree.tpt, tree.rhs, pickleAllParams)
480482
case tree: TypeDef =>
481-
pickleDef(TYPEDEF, tree.symbol, tree.rhs)
483+
pickleDef(TYPEDEF, tree, tree.rhs)
482484
case tree: Template =>
483485
registerDef(tree.symbol)
484486
writeByte(TEMPLATE)

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

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,6 @@ class PostTyper extends MacroTransform with IdentityDenotTransformer { thisPhase
105105
val sym = tree.symbol
106106
sym.registerIfChild()
107107
sym.transformAnnotations(transformAnnot)
108-
sym.defTree = tree
109108
}
110109

111110
private def transformSelect(tree: Select, targs: List[Tree])(implicit ctx: Context): Tree = {

0 commit comments

Comments
 (0)