@@ -181,26 +181,30 @@ object QuoteMatcher {
181
181
case _ => None
182
182
end TypeTreeTypeTest
183
183
184
- val res = (scrutinee, pattern) match
184
+ val res = pattern match
185
185
186
186
/* Term hole */
187
187
// Match a scala.internal.Quoted.patternHole typed as a repeated argument and return the scrutinee tree
188
- case ( Typed (s, tpt1), Typed ( TypeApply (patternHole, tpt :: Nil ), tpt2) )
188
+ case Typed (TypeApply (patternHole, tpt :: Nil ), tpt2)
189
189
if patternHole.symbol.eq(defn.QuotedRuntimePatterns_patternHole ) &&
190
- s.tpe <:< tpt.tpe &&
191
- tpt2.tpe.derivesFrom(defn.RepeatedParamClass ) =>
192
- matched(scrutinee)
190
+ tpt2.tpe.derivesFrom(defn.RepeatedParamClass ) =>
191
+ scrutinee match
192
+ case Typed (s, tpt1) if s.tpe <:< tpt.tpe => matched(scrutinee)
193
+ case _ => notMatched
193
194
194
195
/* Term hole */
195
196
// Match a scala.internal.Quoted.patternHole and return the scrutinee tree
196
- case ( ClosedPatternTerm (scrutinee), TypeApply (patternHole, tpt :: Nil ) )
197
+ case TypeApply (patternHole, tpt :: Nil )
197
198
if patternHole.symbol.eq(defn.QuotedRuntimePatterns_patternHole ) &&
198
199
scrutinee.tpe <:< tpt.tpe =>
199
- matched(scrutinee)
200
+ scrutinee match
201
+ case ClosedPatternTerm (scrutinee) => matched(scrutinee)
202
+ case _ => notMatched
203
+
200
204
201
205
/* Higher order term hole */
202
206
// Matches an open term and wraps it into a lambda that provides the free variables
203
- case (_, pattern @ Apply (TypeApply (Ident (_), List (TypeTree ())), SeqLiteral (args, _) :: Nil ) )
207
+ case Apply (TypeApply (Ident (_), List (TypeTree ())), SeqLiteral (args, _) :: Nil )
204
208
if pattern.symbol.eq(defn.QuotedRuntimePatterns_higherOrderHole ) =>
205
209
val names : List [TermName ] = args.map {
206
210
case Block (List (DefDef (nme.ANON_FUN , _, _, Apply (Ident (name), _))), _) => name.asTermName
@@ -221,12 +225,8 @@ object QuoteMatcher {
221
225
}
222
226
matched(Closure (meth, bodyFn))
223
227
224
- //
225
- // Match two equivalent trees
226
- //
227
-
228
228
/* Match type ascription (b) */
229
- case (_, Typed (expr2, _) ) =>
229
+ case Typed (expr2, _) =>
230
230
scrutinee =?= expr2
231
231
232
232
case _ =>
0 commit comments