diff options
author | Martin Odersky <odersky@gmail.com> | 2016-10-16 13:23:59 +0200 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2016-10-16 13:23:59 +0200 |
commit | f98b847cb2fca7d82cd24c869f4ba5a60c49d8b1 (patch) | |
tree | 08303aecf8de2ab744048f9cbf2dd42478946cab /src/dotty/tools/dotc/transform | |
parent | bc0bdb198269f040bd0b7fc0abeb30447fd2abe1 (diff) | |
download | dotty-f98b847cb2fca7d82cd24c869f4ba5a60c49d8b1.tar.gz dotty-f98b847cb2fca7d82cd24c869f4ba5a60c49d8b1.tar.bz2 dotty-f98b847cb2fca7d82cd24c869f4ba5a60c49d8b1.zip |
Handle shared trees
Shared trees are pickled under multiple addresses. Previously, only the
last address was stored, which led to trees with unknown positions.
Now, all addresses are stored.
Diffstat (limited to 'src/dotty/tools/dotc/transform')
-rw-r--r-- | src/dotty/tools/dotc/transform/Pickler.scala | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/dotty/tools/dotc/transform/Pickler.scala b/src/dotty/tools/dotc/transform/Pickler.scala index 2fb85b6c0..fc70ac4f2 100644 --- a/src/dotty/tools/dotc/transform/Pickler.scala +++ b/src/dotty/tools/dotc/transform/Pickler.scala @@ -46,10 +46,10 @@ class Pickler extends Phase { val treePkl = pickler.treePkl treePkl.pickle(tree :: Nil) treePkl.compactify() - pickler.addrOfTree = treePkl.buf.addrOfTree + pickler.addrsOfTree = treePkl.buf.addrsOfTree pickler.addrOfSym = treePkl.addrOfSym if (tree.pos.exists) - new PositionPickler(pickler, treePkl.buf.addrOfTree).picklePositions(tree :: Nil) + new PositionPickler(pickler, treePkl.buf.addrsOfTree).picklePositions(tree :: Nil) def rawBytes = // not needed right now, but useful to print raw format. pickler.assembleParts().iterator.grouped(10).toList.zipWithIndex.map { |