diff options
author | Dmitry Petrashko <dmitry.petrashko@gmail.com> | 2015-03-18 23:07:35 +0100 |
---|---|---|
committer | Dmitry Petrashko <dmitry.petrashko@gmail.com> | 2015-03-18 23:56:39 +0100 |
commit | 0d1396266c15c9bc88ea922a256a9c3709f33e7e (patch) | |
tree | 0f30282be33797c0da73347222be398fdb0a31e4 /src/dotty/tools/dotc | |
parent | fbad1dc0b7b09c9fa4d03761734eee49d0145f3c (diff) | |
download | dotty-0d1396266c15c9bc88ea922a256a9c3709f33e7e.tar.gz dotty-0d1396266c15c9bc88ea922a256a9c3709f33e7e.tar.bz2 dotty-0d1396266c15c9bc88ea922a256a9c3709f33e7e.zip |
Update address maps of symbols after compaction
Diffstat (limited to 'src/dotty/tools/dotc')
-rw-r--r-- | src/dotty/tools/dotc/core/pickling/TreePickler.scala | 10 |
1 files changed, 9 insertions, 1 deletions
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) + } } |