From 07cee88d1340ba3aaae9c8881c4effc73be83365 Mon Sep 17 00:00:00 2001
From: Nicolas Voirol <voirol.nicolas@gmail.com>
Date: Thu, 18 Aug 2016 15:54:29 +0200
Subject: [PATCH] More changed to accomodate stainless

---
 src/main/scala/inox/ast/CallGraph.scala    | 2 +-
 src/main/scala/inox/ast/Constructors.scala | 2 +-
 src/main/scala/inox/ast/Definitions.scala  | 2 +-
 src/main/scala/inox/ast/ExprOps.scala      | 4 +++-
 src/main/scala/inox/ast/Trees.scala        | 4 ++--
 src/main/scala/inox/ast/TypeOps.scala      | 2 +-
 6 files changed, 9 insertions(+), 7 deletions(-)

diff --git a/src/main/scala/inox/ast/CallGraph.scala b/src/main/scala/inox/ast/CallGraph.scala
index ec749fcef..eb0c3f083 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 c365ba628..664408f30 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 a63f639e8..1ebe9ba27 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 c0583c692..1a32fb14e 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 2d1aba675..cd1963046 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 c6d1a9721..b24d8e1ae 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
 
-- 
GitLab