aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2015-04-28 12:59:34 +0200
committerMartin Odersky <odersky@gmail.com>2015-04-28 12:59:34 +0200
commit9e2dd75a8c229239b59a75fe6f9ddf201946032e (patch)
tree7beb9b1b2b6e5a4dd2a21f94fc2ceb2a0a7eb936 /src
parenta347632d48390a986c3bb44cf7b3cc2f3f988110 (diff)
downloaddotty-9e2dd75a8c229239b59a75fe6f9ddf201946032e.tar.gz
dotty-9e2dd75a8c229239b59a75fe6f9ddf201946032e.tar.bz2
dotty-9e2dd75a8c229239b59a75fe6f9ddf201946032e.zip
Move addrOfTree, addOfSym from CompilationUnit to Pickler.
These only exist if there was a pickler, and they are not unique per CompilationUnit.
Diffstat (limited to 'src')
-rw-r--r--src/dotty/tools/dotc/CompilationUnit.scala14
-rw-r--r--src/dotty/tools/dotc/core/pickling/TastyPickler.scala16
-rw-r--r--src/dotty/tools/dotc/transform/Pickler.scala4
3 files changed, 18 insertions, 16 deletions
diff --git a/src/dotty/tools/dotc/CompilationUnit.scala b/src/dotty/tools/dotc/CompilationUnit.scala
index f0ce19320..f5899f0f2 100644
--- a/src/dotty/tools/dotc/CompilationUnit.scala
+++ b/src/dotty/tools/dotc/CompilationUnit.scala
@@ -24,18 +24,4 @@ class CompilationUnit(val source: SourceFile) {
* Subsequent phases can add new sections.
*/
var picklers: Map[ClassSymbol, TastyPickler] = Map()
-
- /** TODO: I'd prefer we do not put this in CompilationUnit
- * Addresses in TASTY file of trees, stored by pickling.
- * Note that trees are checked for reference equality,
- * so one can reliably use this function only directly after `pickler`
- */
- var addrOfTree: tpd.Tree => Option[Addr] = (_ => None)
-
- /** TODO: I'd prefer we do not put this in CompilationUnit
- * Addresses in TASTY file of symbols, stored by pickling.
- * Note that trees are checked for reference equality,
- * so one can reliably use this function only dirrectly after `pickler`
- */
- var addrOfSym: Symbol => Option[Addr] = (_ => None)
}
diff --git a/src/dotty/tools/dotc/core/pickling/TastyPickler.scala b/src/dotty/tools/dotc/core/pickling/TastyPickler.scala
index 6bd6f1c44..74cc72b8c 100644
--- a/src/dotty/tools/dotc/core/pickling/TastyPickler.scala
+++ b/src/dotty/tools/dotc/core/pickling/TastyPickler.scala
@@ -7,6 +7,8 @@ import PickleFormat._
import collection.mutable
import TastyBuffer._
import java.util.UUID
+import core.Symbols.Symbol
+import ast.tpd
class TastyPickler {
@@ -51,4 +53,18 @@ class TastyPickler {
assert(all.length == totalSize && all.bytes.length == totalSize, s"totalSize = $totalSize, all.length = ${all.length}, all.bytes.length = ${all.bytes.length}")
all.bytes
}
+
+ /**
+ * Addresses in TASTY file of trees, stored by pickling.
+ * Note that trees are checked for reference equality,
+ * so one can reliably use this function only directly after `pickler`
+ */
+ var addrOfTree: tpd.Tree => Option[Addr] = (_ => None)
+
+ /**
+ * Addresses in TASTY file of symbols, stored by pickling.
+ * Note that trees are checked for reference equality,
+ * so one can reliably use this function only dirrectly after `pickler`
+ */
+ var addrOfSym: Symbol => Option[Addr] = (_ => None)
}
diff --git a/src/dotty/tools/dotc/transform/Pickler.scala b/src/dotty/tools/dotc/transform/Pickler.scala
index 5da92c079..50a419589 100644
--- a/src/dotty/tools/dotc/transform/Pickler.scala
+++ b/src/dotty/tools/dotc/transform/Pickler.scala
@@ -46,8 +46,8 @@ class Pickler extends Phase {
unit.picklers += (cls -> pickler)
val treePkl = new TreePickler(pickler)
treePkl.pickle(tree :: Nil)
- unit.addrOfTree = treePkl.buf.addrOfTree
- unit.addrOfSym = treePkl.addrOfSym
+ pickler.addrOfTree = treePkl.buf.addrOfTree
+ pickler.addrOfSym = treePkl.addrOfSym
if (unit.source.exists)
pickleSourcefile(pickler, unit.source)
if (tree.pos.exists)