@@ -29,7 +29,7 @@ abstract class Lifter {
2929 import tpd ._
3030
3131 /** Test indicating `expr` does not need lifting */
32- def noLift (expr : Tree )(implicit ctx : Context ): Boolean
32+ def noLift (expr : Tree )(using Context ): Boolean
3333
3434 /** The corresponding lifter for pass-by-name arguments */
3535 protected def exprLifter : Lifter = NoLift
@@ -38,12 +38,12 @@ abstract class Lifter {
3838 protected def liftedFlags : FlagSet = EmptyFlags
3939
4040 /** The tree of a lifted definition */
41- protected def liftedDef (sym : TermSymbol , rhs : Tree )(implicit ctx : Context ): MemberDef = ValDef (sym, rhs)
41+ protected def liftedDef (sym : TermSymbol , rhs : Tree )(using Context ): MemberDef = ValDef (sym, rhs)
4242
4343 /** Is lifting performed on erased terms? */
4444 protected def isErased = false
4545
46- private def lift (defs : mutable.ListBuffer [Tree ], expr : Tree , prefix : TermName = EmptyTermName )(implicit ctx : Context ): Tree =
46+ private def lift (defs : mutable.ListBuffer [Tree ], expr : Tree , prefix : TermName = EmptyTermName )(using Context ): Tree =
4747 if (noLift(expr)) expr
4848 else {
4949 val name = UniqueName .fresh(prefix)
@@ -62,7 +62,7 @@ abstract class Lifter {
6262 *
6363 * lhs += expr
6464 */
65- def liftAssigned (defs : mutable.ListBuffer [Tree ], tree : Tree )(implicit ctx : Context ): Tree = tree match {
65+ def liftAssigned (defs : mutable.ListBuffer [Tree ], tree : Tree )(using Context ): Tree = tree match {
6666 case Apply (MaybePoly (fn @ Select (pre, name), targs), args) =>
6767 cpy.Apply (tree)(
6868 cpy.Select (fn)(
@@ -75,7 +75,7 @@ abstract class Lifter {
7575 }
7676
7777 /** Lift a function argument, stripping any NamedArg wrapper */
78- private def liftArg (defs : mutable.ListBuffer [Tree ], arg : Tree , prefix : TermName = EmptyTermName )(implicit ctx : Context ): Tree =
78+ private def liftArg (defs : mutable.ListBuffer [Tree ], arg : Tree , prefix : TermName = EmptyTermName )(using Context ): Tree =
7979 arg match {
8080 case arg @ NamedArg (name, arg1) => cpy.NamedArg (arg)(name, lift(defs, arg1, prefix))
8181 case arg => lift(defs, arg, prefix)
@@ -84,7 +84,7 @@ abstract class Lifter {
8484 /** Lift arguments that are not-idempotent into ValDefs in buffer `defs`
8585 * and replace by the idents of so created ValDefs.
8686 */
87- def liftArgs (defs : mutable.ListBuffer [Tree ], methRef : Type , args : List [Tree ])(implicit ctx : Context ): List [Tree ] =
87+ def liftArgs (defs : mutable.ListBuffer [Tree ], methRef : Type , args : List [Tree ])(using Context ): List [Tree ] =
8888 methRef.widen match {
8989 case mt : MethodType =>
9090 args.lazyZip(mt.paramNames).lazyZip(mt.paramInfos).map { (arg, name, tp) =>
@@ -108,7 +108,7 @@ abstract class Lifter {
108108 * But leave pure expressions alone.
109109 *
110110 */
111- def liftApp (defs : mutable.ListBuffer [Tree ], tree : Tree )(implicit ctx : Context ): Tree = tree match {
111+ def liftApp (defs : mutable.ListBuffer [Tree ], tree : Tree )(using Context ): Tree = tree match {
112112 case Apply (fn, args) =>
113113 val fn1 = liftApp(defs, fn)
114114 val args1 = liftArgs(defs, fn.tpe, args)
@@ -133,24 +133,24 @@ abstract class Lifter {
133133 *
134134 * unless `pre` is idempotent.
135135 */
136- def liftPrefix (defs : mutable.ListBuffer [Tree ], tree : Tree )(implicit ctx : Context ): Tree =
136+ def liftPrefix (defs : mutable.ListBuffer [Tree ], tree : Tree )(using Context ): Tree =
137137 if (isIdempotentExpr(tree)) tree else lift(defs, tree)
138138}
139139
140140/** No lifting at all */
141141object NoLift extends Lifter {
142- def noLift (expr : tpd.Tree )(implicit ctx : Context ): Boolean = true
142+ def noLift (expr : tpd.Tree )(using Context ): Boolean = true
143143}
144144
145145/** Lift all impure arguments */
146146class LiftImpure extends Lifter {
147- def noLift (expr : tpd.Tree )(implicit ctx : Context ): Boolean = tpd.isPureExpr(expr)
147+ def noLift (expr : tpd.Tree )(using Context ): Boolean = tpd.isPureExpr(expr)
148148}
149149object LiftImpure extends LiftImpure
150150
151151/** Lift all impure or complex arguments */
152152class LiftComplex extends Lifter {
153- def noLift (expr : tpd.Tree )(implicit ctx : Context ): Boolean = tpd.isPurePath(expr)
153+ def noLift (expr : tpd.Tree )(using Context ): Boolean = tpd.isPurePath(expr)
154154 override def exprLifter : Lifter = LiftToDefs
155155}
156156object LiftComplex extends LiftComplex
@@ -161,7 +161,7 @@ object LiftErased extends LiftComplex:
161161/** Lift all impure or complex arguments to `def`s */
162162object LiftToDefs extends LiftComplex {
163163 override def liftedFlags : FlagSet = Method
164- override def liftedDef (sym : TermSymbol , rhs : tpd.Tree )(implicit ctx : Context ): tpd.DefDef = tpd.DefDef (sym, rhs)
164+ override def liftedDef (sym : TermSymbol , rhs : tpd.Tree )(using Context ): tpd.DefDef = tpd.DefDef (sym, rhs)
165165}
166166
167167/** Lifter for eta expansion */
@@ -221,7 +221,7 @@ object EtaExpansion extends LiftImpure {
221221 * be OK. After elimByName they are all converted to regular function types anyway.
222222 * But see comment on the `ExprType` case in function `prune` in class `ConstraintHandling`.
223223 */
224- def etaExpand (tree : Tree , mt : MethodType , xarity : Int )(implicit ctx : Context ): untpd.Tree = {
224+ def etaExpand (tree : Tree , mt : MethodType , xarity : Int )(using Context ): untpd.Tree = {
225225 import untpd ._
226226 assert(! ctx.isAfterTyper)
227227 val defs = new mutable.ListBuffer [tpd.Tree ]
0 commit comments