@@ -36,8 +36,7 @@ object QuotesImpl {
36
36
37
37
class QuotesImpl private (using val ctx : Context ) extends Quotes , QuoteUnpickler , QuoteMatching :
38
38
39
- private val yCheck : Boolean =
40
- ctx.settings.Ycheck .value(using ctx).exists(x => x == " all" || x == " macros" )
39
+ private val xCheckMacro : Boolean = ctx.settings.XcheckMacros .value
41
40
42
41
extension [T ](self : scala.quoted.Expr [T ])
43
42
def show : String =
@@ -254,10 +253,10 @@ class QuotesImpl private (using val ctx: Context) extends Quotes, QuoteUnpickler
254
253
object DefDef extends DefDefModule :
255
254
def apply (symbol : Symbol , rhsFn : List [List [Tree ]] => Option [Term ]): DefDef =
256
255
withDefaultPos(tpd.DefDef (symbol.asTerm, prefss =>
257
- yCheckedOwners(yCheckValidExpr (rhsFn(prefss)), symbol).getOrElse(tpd.EmptyTree )
256
+ xCheckMacroedOwners(xCheckMacroValidExpr (rhsFn(prefss)), symbol).getOrElse(tpd.EmptyTree )
258
257
))
259
258
def copy (original : Tree )(name : String , paramss : List [ParamClause ], tpt : TypeTree , rhs : Option [Term ]): DefDef =
260
- tpd.cpy.DefDef (original)(name.toTermName, paramss, tpt, yCheckedOwners (rhs, original.symbol).getOrElse(tpd.EmptyTree ))
259
+ tpd.cpy.DefDef (original)(name.toTermName, paramss, tpt, xCheckMacroedOwners (rhs, original.symbol).getOrElse(tpd.EmptyTree ))
261
260
def unapply (ddef : DefDef ): (String , List [ParamClause ], TypeTree , Option [Term ]) =
262
261
(ddef.name.toString, ddef.paramss, ddef.tpt, optional(ddef.rhs))
263
262
end DefDef
@@ -283,9 +282,9 @@ class QuotesImpl private (using val ctx: Context) extends Quotes, QuoteUnpickler
283
282
284
283
object ValDef extends ValDefModule :
285
284
def apply (symbol : Symbol , rhs : Option [Term ]): ValDef =
286
- tpd.ValDef (symbol.asTerm, yCheckedOwners(yCheckValidExpr (rhs), symbol).getOrElse(tpd.EmptyTree ))
285
+ tpd.ValDef (symbol.asTerm, xCheckMacroedOwners(xCheckMacroValidExpr (rhs), symbol).getOrElse(tpd.EmptyTree ))
287
286
def copy (original : Tree )(name : String , tpt : TypeTree , rhs : Option [Term ]): ValDef =
288
- tpd.cpy.ValDef (original)(name.toTermName, tpt, yCheckedOwners(yCheckValidExpr (rhs), original.symbol).getOrElse(tpd.EmptyTree ))
287
+ tpd.cpy.ValDef (original)(name.toTermName, tpt, xCheckMacroedOwners(xCheckMacroValidExpr (rhs), original.symbol).getOrElse(tpd.EmptyTree ))
289
288
def unapply (vdef : ValDef ): (String , TypeTree , Option [Term ]) =
290
289
(vdef.name.toString, vdef.tpt, optional(vdef.rhs))
291
290
@@ -558,9 +557,9 @@ class QuotesImpl private (using val ctx: Context) extends Quotes, QuoteUnpickler
558
557
559
558
object NamedArg extends NamedArgModule :
560
559
def apply (name : String , arg : Term ): NamedArg =
561
- withDefaultPos(tpd.NamedArg (name.toTermName, yCheckValidExpr (arg)))
560
+ withDefaultPos(tpd.NamedArg (name.toTermName, xCheckMacroValidExpr (arg)))
562
561
def copy (original : Tree )(name : String , arg : Term ): NamedArg =
563
- tpd.cpy.NamedArg (original)(name.toTermName, yCheckValidExpr (arg))
562
+ tpd.cpy.NamedArg (original)(name.toTermName, xCheckMacroValidExpr (arg))
564
563
def unapply (x : NamedArg ): (String , Term ) =
565
564
(x.name.toString, x.value)
566
565
end NamedArg
@@ -582,10 +581,10 @@ class QuotesImpl private (using val ctx: Context) extends Quotes, QuoteUnpickler
582
581
583
582
object Apply extends ApplyModule :
584
583
def apply (fun : Term , args : List [Term ]): Apply =
585
- yCheckValidExprs (args)
584
+ xCheckMacroValidExprs (args)
586
585
withDefaultPos(tpd.Apply (fun, args))
587
586
def copy (original : Tree )(fun : Term , args : List [Term ]): Apply =
588
- yCheckValidExprs (args)
587
+ xCheckMacroValidExprs (args)
589
588
tpd.cpy.Apply (original)(fun, args)
590
589
def unapply (x : Apply ): (Term , List [Term ]) =
591
590
(x.fun, x.args)
@@ -657,9 +656,9 @@ class QuotesImpl private (using val ctx: Context) extends Quotes, QuoteUnpickler
657
656
658
657
object Typed extends TypedModule :
659
658
def apply (expr : Term , tpt : TypeTree ): Typed =
660
- withDefaultPos(tpd.Typed (yCheckValidExpr (expr), tpt))
659
+ withDefaultPos(tpd.Typed (xCheckMacroValidExpr (expr), tpt))
661
660
def copy (original : Tree )(expr : Term , tpt : TypeTree ): Typed =
662
- tpd.cpy.Typed (original)(yCheckValidExpr (expr), tpt)
661
+ tpd.cpy.Typed (original)(xCheckMacroValidExpr (expr), tpt)
663
662
def unapply (x : Typed ): (Term , TypeTree ) =
664
663
(x.expr, x.tpt)
665
664
end Typed
@@ -681,9 +680,9 @@ class QuotesImpl private (using val ctx: Context) extends Quotes, QuoteUnpickler
681
680
682
681
object Assign extends AssignModule :
683
682
def apply (lhs : Term , rhs : Term ): Assign =
684
- withDefaultPos(tpd.Assign (lhs, yCheckValidExpr (rhs)))
683
+ withDefaultPos(tpd.Assign (lhs, xCheckMacroValidExpr (rhs)))
685
684
def copy (original : Tree )(lhs : Term , rhs : Term ): Assign =
686
- tpd.cpy.Assign (original)(lhs, yCheckValidExpr (rhs))
685
+ tpd.cpy.Assign (original)(lhs, xCheckMacroValidExpr (rhs))
687
686
def unapply (x : Assign ): (Term , Term ) =
688
687
(x.lhs, x.rhs)
689
688
end Assign
@@ -746,7 +745,7 @@ class QuotesImpl private (using val ctx: Context) extends Quotes, QuoteUnpickler
746
745
object Lambda extends LambdaModule :
747
746
def apply (owner : Symbol , tpe : MethodType , rhsFn : (Symbol , List [Tree ]) => Tree ): Block =
748
747
val meth = dotc.core.Symbols .newSymbol(owner, nme.ANON_FUN , Synthetic | Method , tpe)
749
- tpd.Closure (meth, tss => yCheckedOwners(yCheckValidExpr (rhsFn(meth, tss.head.map(withDefaultPos))), meth))
748
+ tpd.Closure (meth, tss => xCheckMacroedOwners(xCheckMacroValidExpr (rhsFn(meth, tss.head.map(withDefaultPos))), meth))
750
749
751
750
def unapply (tree : Block ): Option [(List [ValDef ], Term )] = tree match {
752
751
case Block ((ddef @ DefDef (_, TermParamClause (params) :: Nil , _, Some (body))) :: Nil , Closure (meth, _))
@@ -766,9 +765,9 @@ class QuotesImpl private (using val ctx: Context) extends Quotes, QuoteUnpickler
766
765
767
766
object If extends IfModule :
768
767
def apply (cond : Term , thenp : Term , elsep : Term ): If =
769
- withDefaultPos(tpd.If (yCheckValidExpr (cond), yCheckValidExpr (thenp), yCheckValidExpr (elsep)))
768
+ withDefaultPos(tpd.If (xCheckMacroValidExpr (cond), xCheckMacroValidExpr (thenp), xCheckMacroValidExpr (elsep)))
770
769
def copy (original : Tree )(cond : Term , thenp : Term , elsep : Term ): If =
771
- tpd.cpy.If (original)(yCheckValidExpr (cond), yCheckValidExpr (thenp), yCheckValidExpr (elsep))
770
+ tpd.cpy.If (original)(xCheckMacroValidExpr (cond), xCheckMacroValidExpr (thenp), xCheckMacroValidExpr (elsep))
772
771
def unapply (tree : If ): (Term , Term , Term ) =
773
772
(tree.cond, tree.thenp, tree.elsep)
774
773
end If
@@ -792,10 +791,10 @@ class QuotesImpl private (using val ctx: Context) extends Quotes, QuoteUnpickler
792
791
793
792
object Match extends MatchModule :
794
793
def apply (selector : Term , cases : List [CaseDef ]): Match =
795
- withDefaultPos(tpd.Match (yCheckValidExpr (selector), cases))
794
+ withDefaultPos(tpd.Match (xCheckMacroValidExpr (selector), cases))
796
795
797
796
def copy (original : Tree )(selector : Term , cases : List [CaseDef ]): Match =
798
- tpd.cpy.Match (original)(yCheckValidExpr (selector), cases)
797
+ tpd.cpy.Match (original)(xCheckMacroValidExpr (selector), cases)
799
798
800
799
def unapply (x : Match ): (Term , List [CaseDef ]) =
801
800
(x.scrutinee, x.cases)
@@ -842,9 +841,9 @@ class QuotesImpl private (using val ctx: Context) extends Quotes, QuoteUnpickler
842
841
843
842
object Try extends TryModule :
844
843
def apply (expr : Term , cases : List [CaseDef ], finalizer : Option [Term ]): Try =
845
- withDefaultPos(tpd.Try (yCheckValidExpr (expr), cases, finalizer.getOrElse(tpd.EmptyTree )))
844
+ withDefaultPos(tpd.Try (xCheckMacroValidExpr (expr), cases, finalizer.getOrElse(tpd.EmptyTree )))
846
845
def copy (original : Tree )(expr : Term , cases : List [CaseDef ], finalizer : Option [Term ]): Try =
847
- tpd.cpy.Try (original)(yCheckValidExpr (expr), cases, finalizer.getOrElse(tpd.EmptyTree ))
846
+ tpd.cpy.Try (original)(xCheckMacroValidExpr (expr), cases, finalizer.getOrElse(tpd.EmptyTree ))
848
847
def unapply (x : Try ): (Term , List [CaseDef ], Option [Term ]) =
849
848
(x.body, x.cases, optional(x.finalizer))
850
849
end Try
@@ -867,9 +866,9 @@ class QuotesImpl private (using val ctx: Context) extends Quotes, QuoteUnpickler
867
866
868
867
object Return extends ReturnModule :
869
868
def apply (expr : Term , from : Symbol ): Return =
870
- withDefaultPos(tpd.Return (yCheckValidExpr (expr), from))
869
+ withDefaultPos(tpd.Return (xCheckMacroValidExpr (expr), from))
871
870
def copy (original : Tree )(expr : Term , from : Symbol ): Return =
872
- tpd.cpy.Return (original)(yCheckValidExpr (expr), tpd.ref(from))
871
+ tpd.cpy.Return (original)(xCheckMacroValidExpr (expr), tpd.ref(from))
873
872
def unapply (x : Return ): (Term , Symbol ) =
874
873
(x.expr, x.from.symbol)
875
874
end Return
@@ -891,10 +890,10 @@ class QuotesImpl private (using val ctx: Context) extends Quotes, QuoteUnpickler
891
890
892
891
object Repeated extends RepeatedModule :
893
892
def apply (elems : List [Term ], elemtpt : TypeTree ): Repeated =
894
- yCheckValidExprs (elems)
893
+ xCheckMacroValidExprs (elems)
895
894
withDefaultPos(tpd.SeqLiteral (elems, elemtpt))
896
895
def copy (original : Tree )(elems : List [Term ], elemtpt : TypeTree ): Repeated =
897
- yCheckValidExprs (elems)
896
+ xCheckMacroValidExprs (elems)
898
897
tpd.cpy.SeqLiteral (original)(elems, elemtpt)
899
898
def unapply (x : Repeated ): (List [Term ], TypeTree ) =
900
899
(x.elems, x.elemtpt)
@@ -917,9 +916,9 @@ class QuotesImpl private (using val ctx: Context) extends Quotes, QuoteUnpickler
917
916
918
917
object Inlined extends InlinedModule :
919
918
def apply (call : Option [Tree ], bindings : List [Definition ], expansion : Term ): Inlined =
920
- withDefaultPos(tpd.Inlined (call.getOrElse(tpd.EmptyTree ), bindings.map { case b : tpd.MemberDef => b }, yCheckValidExpr (expansion)))
919
+ withDefaultPos(tpd.Inlined (call.getOrElse(tpd.EmptyTree ), bindings.map { case b : tpd.MemberDef => b }, xCheckMacroValidExpr (expansion)))
921
920
def copy (original : Tree )(call : Option [Tree ], bindings : List [Definition ], expansion : Term ): Inlined =
922
- tpd.cpy.Inlined (original)(call.getOrElse(tpd.EmptyTree ), bindings.asInstanceOf [List [tpd.MemberDef ]], yCheckValidExpr (expansion))
921
+ tpd.cpy.Inlined (original)(call.getOrElse(tpd.EmptyTree ), bindings.asInstanceOf [List [tpd.MemberDef ]], xCheckMacroValidExpr (expansion))
923
922
def unapply (x : Inlined ): (Option [Tree /* Term | TypeTree */ ], List [Definition ], Term ) =
924
923
(optional(x.call), x.bindings, x.body)
925
924
end Inlined
@@ -972,9 +971,9 @@ class QuotesImpl private (using val ctx: Context) extends Quotes, QuoteUnpickler
972
971
973
972
object While extends WhileModule :
974
973
def apply (cond : Term , body : Term ): While =
975
- withDefaultPos(tpd.WhileDo (yCheckValidExpr (cond), yCheckValidExpr (body)))
974
+ withDefaultPos(tpd.WhileDo (xCheckMacroValidExpr (cond), xCheckMacroValidExpr (body)))
976
975
def copy (original : Tree )(cond : Term , body : Term ): While =
977
- tpd.cpy.WhileDo (original)(yCheckValidExpr (cond), yCheckValidExpr (body))
976
+ tpd.cpy.WhileDo (original)(xCheckMacroValidExpr (cond), xCheckMacroValidExpr (body))
978
977
def unapply (x : While ): (Term , Term ) =
979
978
(x.cond, x.body)
980
979
end While
@@ -1501,7 +1500,7 @@ class QuotesImpl private (using val ctx: Context) extends Quotes, QuoteUnpickler
1501
1500
1502
1501
object TermParamClause extends TermParamClauseModule :
1503
1502
def apply (params : List [ValDef ]): TermParamClause =
1504
- if yCheck then
1503
+ if xCheckMacro then
1505
1504
val implicitParams = params.count(_.symbol.is(dotc.core.Flags .Implicit ))
1506
1505
assert(implicitParams == 0 || implicitParams == params.size, " Expected all or non of parameters to be implicit" )
1507
1506
params
@@ -2781,26 +2780,26 @@ class QuotesImpl private (using val ctx: Context) extends Quotes, QuoteUnpickler
2781
2780
/** Checks that all definitions in this tree have the expected owner.
2782
2781
* Nested definitions are ignored and assumed to be correct by construction.
2783
2782
*/
2784
- private def yCheckedOwners (tree : Option [Tree ], owner : Symbol ): tree.type =
2785
- if yCheck then
2783
+ private def xCheckMacroedOwners (tree : Option [Tree ], owner : Symbol ): tree.type =
2784
+ if xCheckMacro then
2786
2785
tree match
2787
2786
case Some (tree) =>
2788
- yCheckOwners (tree, owner)
2787
+ xCheckMacroOwners (tree, owner)
2789
2788
case _ =>
2790
2789
tree
2791
2790
2792
2791
/** Checks that all definitions in this tree have the expected owner.
2793
2792
* Nested definitions are ignored and assumed to be correct by construction.
2794
2793
*/
2795
- private def yCheckedOwners (tree : Tree , owner : Symbol ): tree.type =
2796
- if yCheck then
2797
- yCheckOwners (tree, owner)
2794
+ private def xCheckMacroedOwners (tree : Tree , owner : Symbol ): tree.type =
2795
+ if xCheckMacro then
2796
+ xCheckMacroOwners (tree, owner)
2798
2797
tree
2799
2798
2800
2799
/** Checks that all definitions in this tree have the expected owner.
2801
2800
* Nested definitions are ignored and assumed to be correct by construction.
2802
2801
*/
2803
- private def yCheckOwners (tree : Tree , owner : Symbol ): Unit =
2802
+ private def xCheckMacroOwners (tree : Tree , owner : Symbol ): Unit =
2804
2803
new tpd.TreeTraverser {
2805
2804
def traverse (t : Tree )(using Context ): Unit =
2806
2805
t match
@@ -2825,14 +2824,14 @@ class QuotesImpl private (using val ctx: Context) extends Quotes, QuoteUnpickler
2825
2824
case _ => traverseChildren(t)
2826
2825
}.traverse(tree)
2827
2826
2828
- private def yCheckValidExprs (terms : List [Term ]): terms.type =
2829
- if yCheck then terms.foreach(yCheckValidExpr )
2827
+ private def xCheckMacroValidExprs (terms : List [Term ]): terms.type =
2828
+ if xCheckMacro then terms.foreach(xCheckMacroValidExpr )
2830
2829
terms
2831
- private def yCheckValidExpr (termOpt : Option [Term ]): termOpt.type =
2832
- if yCheck then termOpt.foreach(yCheckValidExpr )
2830
+ private def xCheckMacroValidExpr (termOpt : Option [Term ]): termOpt.type =
2831
+ if xCheckMacro then termOpt.foreach(xCheckMacroValidExpr )
2833
2832
termOpt
2834
- private def yCheckValidExpr (term : Term ): term.type =
2835
- if yCheck then
2833
+ private def xCheckMacroValidExpr (term : Term ): term.type =
2834
+ if xCheckMacro then
2836
2835
assert(! term.tpe.widenDealias.isInstanceOf [dotc.core.Types .MethodicType ],
2837
2836
" Reference to a method must be eta-expanded before it is used as an expression: " + term.show)
2838
2837
term
0 commit comments