From 66004060889deaebab0d156688712a88cbe8f9a0 Mon Sep 17 00:00:00 2001 From: Mirco Dotta <mirco.dotta@gmail.com> Date: Fri, 3 Jul 2009 09:00:47 +0000 Subject: [PATCH] - [Refactoring] GeneratorDefDefInjector Transformer does not need type parameter - Added Skeleton for ForAllTransformer tree transformer --- src/funcheck/AnalysisComponent.scala | 2 +- src/funcheck/scalacheck/ForAllTransformer.scala | 16 ++++++++++++++++ .../scalacheck/GeneratorDefDefInjector.scala | 5 ++--- .../scalacheck/ScalaCheckIntegrator.scala | 2 +- 4 files changed, 20 insertions(+), 5 deletions(-) create mode 100644 src/funcheck/scalacheck/ForAllTransformer.scala diff --git a/src/funcheck/AnalysisComponent.scala b/src/funcheck/AnalysisComponent.scala index 84eed0db0..a442828b4 100644 --- a/src/funcheck/AnalysisComponent.scala +++ b/src/funcheck/AnalysisComponent.scala @@ -46,7 +46,7 @@ class AnalysisComponent(val global: Global, val pluginInstance: FunCheckPlugin) // unmodified. val (genDef, arbDef) = createGeneratorDefDefs(unit) - transform(genDef ::: arbDef, unit) + injectGenDefDefs(genDef ::: arbDef, unit) // if(pluginInstance.stopAfterAnalysis) { // println("Analysis complete. Now terminating the compiler process.") diff --git a/src/funcheck/scalacheck/ForAllTransformer.scala b/src/funcheck/scalacheck/ForAllTransformer.scala new file mode 100644 index 000000000..4147dad4f --- /dev/null +++ b/src/funcheck/scalacheck/ForAllTransformer.scala @@ -0,0 +1,16 @@ +package funcheck.scalacheck + +import scala.tools.nsc.transform.TypingTransformers + +trait ForAllTransformer extends TypingTransformers { + import global._ + + def forAllTransform(unit: CompilationUnit): Unit = + unit.body = new ForAllTransformer(unit).transform(unit.body) + + class ForAllTransformer(unit: CompilationUnit) + extends /*Code Injection*/ TypingTransformer(unit) + { + override def transform(tree: Tree): Tree = null + } +} diff --git a/src/funcheck/scalacheck/GeneratorDefDefInjector.scala b/src/funcheck/scalacheck/GeneratorDefDefInjector.scala index 516d814d5..9d4ed55c5 100644 --- a/src/funcheck/scalacheck/GeneratorDefDefInjector.scala +++ b/src/funcheck/scalacheck/GeneratorDefDefInjector.scala @@ -1,12 +1,11 @@ package funcheck.scalacheck -import scala.tools.nsc.{Global, SubComponent} import scala.tools.nsc.transform.TypingTransformers -trait GeneratorDefDefInjector[T <: SubComponent] extends TypingTransformers { self: T => +trait GeneratorDefDefInjector extends TypingTransformers { import global._ - def transform(injecting: List[DefDef], unit: CompilationUnit): Unit = + def injectGenDefDefs(injecting: List[DefDef], unit: CompilationUnit): Unit = unit.body = new GenDefDefTransformer(injecting, unit).transform(unit.body) class GenDefDefTransformer(injecting: List[DefDef], unit: CompilationUnit) diff --git a/src/funcheck/scalacheck/ScalaCheckIntegrator.scala b/src/funcheck/scalacheck/ScalaCheckIntegrator.scala index 27e4df13f..5b7514efe 100644 --- a/src/funcheck/scalacheck/ScalaCheckIntegrator.scala +++ b/src/funcheck/scalacheck/ScalaCheckIntegrator.scala @@ -5,7 +5,7 @@ import funcheck.util.FreshNameCreator trait ScalaCheckIntegrator[T <: SubComponent] extends ScalaCheck[T] with FilterGeneratorAnnotations[T] - with GeneratorDefDefInjector[T] + with GeneratorDefDefInjector with FreshNameCreator { self: T => -- GitLab