@@ -291,7 +291,9 @@ class TreePickler(pickler: TastyPickler) {
291
291
def pickleTreeUnlessEmpty (tree : Tree )(implicit ctx : Context ): Unit =
292
292
if (! tree.isEmpty) pickleTree(tree)
293
293
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
295
297
assert(symRefs(sym) == NoAddr , sym)
296
298
registerDef(sym)
297
299
writeByte(tag)
@@ -310,9 +312,9 @@ class TreePickler(pickler: TastyPickler) {
310
312
def pickleParam (tree : Tree )(implicit ctx : Context ): Unit = {
311
313
registerTreeAddr(tree)
312
314
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)
316
318
}
317
319
}
318
320
@@ -467,7 +469,7 @@ class TreePickler(pickler: TastyPickler) {
467
469
patterns.foreach(pickleTree)
468
470
}
469
471
case tree : ValDef =>
470
- pickleDef(VALDEF , tree.symbol , tree.tpt, tree.rhs)
472
+ pickleDef(VALDEF , tree, tree.tpt, tree.rhs)
471
473
case tree : DefDef =>
472
474
def pickleAllParams = {
473
475
pickleParams(tree.tparams)
@@ -476,9 +478,9 @@ class TreePickler(pickler: TastyPickler) {
476
478
withLength { pickleParams(vparams) }
477
479
}
478
480
}
479
- pickleDef(DEFDEF , tree.symbol , tree.tpt, tree.rhs, pickleAllParams)
481
+ pickleDef(DEFDEF , tree, tree.tpt, tree.rhs, pickleAllParams)
480
482
case tree : TypeDef =>
481
- pickleDef(TYPEDEF , tree.symbol , tree.rhs)
483
+ pickleDef(TYPEDEF , tree, tree.rhs)
482
484
case tree : Template =>
483
485
registerDef(tree.symbol)
484
486
writeByte(TEMPLATE )
0 commit comments