@@ -260,9 +260,10 @@ class ExtractSemanticDB extends Phase:
260
260
261
261
case _ => None
262
262
263
- private inline def (tpe : Types .Type ) isAnnotatedByUnchecked(using Context ) = tpe match
264
- case Types .AnnotatedType (_, annot) => annot.symbol == defn.UncheckedAnnot
265
- case _ => false
263
+ extension (tpe : Types .Type ):
264
+ private inline def isAnnotatedByUnchecked (using Context ) = tpe match
265
+ case Types .AnnotatedType (_, annot) => annot.symbol == defn.UncheckedAnnot
266
+ case _ => false
266
267
267
268
def collectPats (pat : Tree ): List [Tree ] =
268
269
@@ -282,11 +283,12 @@ class ExtractSemanticDB extends Phase:
282
283
283
284
end PatternValDef
284
285
285
- private def (tree : NamedDefTree ) adjustedNameSpan(using Context ): Span =
286
- if tree.span.exists && tree.name.isAnonymousFunctionName || tree.name.isAnonymousClassName
287
- Span (tree.span.point)
288
- else
289
- tree.nameSpan
286
+ extension (tree : NamedDefTree ):
287
+ private def adjustedNameSpan (using Context ): Span =
288
+ if tree.span.exists && tree.name.isAnonymousFunctionName || tree.name.isAnonymousClassName
289
+ Span (tree.span.point)
290
+ else
291
+ tree.nameSpan
290
292
291
293
/** Add semanticdb name of the given symbol to string builder */
292
294
private def addSymName (b : StringBuilder , sym : Symbol )(using Context ): Unit =
@@ -496,12 +498,14 @@ class ExtractSemanticDB extends Phase:
496
498
val start = if idx >= 0 then idx else span.start
497
499
Span (start, start + sym.name.show.length, start)
498
500
499
- private inline def (list : List [List [ValDef ]]) isSingleArg = list match
500
- case (_:: Nil ):: Nil => true
501
- case _ => false
501
+ extension (list : List [List [ValDef ]]):
502
+ private inline def isSingleArg = list match
503
+ case (_:: Nil ):: Nil => true
504
+ case _ => false
502
505
503
- private def (tree : DefDef ) isSetterDef(using Context ): Boolean =
504
- tree.name.isSetterName && tree.mods.is(Accessor ) && tree.vparamss.isSingleArg
506
+ extension (tree : DefDef ):
507
+ private def isSetterDef (using Context ): Boolean =
508
+ tree.name.isSetterName && tree.mods.is(Accessor ) && tree.vparamss.isSingleArg
505
509
506
510
private def findGetters (ctorParams : Set [Names .TermName ], body : List [Tree ])(using Context ): Map [Names .TermName , ValDef ] =
507
511
if ctorParams.isEmpty || body.isEmpty then
@@ -525,26 +529,27 @@ class ExtractSemanticDB extends Phase:
525
529
else limit
526
530
Span (start max limit, end)
527
531
528
- private extension on (span : Span ):
529
- def hasLength : Boolean = span.start != span.end
530
- def zeroLength : Boolean = span.start == span.end
532
+ extension (span : Span ):
533
+ private def hasLength : Boolean = span.start != span.end
534
+ private def zeroLength : Boolean = span.start == span.end
531
535
532
536
/** Consume head while not an import statement.
533
537
* Returns the rest of the list after the first import, or else the empty list
534
538
*/
535
- @ tailrec
536
- private def (body : List [Tree ]) foreachUntilImport(op : Tree => Unit ): List [Tree ] = body match
537
- case ((_ : Import ) :: rest) => rest
538
- case stat :: rest =>
539
- op(stat)
540
- rest.foreachUntilImport(op)
541
- case Nil => Nil
542
-
543
- private def (sym : Symbol ) adjustIfCtorTyparam(using Context ) =
544
- if sym.isType && sym.owner.exists && sym.owner.isConstructor
545
- matchingMemberType(sym, sym.owner.owner)
546
- else
547
- sym
539
+ extension (body : List [Tree ]):
540
+ @ tailrec private def foreachUntilImport (op : Tree => Unit ): List [Tree ] = body match
541
+ case ((_ : Import ) :: rest) => rest
542
+ case stat :: rest =>
543
+ op(stat)
544
+ rest.foreachUntilImport(op)
545
+ case Nil => Nil
546
+
547
+ extension (sym : Symbol ):
548
+ private def adjustIfCtorTyparam (using Context ) =
549
+ if sym.isType && sym.owner.exists && sym.owner.isConstructor
550
+ matchingMemberType(sym, sym.owner.owner)
551
+ else
552
+ sym
548
553
549
554
private inline def matchingMemberType (ctorTypeParam : Symbol , classSym : Symbol )(using Context ) =
550
555
classSym.info.member(ctorTypeParam.name).symbol
0 commit comments