From 0d1396266c15c9bc88ea922a256a9c3709f33e7e Mon Sep 17 00:00:00 2001 From: Dmitry Petrashko Date: Wed, 18 Mar 2015 23:07:35 +0100 Subject: Update address maps of symbols after compaction --- src/dotty/tools/dotc/core/pickling/TreePickler.scala | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'src/dotty/tools/dotc/core/pickling/TreePickler.scala') diff --git a/src/dotty/tools/dotc/core/pickling/TreePickler.scala b/src/dotty/tools/dotc/core/pickling/TreePickler.scala index f16cb50e6..4ffb3b1b9 100644 --- a/src/dotty/tools/dotc/core/pickling/TreePickler.scala +++ b/src/dotty/tools/dotc/core/pickling/TreePickler.scala @@ -531,8 +531,16 @@ class TreePickler(pickler: TastyPickler) { withLength { pickleType(ann.symbol.typeRef); pickleTree(ann.tree) } } + def updateMapWithDeltas[T](mp: collection.mutable.Map[T, Addr]) = { + mp.map{ + case (key, addr) => (key, adjusted(addr)) + }.foreach(mp += _) + } + + trees.foreach(tree => if (!tree.isEmpty) pickleTree(tree)) assert(forwardSymRefs.isEmpty, i"unresolved symbols: ${forwardSymRefs.keySet.toList}%, %") compactify() - } + updateMapWithDeltas(symRefs) + } } -- cgit v1.2.3