summaryrefslogtreecommitdiff
path: root/src/reflect/scala/reflect/api/Printers.scala
diff options
context:
space:
mode:
authorVlad Ureche <vlad.ureche@gmail.com>2012-10-10 21:29:20 +0200
committerEugene Burmako <xeno.by@gmail.com>2012-10-11 20:08:09 +0200
commit706091cadbfd3d3d89df4acc68ea910679005ec8 (patch)
treec000abc2e3590a15b89f4aa33e8b2fe088c35c26 /src/reflect/scala/reflect/api/Printers.scala
parent7f7abfd62e08d569c7b88ec663a9955aa6fa272e (diff)
downloadscala-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.scala16
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
}