@@ -114,8 +114,10 @@ class ExtractSemanticDB extends Phase:
114
114
115
115
override def traverse (tree : Tree )(using Context ): Unit =
116
116
117
- inline def traverseCtorParamTpt (ctorSym : Symbol , tpt : Tree ): Unit =
118
- val tptSym = tpt.symbol
117
+ def traverseCtorParamTpt (ctorSym : Symbol , tpt : Tree )(using Context ): Unit =
118
+ val tptSym = tpt match
119
+ case ByNameTypeTree (tpt) => tpt.symbol
120
+ case tpt => tpt.symbol
119
121
if tptSym.owner == ctorSym
120
122
val found = matchingMemberType(tptSym, ctorSym.owner)
121
123
if tpt.span.hasLength
@@ -131,7 +133,7 @@ class ExtractSemanticDB extends Phase:
131
133
&& tree.pid.span.hasLength
132
134
tree.pid match
133
135
case tree @ Select (qual, name) =>
134
- registerDefinition(tree.symbol, adjustSpanToName(tree.span, qual.span, name), Set .empty)
136
+ registerDefinition(tree.symbol, adjustSpanToName(tree.span, qual.span, name, tree.source ), Set .empty)
135
137
traverse(qual)
136
138
case tree => registerDefinition(tree.symbol, tree.span, Set .empty)
137
139
tree.stats.foreach(traverse)
@@ -206,7 +208,7 @@ class ExtractSemanticDB extends Phase:
206
208
val lhs = tree.lhs.symbol
207
209
val setter = lhs.matchingSetter.orElse(lhs)
208
210
tree.lhs match
209
- case tree @ Select (qual, name) => registerUse(setter, adjustSpanToName(tree.span, qual.span, name))
211
+ case tree @ Select (qual, name) => registerUse(setter, adjustSpanToName(tree.span, qual.span, name, tree.source ))
210
212
case tree => registerUse(setter, tree.span)
211
213
traverseChildren(tree.lhs)
212
214
traverse(tree.rhs)
@@ -217,7 +219,7 @@ class ExtractSemanticDB extends Phase:
217
219
case tree : Select =>
218
220
val qualSpan = tree.qualifier.span
219
221
val sym = tree.symbol.adjustIfCtorTyparam
220
- registerUseGuarded(tree.qualifier.symbol.ifExists, sym, adjustSpanToName(tree.span, qualSpan, tree.name))
222
+ registerUseGuarded(tree.qualifier.symbol.ifExists, sym, adjustSpanToName(tree.span, qualSpan, tree.name, tree.source ))
221
223
if qualSpan.exists && qualSpan.hasLength then
222
224
traverse(tree.qualifier)
223
225
case tree : Import =>
@@ -502,7 +504,7 @@ class ExtractSemanticDB extends Phase:
502
504
}).toMap
503
505
end findGetters
504
506
505
- private def adjustSpanToName (span : Span , qualSpan : Span , name : Name )( using Context ) =
507
+ private def adjustSpanToName (span : Span , qualSpan : Span , name : Name , source : SourceFile ) =
506
508
val end = span.end
507
509
val limit = qualSpan.end
508
510
val start =
@@ -559,8 +561,8 @@ class ExtractSemanticDB extends Phase:
559
561
case _ =>
560
562
symkinds.toSet
561
563
562
- private inline def ctorParams (
563
- vparamss : List [List [ValDef ]], body : List [Tree ])(traverseTpt : => Tree => Unit )(using Context ): Unit =
564
+ private def ctorParams (
565
+ vparamss : List [List [ValDef ]], body : List [Tree ])(traverseTpt : Tree => Unit )(using Context ): Unit =
564
566
@ tu lazy val getters = findGetters(vparamss.flatMap(_.map(_.name)).toSet, body)
565
567
for
566
568
vparams <- vparamss
0 commit comments