aboutsummaryrefslogtreecommitdiff
path: root/src/dotty/tools/dotc/transform
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2016-10-16 13:23:59 +0200
committerMartin Odersky <odersky@gmail.com>2016-10-16 13:23:59 +0200
commitf98b847cb2fca7d82cd24c869f4ba5a60c49d8b1 (patch)
tree08303aecf8de2ab744048f9cbf2dd42478946cab /src/dotty/tools/dotc/transform
parentbc0bdb198269f040bd0b7fc0abeb30447fd2abe1 (diff)
downloaddotty-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.scala4
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 {