@@ -22,8 +22,7 @@ import org.scalatest.compatible.Assertion
22
22
23
23
object DiagramsMacro {
24
24
// Transform the input expression by parsing out the anchor and generate expression that can support diagram rendering
25
- def parse (qctx : QuoteContext )(expr : qctx.tasty.Term ): qctx.tasty.Term = {
26
- implicit val qctx2 : qctx.type = qctx // TODO qctx should be given
25
+ def parse (using qctx : QuoteContext )(expr : qctx.tasty.Term ): qctx.tasty.Term = {
27
26
import qctx .tasty ._
28
27
import util ._
29
28
@@ -67,7 +66,7 @@ object DiagramsMacro {
67
66
(diagrams, others :+ arg)
68
67
case (arg, tp) =>
69
68
if (tp.widen.typeSymbol.show.startsWith(" scala.Function" )) (diagrams, others :+ arg)
70
- else (diagrams :+ parse(qctx)( arg), others)
69
+ else (diagrams :+ parse(arg), others)
71
70
}
72
71
}
73
72
@@ -87,7 +86,7 @@ object DiagramsMacro {
87
86
case sel @ Select (qual, name) =>
88
87
type T
89
88
implicit val objTp : quoted.Type [T ] = qual.tpe.seal.asInstanceOf [quoted.Type [T ]]
90
- val obj = parse(qctx)( qual).seal.cast[DiagrammedExpr [T ]]
89
+ val obj = parse(qual).seal.cast[DiagrammedExpr [T ]]
91
90
val anchor = getAnchorForSelect(sel.asInstanceOf [Select ])
92
91
93
92
' {
@@ -97,13 +96,13 @@ object DiagramsMacro {
97
96
98
97
case Block (stats, expr) =>
99
98
// call parse recursively using the expr argument if it is a block
100
- Block (stats, parse(qctx)( expr))
99
+ Block (stats, parse(expr))
101
100
case Apply (sel @ Select (lhs, op), rhs :: Nil ) =>
102
101
val anchor = getAnchorForSelect(sel.asInstanceOf [Select ])
103
102
op match {
104
103
case " ||" | " |" =>
105
- val left = parse(qctx)( lhs).seal.cast[DiagrammedExpr [Boolean ]]
106
- val right = parse(qctx)( rhs).seal.cast[DiagrammedExpr [Boolean ]]
104
+ val left = parse(lhs).seal.cast[DiagrammedExpr [Boolean ]]
105
+ val right = parse(rhs).seal.cast[DiagrammedExpr [Boolean ]]
107
106
108
107
' {
109
108
val l = $left
@@ -114,8 +113,8 @@ object DiagramsMacro {
114
113
}
115
114
}.unseal
116
115
case " &&" | " &" =>
117
- val left = parse(qctx)( lhs).seal.cast[DiagrammedExpr [Boolean ]]
118
- val right = parse(qctx)( rhs).seal.cast[DiagrammedExpr [Boolean ]]
116
+ val left = parse(lhs).seal.cast[DiagrammedExpr [Boolean ]]
117
+ val right = parse(rhs).seal.cast[DiagrammedExpr [Boolean ]]
119
118
' {
120
119
val l = $left
121
120
if (! l.value) l
@@ -127,7 +126,7 @@ object DiagramsMacro {
127
126
case _ =>
128
127
type T
129
128
implicit val tpT : quoted.Type [T ] = lhs.tpe.seal.asInstanceOf [quoted.Type [T ]]
130
- val left = parse(qctx)( lhs)
129
+ val left = parse(lhs)
131
130
132
131
val methTp = sel.tpe.widen.asInstanceOf [MethodType ]
133
132
val (diagrams, others) = handleArgs(methTp.paramTypes, rhs :: Nil )
@@ -146,7 +145,7 @@ object DiagramsMacro {
146
145
type T
147
146
implicit val tpT : quoted.Type [T ] = lhs.tpe.seal.asInstanceOf [quoted.Type [T ]]
148
147
149
- val left = parse(qctx)( lhs)
148
+ val left = parse(lhs)
150
149
val anchor = getAnchorForSelect(sel.asInstanceOf [Select ])
151
150
152
151
val methTp = sel.tpe.widen.asInstanceOf [MethodType ]
@@ -165,8 +164,8 @@ object DiagramsMacro {
165
164
if isImplicitMethodType(f.tpe) =>
166
165
type T
167
166
implicit val tpT : quoted.Type [T ] = lhs.tpe.seal.asInstanceOf [quoted.Type [T ]]
168
- val left = parse(qctx)( lhs)
169
- val right = parse(qctx)( rhs)
167
+ val left = parse(lhs)
168
+ val right = parse(rhs)
170
169
171
170
val anchor = getAnchorForSelect(sel.asInstanceOf [Select ])
172
171
@@ -187,7 +186,7 @@ object DiagramsMacro {
187
186
type T
188
187
implicit val tpT : quoted.Type [T ] = lhs.tpe.seal.asInstanceOf [quoted.Type [T ]]
189
188
190
- val left = parse(qctx)( lhs)
189
+ val left = parse(lhs)
191
190
val anchor = getAnchorForSelect(sel.asInstanceOf [Select ])
192
191
193
192
val methTp = fun.tpe.widen.asInstanceOf [MethodType ]
@@ -207,7 +206,7 @@ object DiagramsMacro {
207
206
type T
208
207
implicit val tpT : quoted.Type [T ] = lhs.tpe.seal.asInstanceOf [quoted.Type [T ]]
209
208
210
- val left = parse(qctx)( lhs)
209
+ val left = parse(lhs)
211
210
val anchor = getAnchorForSelect(sel.asInstanceOf [Select ])
212
211
213
212
let(left) { l =>
@@ -224,9 +223,9 @@ object DiagramsMacro {
224
223
def transform (
225
224
helper : Expr [(DiagrammedExpr [Boolean ], Any , String , source.Position ) => Assertion ],
226
225
condition : Expr [Boolean ], pos : Expr [source.Position ], clue : Expr [Any ], sourceText : String
227
- )(implicit qctx : QuoteContext ): Expr [Assertion ] = {
226
+ )(using qctx : QuoteContext ): Expr [Assertion ] = {
228
227
import qctx .tasty ._
229
- val diagExpr = parse(qctx)( condition.unseal.underlyingArgument).seal.cast[DiagrammedExpr [Boolean ]]
228
+ val diagExpr = parse(condition.unseal.underlyingArgument).seal.cast[DiagrammedExpr [Boolean ]]
230
229
' { $helper($diagExpr, $clue, $ {Expr (sourceText)}, $pos) }
231
230
}
232
231
}
0 commit comments