diff options
author | Dmitry Petrashko <dmitry.petrashko@gmail.com> | 2014-03-17 22:25:47 +0100 |
---|---|---|
committer | Dmitry Petrashko <dmitry.petrashko@gmail.com> | 2014-03-19 15:53:47 +0100 |
commit | 09d02bd3670b947da147aec40835822d894b17b0 (patch) | |
tree | 01e81ad97df8b0e3e59cb72b3b77893e1d6f1070 /test/test/transform | |
parent | 5cbd2fbc8409b446f8751792b006693e1d091055 (diff) | |
download | dotty-09d02bd3670b947da147aec40835822d894b17b0.tar.gz dotty-09d02bd3670b947da147aec40835822d894b17b0.tar.bz2 dotty-09d02bd3670b947da147aec40835822d894b17b0.zip |
Allow MiniPhase to be DenotTransformer
All MiniPhases now as are full-fledged phases,
and are given their own periods and can register DenotTransformers.
MiniPhases belonging to same group(list) will be squashed to single phase.
Diffstat (limited to 'test/test/transform')
-rw-r--r-- | test/test/transform/CreateCompanionObjectsTest.scala | 22 | ||||
-rw-r--r-- | test/test/transform/LazyValsTest.scala | 3 | ||||
-rw-r--r-- | test/test/transform/PostTyperTransformerTest.scala | 30 | ||||
-rw-r--r-- | test/test/transform/TreeTransformerTest.scala | 33 |
4 files changed, 55 insertions, 33 deletions
diff --git a/test/test/transform/CreateCompanionObjectsTest.scala b/test/test/transform/CreateCompanionObjectsTest.scala index 95a84f4e0..bee9b414e 100644 --- a/test/test/transform/CreateCompanionObjectsTest.scala +++ b/test/test/transform/CreateCompanionObjectsTest.scala @@ -28,8 +28,10 @@ class CreateCompanionObjectsTest extends DottyTest { implicit val ctx = context val transformer = new PostTyperTransformer { - override def transformations = Array(new CreateCompanionObjects(_, _) { - override def predicate(cts: TypeDef): Boolean = true + override def transformations = Array(new CreateCompanionObjects { + + override def name: String = "create all companion objects" + override def predicate(cts: TypeDef)(implicit ctx:Context): Boolean = true }) override def name: String = "test" @@ -51,8 +53,10 @@ class CreateCompanionObjectsTest extends DottyTest { (tree, context) => implicit val ctx = context val transformer = new PostTyperTransformer { - override def transformations = Array(new CreateCompanionObjects(_, _) { - override def predicate(cts: TypeDef): Boolean = true + override def transformations = Array(new CreateCompanionObjects { + + override def name: String = "create all companion modules" + override def predicate(cts: TypeDef)(implicit ctx:Context): Boolean = true }) override def name: String = "test" @@ -73,8 +77,9 @@ class CreateCompanionObjectsTest extends DottyTest { (tree, context) => implicit val ctx = context val transformer = new PostTyperTransformer { - override def transformations = Array(new CreateCompanionObjects(_, _) { - override def predicate(cts: TypeDef): Boolean = true + override def transformations = Array(new CreateCompanionObjects { + override def name: String = "create all companion modules" + override def predicate(cts: TypeDef)(implicit ctx:Context): Boolean = true }) override def name: String = "test" @@ -95,8 +100,9 @@ class CreateCompanionObjectsTest extends DottyTest { (tree, context) => implicit val ctx = context val transformer = new PostTyperTransformer { - override def transformations = Array(new CreateCompanionObjects(_, _) { - override def predicate(cts: TypeDef): Boolean = cts.name.toString.contains("CREATE") + override def transformations = Array(new CreateCompanionObjects { + override def name: String = "create all companion modules" + override def predicate(cts: TypeDef)(implicit ctx:Context): Boolean = cts.name.toString.contains("CREATE") }) override def name: String = "test" diff --git a/test/test/transform/LazyValsTest.scala b/test/test/transform/LazyValsTest.scala index c14ee3e98..edcc7ce0c 100644 --- a/test/test/transform/LazyValsTest.scala +++ b/test/test/transform/LazyValsTest.scala @@ -14,7 +14,7 @@ class LazyValsTest extends DottyTest { )) } } - /* + @Test def localLong = { checkCompile("LazyVals", "class LocalLV { def m = { lazy val s = 1L; s }}"){ (tree, ctx) => @@ -346,5 +346,4 @@ class LazyValsTest extends DottyTest { treeS.contains(moduleField) && treeS.contains(reuseFieldPattern)) } } - */ } diff --git a/test/test/transform/PostTyperTransformerTest.scala b/test/test/transform/PostTyperTransformerTest.scala index 50696728e..040f871a2 100644 --- a/test/test/transform/PostTyperTransformerTest.scala +++ b/test/test/transform/PostTyperTransformerTest.scala @@ -22,9 +22,11 @@ class PostTyperTransformerTest extends DottyTest { def shouldStripImports = checkCompile("frontend", "class A{ import scala.collection.mutable._; val d = 1}") { (tree, context) => implicit val ctx = context - class EmptyTransform(group: TreeTransformer, idx: Int) extends TreeTransform(group, idx) {} + class EmptyTransform extends TreeTransform { + override def name: String = "empty" + } val transformer = new PostTyperTransformer { - override def transformations = Array(new EmptyTransform(_, _)) + override def transformations = Array(new EmptyTransform) override def name: String = "test" } @@ -39,9 +41,11 @@ class PostTyperTransformerTest extends DottyTest { def shouldStripNamedArgs = checkCompile("frontend", "class A{ def p(x:Int, y:Int= 2) = 1; p(1, y = 2)}") { (tree, context) => implicit val ctx = context - class EmptyTransform(group: TreeTransformer, idx: Int) extends TreeTransform(group, idx) {} + class EmptyTransform extends TreeTransform { + override def name: String = "empty" + } val transformer = new PostTyperTransformer { - override def transformations = Array(new EmptyTransform(_, _)) + override def transformations = Array(new EmptyTransform) override def name: String = "test" } @@ -56,9 +60,11 @@ class PostTyperTransformerTest extends DottyTest { def shouldReorderExistingObjectsInPackage = checkCompile("frontend", "object A{}; class A{} ") { (tree, context) => implicit val ctx = context - class EmptyTransform(group: TreeTransformer, idx: Int) extends TreeTransform(group, idx) {} + class EmptyTransform extends TreeTransform { + override def name: String = "empty" + } val transformer = new PostTyperTransformer { - override def transformations = Array(new EmptyTransform(_, _)) + override def transformations = Array(new EmptyTransform) override def name: String = "test" } @@ -77,9 +83,11 @@ class PostTyperTransformerTest extends DottyTest { def shouldReorderExistingObjectsInBlock = checkCompile("frontend", "class D {def p = {object A{}; class A{}; 1}} ") { (tree, context) => implicit val ctx = context - class EmptyTransform(group: TreeTransformer, idx: Int) extends TreeTransform(group, idx) {} + class EmptyTransform extends TreeTransform { + override def name: String = "empty" + } val transformer = new PostTyperTransformer { - override def transformations = Array(new EmptyTransform(_, _)) + override def transformations = Array(new EmptyTransform) override def name: String = "test" } @@ -98,9 +106,11 @@ class PostTyperTransformerTest extends DottyTest { def shouldReorderExistingObjectsInTemplate = checkCompile("frontend", "class D {object A{}; class A{}; } ") { (tree, context) => implicit val ctx = context - class EmptyTransform(group: TreeTransformer, idx: Int) extends TreeTransform(group, idx) {} + class EmptyTransform extends TreeTransform { + override def name: String = "empty" + } val transformer = new PostTyperTransformer { - override def transformations = Array(new EmptyTransform(_, _)) + override def transformations = Array(new EmptyTransform) override def name: String = "test" } diff --git a/test/test/transform/TreeTransformerTest.scala b/test/test/transform/TreeTransformerTest.scala index 5d4a6fa06..88ed9ce53 100644 --- a/test/test/transform/TreeTransformerTest.scala +++ b/test/test/transform/TreeTransformerTest.scala @@ -15,9 +15,11 @@ class TreeTransformerTest extends DottyTest { def shouldReturnSameTreeIfUnchanged = checkCompile("frontend", "class A{ val d = 1}") { (tree, context) => implicit val ctx = context - class EmptyTransform(group: TreeTransformer, idx: Int) extends TreeTransform(group, idx) {} + class EmptyTransform extends TreeTransform { + override def name: String = "empty" + } val transformer = new TreeTransformer { - override def transformations = Array(new EmptyTransform(_, _)) + override def transformations = Array(new EmptyTransform) override def name: String = "test" } @@ -32,12 +34,13 @@ class TreeTransformerTest extends DottyTest { def canReplaceConstant = checkCompile("frontend", "class A{ val d = 1}") { (tree, context) => implicit val ctx = context - class ConstantTransform(group: TreeTransformer, idx: Int) extends TreeTransform(group, idx) { + class ConstantTransform extends TreeTransform { override def transformLiteral(tree: tpd.Literal)(implicit ctx: Context, info: TransformerInfo): tpd.Tree = tpd.Literal(Constant(2)) + override def name: String = "canReplaceConstant" } val transformer = new TreeTransformer { - override def transformations = Array(new ConstantTransform(_, _)) + override def transformations = Array(new ConstantTransform) override def name: String = "test" } @@ -52,9 +55,10 @@ class TreeTransformerTest extends DottyTest { def canOverwrite = checkCompile("frontend", "class A{ val d = 1}") { (tree, context) => implicit val ctx = context - class Transformation(group: TreeTransformer, idx: Int) extends TreeTransform(group, idx) { + class Transformation extends TreeTransform { override def transformLiteral(tree: tpd.Literal)(implicit ctx: Context, info: TransformerInfo): tpd.Tree = tpd.Literal(Constant(-1)) + override def name: String = "canOverwrite" override def transformValDef(tree: tpd.ValDef)(implicit ctx: Context, info: TransformerInfo): tpd.ValDef = { Assert.assertTrue("transformation of children succeeded", @@ -64,7 +68,7 @@ class TreeTransformerTest extends DottyTest { } } val transformer = new TreeTransformer { - override def transformations = Array(new Transformation(_, _)) + override def transformations = Array(new Transformation) override def name: String = "test" } @@ -79,7 +83,8 @@ class TreeTransformerTest extends DottyTest { def transformationOrder = checkCompile("frontend", "class A{ val d = 1}") { (tree, context) => implicit val ctx = context - class Transformation1(group: TreeTransformer, idx: Int) extends TreeTransform(group, idx) { + class Transformation1 extends TreeTransform { + override def name: String = "transformationOrder1" override def transformLiteral(tree: tpd.Literal)(implicit ctx: Context, info: TransformerInfo): tpd.Tree = { Assert.assertTrue("correct constant", @@ -95,7 +100,8 @@ class TreeTransformerTest extends DottyTest { tpd.cpy.ValDef(tree, tree.mods, tree.name, tree.tpt, tpd.Literal(Constant(2))) } } - class Transformation2(group: TreeTransformer, idx: Int) extends TreeTransform(group, idx) { + class Transformation2 extends TreeTransform { + override def name: String = "transformationOrder2" override def transformValDef(tree: tpd.ValDef)(implicit ctx: Context, info: TransformerInfo): tpd.ValDef = { Assert.assertTrue("transformation of children succeeded", tree.rhs.toString == "Literal(Constant(2))" @@ -104,7 +110,7 @@ class TreeTransformerTest extends DottyTest { } } val transformer = new TreeTransformer { - override def transformations = Array(new Transformation1(_, _), new Transformation2(_, _)) + override def transformations = Array(new Transformation1, new Transformation2) override def name: String = "test" } @@ -120,7 +126,8 @@ class TreeTransformerTest extends DottyTest { (tree, context) => implicit val ctx = context var transformed1 = 0 - class Transformation1(group: TreeTransformer, idx: Int) extends TreeTransform(group, idx) { + class Transformation1 extends TreeTransform { + override def name: String = "invocationCount1" override def transformLiteral(tree: tpd.Literal)(implicit ctx: Context, info: TransformerInfo): tpd.Tree = { transformed1 += 1 Assert.assertTrue("correct constant", @@ -138,9 +145,9 @@ class TreeTransformerTest extends DottyTest { } } var transformed2 = 0 - class Transformation2(group: TreeTransformer, idx: Int) extends TreeTransform(group, idx) { + class Transformation2 extends TreeTransform { var constantsSeen = 0 - + override def name: String = "invocationCount2" override def transformLiteral(tree: tpd.Literal)(implicit ctx: Context, info: TransformerInfo): tpd.Tree = { transformed2 += 1 constantsSeen match { @@ -167,7 +174,7 @@ class TreeTransformerTest extends DottyTest { } } val transformer = new TreeTransformer { - override def transformations = Array(new Transformation1(_, _), new Transformation2(_, _)) + override def transformations = Array(new Transformation1, new Transformation2) override def name: String = "test" } |