diff --git a/src/main/scala/inox/ast/CallGraph.scala b/src/main/scala/inox/ast/CallGraph.scala index ec749fcef3485f707f6e8801ae9ca9957e5cf741..eb0c3f0835543f4344a0a5f915611b00f32a3583 100644 --- a/src/main/scala/inox/ast/CallGraph.scala +++ b/src/main/scala/inox/ast/CallGraph.scala @@ -6,7 +6,7 @@ package ast import utils.Graphs._ trait CallGraph { - private[ast] val trees: Trees + protected val trees: Trees import trees._ import trees.exprOps._ protected val symbols: Symbols diff --git a/src/main/scala/inox/ast/Constructors.scala b/src/main/scala/inox/ast/Constructors.scala index c365ba6285b64fd2389eb07ef3c2048f0d66a5b8..664408f30f0e4f8dfb6308026c1652fb5256fb93 100644 --- a/src/main/scala/inox/ast/Constructors.scala +++ b/src/main/scala/inox/ast/Constructors.scala @@ -10,7 +10,7 @@ package ast * @define encodingof Encoding of * */ trait Constructors { - private[ast] val trees: Trees + protected val trees: Trees import trees._ import trees.exprOps._ protected implicit val symbols: Symbols diff --git a/src/main/scala/inox/ast/Definitions.scala b/src/main/scala/inox/ast/Definitions.scala index a63f639e8d41ff207129864eb9294bdeb0d70e76..1ebe9ba2787af164d625652af09145b09bd0f68b 100644 --- a/src/main/scala/inox/ast/Definitions.scala +++ b/src/main/scala/inox/ast/Definitions.scala @@ -96,7 +96,7 @@ trait Definitions { self: Trees => val classes: Map[Identifier, ClassDef] val functions: Map[Identifier, FunDef] - private[ast] val trees: self.type = self + protected val trees: self.type = self protected val symbols: this.type = this // @nv: this is a hack to reinject `this` into the set of implicits diff --git a/src/main/scala/inox/ast/ExprOps.scala b/src/main/scala/inox/ast/ExprOps.scala index c0583c6923468b38313e56fdc41a714bdd27d0ec..1a32fb14e163ae524d5e57dc68da9eb648d74880 100644 --- a/src/main/scala/inox/ast/ExprOps.scala +++ b/src/main/scala/inox/ast/ExprOps.scala @@ -48,7 +48,7 @@ trait ExprOps extends GenTreeOps { case _ => None } (expr) - object VariableExtractor { + protected class VariableExtractor { def unapply(e: Expr): Option[(Set[Variable], Set[Variable])] = e match { case v: Variable => Some((Set(v), Set.empty)) case Let(vd, _, _) => Some((Set.empty, Set(vd.toVariable))) @@ -59,6 +59,8 @@ trait ExprOps extends GenTreeOps { } } + protected val VariableExtractor = new VariableExtractor + /** Returns the set of free variables in an expression */ def variablesOf(expr: Expr): Set[Variable] = { fold[Set[Variable]] { case (e, subs) => diff --git a/src/main/scala/inox/ast/Trees.scala b/src/main/scala/inox/ast/Trees.scala index 2d1aba675eb1e6d588dbfe0edfa21bb765dce3b2..cd1963046eb7aabd80265091543f68b2bc6ceebf 100644 --- a/src/main/scala/inox/ast/Trees.scala +++ b/src/main/scala/inox/ast/Trees.scala @@ -35,11 +35,11 @@ trait Trees override def toString = asString(PrinterOptions.fromContext(InoxContext.printNames)) } - object exprOps extends { + val exprOps: ExprOps { val trees: Trees.this.type } = new { protected val trees: Trees.this.type = Trees.this } with ExprOps - object dsl extends { + val dsl: DSL { val trees: Trees.this.type } = new { protected val trees: Trees.this.type = Trees.this } with DSL diff --git a/src/main/scala/inox/ast/TypeOps.scala b/src/main/scala/inox/ast/TypeOps.scala index c6d1a97217975563594f04712c18f852f6e3550b..b24d8e1ae57bf20655f9253246425cae671d8dc7 100644 --- a/src/main/scala/inox/ast/TypeOps.scala +++ b/src/main/scala/inox/ast/TypeOps.scala @@ -4,7 +4,7 @@ package inox package ast trait TypeOps { - private[ast] val trees: Trees + protected val trees: Trees import trees._ protected implicit val symbols: Symbols