aboutsummaryrefslogtreecommitdiff
path: root/tests/pending/run/macro-range/Common_1.scala
diff options
context:
space:
mode:
Diffstat (limited to 'tests/pending/run/macro-range/Common_1.scala')
-rw-r--r--tests/pending/run/macro-range/Common_1.scala48
1 files changed, 0 insertions, 48 deletions
diff --git a/tests/pending/run/macro-range/Common_1.scala b/tests/pending/run/macro-range/Common_1.scala
deleted file mode 100644
index 35d2efd76..000000000
--- a/tests/pending/run/macro-range/Common_1.scala
+++ /dev/null
@@ -1,48 +0,0 @@
-import scala.reflect.macros.blackbox.Context
-
-abstract class RangeDefault {
- val from, to: Int
- def foreach(f: Int => Unit) = {
- var i = from
- while (i < to) { f(i); i += 1 }
- }
-}
-
-/** This class should go into reflect.macro once it is a bit more stable. */
-abstract class Utils {
- val context: Context
- import context.universe._
- import internal._
-
- class TreeSubstituter(from: List[Symbol], to: List[Tree]) extends Transformer {
- override def transform(tree: Tree): Tree = tree match {
- case Ident(_) =>
- def subst(from: List[Symbol], to: List[Tree]): Tree =
- if (from.isEmpty) tree
- else if (tree.symbol == from.head) to.head.duplicate // TODO: does it ever make sense *not* to perform a shallowDuplicate on `to.head`?
- else subst(from.tail, to.tail);
- subst(from, to)
- case _ =>
- val tree1 = super.transform(tree)
- if (tree1 ne tree) setType(tree1, null)
- tree1
- }
- }
- def makeApply(fn: Tree, args: List[Tree]): Tree = fn match {
- case Function(vparams, body) =>
- new TreeSubstituter(vparams map (_.symbol), args) transform body
- case Block(stats, expr) =>
- Block(stats, makeApply(expr, args))
- case _ =>
- // todo. read the compiler config and print if -Ydebug is set
- //println("no beta on "+fn+" "+fn.getClass)
- Apply(fn, args)
- }
- def makeWhile(lname: TermName, cond: Tree, body: Tree): Tree = {
- val continu = Apply(Ident(lname), Nil)
- val rhs = If(cond, Block(List(body), continu), Literal(Constant()))
- LabelDef(lname, Nil, rhs)
- }
- def makeBinop(left: Tree, op: String, right: Tree): Tree =
- Apply(Select(left, TermName(op)), List(right))
-}