Skip to content
Snippets Groups Projects
Commit 66004060 authored by Mirco Dotta's avatar Mirco Dotta
Browse files

- [Refactoring] GeneratorDefDefInjector Transformer does not need type parameter

- Added Skeleton for ForAllTransformer tree transformer 
parent 4c6544d8
No related branches found
No related tags found
No related merge requests found
...@@ -46,7 +46,7 @@ class AnalysisComponent(val global: Global, val pluginInstance: FunCheckPlugin) ...@@ -46,7 +46,7 @@ class AnalysisComponent(val global: Global, val pluginInstance: FunCheckPlugin)
// unmodified. // unmodified.
val (genDef, arbDef) = createGeneratorDefDefs(unit) val (genDef, arbDef) = createGeneratorDefDefs(unit)
transform(genDef ::: arbDef, unit) injectGenDefDefs(genDef ::: arbDef, unit)
// if(pluginInstance.stopAfterAnalysis) { // if(pluginInstance.stopAfterAnalysis) {
// println("Analysis complete. Now terminating the compiler process.") // println("Analysis complete. Now terminating the compiler process.")
......
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
}
}
package funcheck.scalacheck package funcheck.scalacheck
import scala.tools.nsc.{Global, SubComponent}
import scala.tools.nsc.transform.TypingTransformers import scala.tools.nsc.transform.TypingTransformers
trait GeneratorDefDefInjector[T <: SubComponent] extends TypingTransformers { self: T => trait GeneratorDefDefInjector extends TypingTransformers {
import global._ 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) unit.body = new GenDefDefTransformer(injecting, unit).transform(unit.body)
class GenDefDefTransformer(injecting: List[DefDef], unit: CompilationUnit) class GenDefDefTransformer(injecting: List[DefDef], unit: CompilationUnit)
......
...@@ -5,7 +5,7 @@ import funcheck.util.FreshNameCreator ...@@ -5,7 +5,7 @@ import funcheck.util.FreshNameCreator
trait ScalaCheckIntegrator[T <: SubComponent] extends ScalaCheck[T] trait ScalaCheckIntegrator[T <: SubComponent] extends ScalaCheck[T]
with FilterGeneratorAnnotations[T] with FilterGeneratorAnnotations[T]
with GeneratorDefDefInjector[T] with GeneratorDefDefInjector
with FreshNameCreator with FreshNameCreator
{ {
self: T => self: T =>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment