@@ -13,15 +13,15 @@ abstract class TreeInterpreter[R <: Reflection & Singleton](val reflect: R) {
1313 /** Representation of objects and values in the interpreter */
1414 type AbstractAny
1515
16- type Result = Env | => AbstractAny
16+ type Result = given Env => AbstractAny
1717
1818 def localValue (sym : Symbol )(implicit env : Env ): LocalValue = env(sym)
1919
20- def withLocalValue [T ](sym : Symbol , value : LocalValue )(in : Env | => T )(implicit env : Env ): T =
21- in with env.updated(sym, value)
20+ def withLocalValue [T ](sym : Symbol , value : LocalValue )(in : given Env => T )(implicit env : Env ): T =
21+ in given env .updated(sym, value)
2222
23- def withLocalValues [T ](syms : List [Symbol ], values : List [LocalValue ])(in : Env | => T )(implicit env : Env ): T =
24- in with (env ++ syms.zip(values))
23+ def withLocalValues [T ](syms : List [Symbol ], values : List [LocalValue ])(in : given Env => T )(implicit env : Env ): T =
24+ in given (env ++ syms.zip(values))
2525
2626 def interpretCall (inst : AbstractAny , sym : DefSymbol , args : List [AbstractAny ]): Result = {
2727 // TODO
@@ -65,7 +65,7 @@ abstract class TreeInterpreter[R <: Reflection & Singleton](val reflect: R) {
6565 def interpretBlock (stats : List [Statement ], expr : Term ): Result = {
6666 val newEnv = stats.foldLeft(implicitly[Env ])((accEnv, stat) => stat match {
6767 case ValDef (name, tpt, Some (rhs)) =>
68- def evalRhs = eval(rhs) with accEnv
68+ def evalRhs = eval(rhs) given accEnv
6969 val evalRef : LocalValue =
7070 if (stat.symbol.flags.is(Flags .Lazy )) LocalValue .lazyValFrom(evalRhs)
7171 else if (stat.symbol.flags.is(Flags .Mutable )) LocalValue .varFrom(evalRhs)
@@ -76,10 +76,10 @@ abstract class TreeInterpreter[R <: Reflection & Singleton](val reflect: R) {
7676 // TODO: record the environment for closure purposes
7777 accEnv
7878 case stat =>
79- eval(stat) with accEnv
79+ eval(stat) given accEnv
8080 accEnv
8181 })
82- eval(expr) with newEnv
82+ eval(expr) given newEnv
8383 }
8484
8585 def interpretUnit (): AbstractAny
0 commit comments