diff --git a/src/funcheck/AnalysisComponent.scala b/src/funcheck/AnalysisComponent.scala index ff3710880fe216435c4de5d48c8bedfeee3add93..496fcdb3f1930fe6727baad64fa2be7a6bb7383e 100644 --- a/src/funcheck/AnalysisComponent.scala +++ b/src/funcheck/AnalysisComponent.scala @@ -25,9 +25,10 @@ class AnalysisComponent(val global: Global, val pluginInstance: FunCheckPlugin) def apply(unit: CompilationUnit): Unit = { // (new ForeachTreeTraverser(firstFilter(unit))).traverse(unit.body) // stopIfErrors - (new ForeachTreeTraverser(findContracts)).traverse(unit.body) - stopIfErrors - (new ForeachTreeTraverser(mircoTraverser(unit))).traverse(unit.body) + // (new ForeachTreeTraverser(findContracts)).traverse(unit.body) + // stopIfErrors + (new ForeachTreeTraverser(showObjects)).traverse(unit.body) + // (new ForeachTreeTraverser(mircoTraverser(unit))).traverse(unit.body) if(pluginInstance.stopAfterAnalysis) { println("Analysis complete. Now terminating the compiler process.") diff --git a/src/funcheck/CodeExtraction.scala b/src/funcheck/CodeExtraction.scala index 256132b29879d2c84c8fff74e3e4e804d995bc15..65e2219ba0b7c9b9d676e84683d2a64e7924f69c 100644 --- a/src/funcheck/CodeExtraction.scala +++ b/src/funcheck/CodeExtraction.scala @@ -4,9 +4,7 @@ import scala.tools.nsc._ import scala.tools.nsc.plugins._ trait CodeExtraction { - self: Extractors => - - val global: Global + self: AnalysisComponent => import global._ import StructuralExtractors._ @@ -35,4 +33,9 @@ trait CodeExtraction { case _ => ; } + + def showObjects(tree: Tree): Unit = tree match { + case ObjectDefn(name) => println(name + " appears to be an object.") + case _ => ; + } } diff --git a/src/funcheck/Extractors.scala b/src/funcheck/Extractors.scala index 9446295560bdab04015075e317075fdb9d0d519d..697a44716d1cdfa6f4053abd856fc068b0c585bf 100644 --- a/src/funcheck/Extractors.scala +++ b/src/funcheck/Extractors.scala @@ -48,6 +48,21 @@ trait Extractors { case _ => None } } + + object ObjectDefn { + def unapply(tree: Tree): Option[String] = tree match { + case c @ ClassDef(_, name, tparams, impl) => { + println(name.toString + " is being traversed.") + println(c.symbol) + if(c.symbol.hasFlag(symtab.Flags.MODULE)) { + Some(name.toString) + } else { + None + } + } + case _ => None + } + } } object ExpressionExtractors {