blob: 644a66784f9ba8bc722a95efd0b81a196b2c1d01 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
package dotty.tools.dotc
package transform
import core._
import TreeTransforms._
import Contexts.Context
import Decorators._
import pickling._
/** This miniphase pickles trees */
class Pickler extends MiniPhaseTransform { thisTransform =>
import ast.tpd._
override def phaseName: String = "pickler"
override def transformUnit(tree: Tree)(implicit ctx: Context, info: TransformerInfo): Tree = {
val pickler = new TastyPickler
new TreePickler(pickler, picklePositions = false).pickle(tree)
val bytes = pickler.assembleParts()
def rawBytes =
bytes.iterator.grouped(10).toList.zipWithIndex.map {
case (row, i) => s"${i}0: ${row.mkString(" ")}"
}
//println(s"written:\n${rawBytes.mkString("\n")}")
new TastyPrinter(bytes).printContents()
tree
}
}
|