diff --git a/src/main/scala/leon/frontends/scalac/CodeExtraction.scala b/src/main/scala/leon/frontends/scalac/CodeExtraction.scala index bfbcd41afe0a1b94165c3a3d9d0826d783172da5..cfcf667c56d25f8c33fd7b0b97326087fe116790 100644 --- a/src/main/scala/leon/frontends/scalac/CodeExtraction.scala +++ b/src/main/scala/leon/frontends/scalac/CodeExtraction.scala @@ -831,7 +831,7 @@ trait CodeExtraction extends ASTExtractors { private def extractObjectDef(id : Identifier, defs: List[Tree], isStandalone : Boolean) { - val newDefs = defs.flatMap{ t => t match { + val newDefs = defs.flatMap { case t if isIgnored(t.symbol) => None @@ -850,10 +850,10 @@ trait CodeExtraction extends ASTExtractors { Some(defsToDefs(sym)) case ExFieldDef(sym, _, _) => Some(defsToDefs(sym)) - + case _ => None - }} + } // We check nothing else is polluting the object for (t <- defs) t match { @@ -1919,9 +1919,9 @@ trait CodeExtraction extends ASTExtractors { None } - if(exprOwners.exists(_ == None)) + if(exprOwners.contains(None)) None - else if(exprOwners.exists(_ == Some(None))) + else if(exprOwners.contains(Some(None))) Some(None) else if(exprOwners.exists(o1 => exprOwners.exists(o2 => o1 != o2))) Some(None) diff --git a/src/main/scala/leon/purescala/Definitions.scala b/src/main/scala/leon/purescala/Definitions.scala index 2dbeb4f436b1f84737568e8235bbddad63351c42..201835745eaf42538622d0b877cc770fc6d70e2b 100644 --- a/src/main/scala/leon/purescala/Definitions.scala +++ b/src/main/scala/leon/purescala/Definitions.scala @@ -95,7 +95,7 @@ object Definitions { val fstream = new FileWriter(filename) val out = new BufferedWriter(fstream) out.write(ScalaPrinter(this)) - out.close + out.close() } setSubDefOwners() } @@ -171,7 +171,7 @@ object Definitions { val fstream = new FileWriter(filename) val out = new BufferedWriter(fstream) out.write(ScalaPrinter(this)) - out.close + out.close() } setSubDefOwners() @@ -204,11 +204,11 @@ object Definitions { case c @ CaseClassDef(_, _, None, _) => c } - def duplicate = copy(defs = defs map { _ match { - case f : FunDef => f.duplicate - case cd : ClassDef => cd.duplicate + def duplicate = copy(defs = defs map { + case f: FunDef => f.duplicate + case cd: ClassDef => cd.duplicate case other => other // FIXME: huh? - }}) + }) setSubDefOwners() @@ -252,10 +252,10 @@ object Definitions { def knownChildren: Seq[ClassDef] = _children def knownDescendents: Seq[ClassDef] = { - knownChildren ++ (knownChildren.map(c => c match { + knownChildren ++ (knownChildren.map { case acd: AbstractClassDef => acd.knownDescendents case _ => Nil - }).foldLeft(List[ClassDef]())(_ ++ _)) + }.foldLeft(List[ClassDef]())(_ ++ _)) } def knownCCDescendents: Seq[CaseClassDef] = knownDescendents.collect { diff --git a/src/main/scala/leon/purescala/TreeOps.scala b/src/main/scala/leon/purescala/TreeOps.scala index 0003474dba82edeb9821cf7d7c19a4bfee74d1c4..fe0a0c6ce5ef172618085ea44f92e4fab87a6926 100644 --- a/src/main/scala/leon/purescala/TreeOps.scala +++ b/src/main/scala/leon/purescala/TreeOps.scala @@ -537,10 +537,10 @@ object TreeOps { Some(replace(Map((Variable(i) -> t)), b)) case letExpr @ Let(i,e,b) if isDeterministic(b) => { - val occurences = count{ (e: Expr) => e match { + val occurences = count { case Variable(x) if x == i => 1 case _ => 0 - }}(b) + }(b) if(occurences == 0) { Some(b) @@ -1443,7 +1443,7 @@ object TreeOps { } def idHomo(i1: Identifier, i2: Identifier)(implicit map: Map[Identifier, Identifier]) = { - i1 == i2 || map.get(i1).exists(_ == i2) + i1 == i2 || map.get(i1).contains(i2) } def fdHomo(fd1: FunDef, fd2: FunDef)(implicit map: Map[Identifier, Identifier]) = { @@ -2202,21 +2202,21 @@ object TreeOps { } - val newCases = resCases.flatMap { c => c match { - case SimpleCase(wp: WildcardPattern, m @ MatchExpr(ex, cases)) if ex == scrutinee => + val newCases = resCases.flatMap { + case SimpleCase(wp: WildcardPattern, m@MatchExpr(ex, cases)) if ex == scrutinee => cases - case SimpleCase(pattern, m @ MatchExpr(v @ Variable(id), cases)) => + case c@SimpleCase(pattern, m@MatchExpr(v@Variable(id), cases)) => if (pattern.binders(id)) { - cases.map{ nc => + cases.map { nc => SimpleCase(mergePattern(pattern, id, nc.pattern), nc.rhs) } } else { Seq(c) } - case _ => + case c => Seq(c) - }} + } var finalMatch = matchExpr(scrutinee, List(newCases.head)).asInstanceOf[MatchExpr] diff --git a/src/main/scala/leon/solvers/smtlib/SMTLIBTarget.scala b/src/main/scala/leon/solvers/smtlib/SMTLIBTarget.scala index 938dd2667f1b67863b4cab35326f4bc5187811b9..fca07352c6c01236b1fa64eaa8f268f1bf0df4cc 100644 --- a/src/main/scala/leon/solvers/smtlib/SMTLIBTarget.scala +++ b/src/main/scala/leon/solvers/smtlib/SMTLIBTarget.scala @@ -601,7 +601,7 @@ trait SMTLIBTarget { reporter.ifDebug { debug => SMTPrinter.printCommand(cmd, out) out.write("\n") - out.flush + out.flush() } interpreter.eval(cmd) match { diff --git a/src/main/scala/leon/solvers/templates/TemplateGenerator.scala b/src/main/scala/leon/solvers/templates/TemplateGenerator.scala index ef7a58f1c0850d8155937140946100c6da29c124..8a35871f491cacdec0cc6d8861196221bbfb7ddd 100644 --- a/src/main/scala/leon/solvers/templates/TemplateGenerator.scala +++ b/src/main/scala/leon/solvers/templates/TemplateGenerator.scala @@ -157,7 +157,7 @@ class TemplateGenerator[T](val encoder: TemplateEncoder[T]) { // Group elements that satisfy p toghether // List(a, a, a, b, c, a, a), with p = _ == a will produce: // List(List(a,a,a), List(b), List(c), List(a, a)) - def groupWhile[T](p: T => Boolean, l: Seq[T]): Seq[Seq[T]] = { + def groupWhile(p: T => Boolean, l: Seq[T]): Seq[Seq[T]] = { var res: Seq[Seq[T]] = Nil var c = l diff --git a/src/main/scala/leon/synthesis/rules/ADTInduction.scala b/src/main/scala/leon/synthesis/rules/ADTInduction.scala index 5dd0afe26385f96eaeff3379cfa9bc8a4a55f6c0..73aa69f7a4e6c9fc2a4aeab3726b5017d45d03ae 100644 --- a/src/main/scala/leon/synthesis/rules/ADTInduction.scala +++ b/src/main/scala/leon/synthesis/rules/ADTInduction.scala @@ -54,7 +54,7 @@ case object ADTInduction extends Rule("ADT Induction") { val inputs = (for (id <- newIds) yield { if (id.getType == origId.getType) { val postXs = p.xs map (id => FreshIdentifier("r", id.getType, true)) - val postXsMap = (p.xs zip postXs).toMap.mapValues(Variable(_)) + val postXsMap = (p.xs zip postXs).toMap.mapValues(Variable) recCalls += postXs -> (Variable(id) +: residualArgs.map(id => Variable(id))) @@ -65,9 +65,9 @@ case object ADTInduction extends Rule("ADT Induction") { } }).flatten - val subPhi = substAll(Map(inductOn -> CaseClass(cct, newIds.map(Variable(_)))), innerPhi) - val subPC = substAll(Map(inductOn -> CaseClass(cct, newIds.map(Variable(_)))), innerPC) - val subWS = substAll(Map(inductOn -> CaseClass(cct, newIds.map(Variable(_)))), innerWS) + val subPhi = substAll(Map(inductOn -> CaseClass(cct, newIds.map(Variable))), innerPhi) + val subPC = substAll(Map(inductOn -> CaseClass(cct, newIds.map(Variable))), innerPC) + val subWS = substAll(Map(inductOn -> CaseClass(cct, newIds.map(Variable))), innerWS) val subPre = CaseClassInstanceOf(cct, Variable(origId)) @@ -108,7 +108,7 @@ case object ADTInduction extends Rule("ADT Induction") { Some(Solution(orJoin(globalPre), sols.flatMap(_.defs).toSet+newFun, - FunctionInvocation(newFun.typed, Variable(origId) :: oas.map(Variable(_))), + FunctionInvocation(newFun.typed, Variable(origId) :: oas.map(Variable)), sols.forall(_.isTrusted) )) } diff --git a/src/test/scala/leon/test/termination/TerminationRegression.scala b/src/test/scala/leon/test/termination/TerminationRegression.scala index da5436d0375a43a22a259b0c46069d0b260722a6..c3b53c9f338cc72a8364feb1c61d3f43f2d8c3b3 100644 --- a/src/test/scala/leon/test/termination/TerminationRegression.scala +++ b/src/test/scala/leon/test/termination/TerminationRegression.scala @@ -21,7 +21,7 @@ class TerminationRegression extends LeonTestSuite { leon.frontends.scalac.ExtractionPhase andThen leon.utils.PreprocessingPhase andThen leon.termination.TerminationPhase private def mkTest(file : File, leonOptions: Seq[LeonOption], forError: Boolean)(block: Output=>Unit) = { - val fullName = file.getPath() + val fullName = file.getPath val start = fullName.indexOf("regression") val displayName = if(start != -1) {