diff options
author | Vlad Ureche <vlad.ureche@gmail.com> | 2012-10-10 21:29:20 +0200 |
---|---|---|
committer | Eugene Burmako <xeno.by@gmail.com> | 2012-10-11 20:08:09 +0200 |
commit | 706091cadbfd3d3d89df4acc68ea910679005ec8 (patch) | |
tree | c000abc2e3590a15b89f4aa33e8b2fe088c35c26 /src/reflect/scala/reflect/api/Printers.scala | |
parent | 7f7abfd62e08d569c7b88ec663a9955aa6fa272e (diff) | |
download | scala-706091cadbfd3d3d89df4acc68ea910679005ec8.tar.gz scala-706091cadbfd3d3d89df4acc68ea910679005ec8.tar.bz2 scala-706091cadbfd3d3d89df4acc68ea910679005ec8.zip |
Grouping for reflection and macros
and warning cleanup
Diffstat (limited to 'src/reflect/scala/reflect/api/Printers.scala')
-rw-r--r-- | src/reflect/scala/reflect/api/Printers.scala | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/src/reflect/scala/reflect/api/Printers.scala b/src/reflect/scala/reflect/api/Printers.scala index 831c4ae331..b7157af153 100644 --- a/src/reflect/scala/reflect/api/Printers.scala +++ b/src/reflect/scala/reflect/api/Printers.scala @@ -131,6 +131,7 @@ import java.io.{ PrintWriter, StringWriter } */ trait Printers { self: Universe => + /** @group Printers */ protected trait TreePrinter { def print(args: Any*) protected var printTypes = false @@ -147,13 +148,16 @@ trait Printers { self: Universe => def withoutMirrors: this.type = { printMirrors = false; this } } + /** @group Printers */ case class BooleanFlag(val value: Option[Boolean]) + /** @group Printers */ object BooleanFlag { import scala.language.implicitConversions implicit def booleanToBooleanFlag(value: Boolean): BooleanFlag = BooleanFlag(Some(value)) implicit def optionToBooleanFlag(value: Option[Boolean]): BooleanFlag = BooleanFlag(value) } + /** @group Printers */ protected def render(what: Any, mkPrinter: PrintWriter => TreePrinter, printTypes: BooleanFlag = None, printIds: BooleanFlag = None, printKinds: BooleanFlag = None, printMirrors: BooleanFlag = None): String = { val buffer = new StringWriter() val writer = new PrintWriter(buffer) @@ -167,41 +171,51 @@ trait Printers { self: Universe => buffer.toString } - /** By default trees are printed with `show` */ + /** By default trees are printed with `show` + * @group Printers + */ override protected def treeToString(tree: Tree) = show(tree) /** Renders a prettified representation of a reflection artifact. * Typically it looks very close to the Scala code it represents. + * @group Printers */ def show(any: Any, printTypes: BooleanFlag = None, printIds: BooleanFlag = None, printKinds: BooleanFlag = None, printMirrors: BooleanFlag = None): String = render(any, newTreePrinter(_), printTypes, printIds, printKinds, printMirrors) /** Hook to define what `show(...)` means. + * @group Printers */ protected def newTreePrinter(out: PrintWriter): TreePrinter /** Renders internal structure of a reflection artifact. + * @group Printers */ def showRaw(any: Any, printTypes: BooleanFlag = None, printIds: BooleanFlag = None, printKinds: BooleanFlag = None, printMirrors: BooleanFlag = None): String = render(any, newRawTreePrinter(_), printTypes, printIds, printKinds, printMirrors) /** Hook to define what `showRaw(...)` means. + * @group Printers */ protected def newRawTreePrinter(out: PrintWriter): TreePrinter /** Renders a prettified representation of a name. + * @group Printers */ def show(name: Name): String /** Renders internal structure of a name. + * @group Printers */ def showRaw(name: Name): String = name.toString /** Renders a prettified representation of a flag set. + * @group Printers */ def show(flags: FlagSet): String /** Renders internal structure of a flag set. + * @group Printers */ def showRaw(flags: FlagSet): String = flags.toString } |