@@ -260,9 +260,10 @@ class ExtractSemanticDB extends Phase:
260260
261261 case _ => None
262262
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
266267
267268 def collectPats (pat : Tree ): List [Tree ] =
268269
@@ -282,11 +283,12 @@ class ExtractSemanticDB extends Phase:
282283
283284 end PatternValDef
284285
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
290292
291293 /** Add semanticdb name of the given symbol to string builder */
292294 private def addSymName (b : StringBuilder , sym : Symbol )(using Context ): Unit =
@@ -496,12 +498,14 @@ class ExtractSemanticDB extends Phase:
496498 val start = if idx >= 0 then idx else span.start
497499 Span (start, start + sym.name.show.length, start)
498500
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
502505
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
505509
506510 private def findGetters (ctorParams : Set [Names .TermName ], body : List [Tree ])(using Context ): Map [Names .TermName , ValDef ] =
507511 if ctorParams.isEmpty || body.isEmpty then
@@ -525,26 +529,27 @@ class ExtractSemanticDB extends Phase:
525529 else limit
526530 Span (start max limit, end)
527531
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
531535
532536 /** Consume head while not an import statement.
533537 * Returns the rest of the list after the first import, or else the empty list
534538 */
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
548553
549554 private inline def matchingMemberType (ctorTypeParam : Symbol , classSym : Symbol )(using Context ) =
550555 classSym.info.member(ctorTypeParam.name).symbol
0 commit comments