From b3559b983b9779b5241ccc2911f4eaf12bdc87f0 Mon Sep 17 00:00:00 2001 From: Etienne Kneuss <ekneuss@gmail.com> Date: Fri, 11 Sep 2015 16:07:01 +0200 Subject: [PATCH] Mutable field in an object? I don't think so. This is a dirty quick fix for now until we rewrite the FunctionClosure phase. --- src/main/scala/leon/Main.scala | 6 +++--- src/main/scala/leon/purescala/FunctionClosure.scala | 3 +-- src/main/scala/leon/xlang/XLangDesugaringPhase.scala | 2 +- .../leon/regression/synthesis/StablePrintingSuite.scala | 2 +- 4 files changed, 6 insertions(+), 7 deletions(-) diff --git a/src/main/scala/leon/Main.scala b/src/main/scala/leon/Main.scala index 5ba9bfa53..8be3134c7 100644 --- a/src/main/scala/leon/Main.scala +++ b/src/main/scala/leon/Main.scala @@ -17,7 +17,7 @@ object Main { xlang.ImperativeCodeElimination, xlang.FixReportLabels, xlang.XLangDesugaringPhase, - purescala.FunctionClosure, + new purescala.FunctionClosure, synthesis.SynthesisPhase, termination.TerminationPhase, verification.AnalysisPhase, @@ -190,12 +190,12 @@ object Main { else if (synthesisF) SynthesisPhase else if (repairF) RepairPhase else if (analysisF) Pipeline.both( - FunctionClosure andThen analysis, + (new FunctionClosure) andThen analysis, TerminationPhase ) else if (terminationF) TerminationPhase else if (evalF) EvaluationPhase - else FunctionClosure andThen analysis + else (new FunctionClosure) andThen analysis } pipeBegin andThen diff --git a/src/main/scala/leon/purescala/FunctionClosure.scala b/src/main/scala/leon/purescala/FunctionClosure.scala index 96ef8e2b0..4ac11044d 100644 --- a/src/main/scala/leon/purescala/FunctionClosure.scala +++ b/src/main/scala/leon/purescala/FunctionClosure.scala @@ -10,7 +10,7 @@ import Extractors._ import ExprOps._ import Constructors._ -object FunctionClosure extends TransformationPhase { +class FunctionClosure extends TransformationPhase { val name = "Function Closure" val description = "Closing function with its scoping variables" @@ -175,5 +175,4 @@ object FunctionClosure extends TransformationPhase { } while(newVars != Set()) (filteredConstraints, allVars) } - } diff --git a/src/main/scala/leon/xlang/XLangDesugaringPhase.scala b/src/main/scala/leon/xlang/XLangDesugaringPhase.scala index f891b212e..6b06991c7 100644 --- a/src/main/scala/leon/xlang/XLangDesugaringPhase.scala +++ b/src/main/scala/leon/xlang/XLangDesugaringPhase.scala @@ -16,7 +16,7 @@ object XLangDesugaringPhase extends TransformationPhase { ArrayTransformation andThen EpsilonElimination andThen ImperativeCodeElimination andThen - FunctionClosure + (new FunctionClosure) phases.run(ctx)(pgm) } diff --git a/src/test/scala/leon/regression/synthesis/StablePrintingSuite.scala b/src/test/scala/leon/regression/synthesis/StablePrintingSuite.scala index 99f8bcfa8..9cd16293f 100644 --- a/src/test/scala/leon/regression/synthesis/StablePrintingSuite.scala +++ b/src/test/scala/leon/regression/synthesis/StablePrintingSuite.scala @@ -33,7 +33,7 @@ class StablePrintingSuite extends LeonRegressionSuite { val pipeline = leon.utils.TemporaryInputPhase andThen frontends.scalac.ExtractionPhase andThen leon.utils.PreprocessingPhase andThen - purescala.FunctionClosure + (new purescala.FunctionClosure) val program = pipeline.run(ctx)((List(content), Nil)) -- GitLab