@@ -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 )
0 commit comments