@@ -157,15 +157,19 @@ class ExtractSemanticDB extends Phase {
157157 || sym.is(Synthetic ) || (sym.owner.is(Synthetic ) && ! sym.isAllOf(EnumCase ))
158158 || sym.isAnonymous
159159 || sym.isPrimaryConstructor && excludeDef(sym.owner)
160+ || excludeDefStrict(sym)
161+
162+ private def excludeDefStrict (sym : Symbol )(given Context ): Boolean =
163+ sym.name.is(NameKinds .DefaultGetterName )
160164
161165 private def (sym : Symbol ) isAnonymous(given Context ): Boolean =
162166 sym.isAnonymousClass
163167 || sym.isAnonymousModuleVal
164168 || sym.isAnonymousFunction
165169
166170 /** Uses of this symbol where the reference has given span should be excluded from semanticdb */
167- private def excludeUse (sym : Symbol , span : Span )(given Context ): Boolean =
168- excludeDef(sym) && span.start == span.end
171+ private def excludeUseStrict (sym : Symbol , span : Span )(given Context ): Boolean =
172+ excludeDefStrict(sym) || ( excludeDef(sym) && span.start == span.end)
169173
170174 private def registerOccurrence (sym : Symbol , span : Span , role : SymbolOccurrence .Role )(given Context ): Unit =
171175 val occ = SymbolOccurrence (symbolName(sym), range(span), role)
@@ -174,7 +178,7 @@ class ExtractSemanticDB extends Phase {
174178 generated += occ
175179
176180 private def registerUse (sym : Symbol , span : Span )(given Context ) =
177- if ! excludeUse (sym, span) && ! isWildcard(sym.name) then
181+ if ! excludeUseStrict (sym, span) && ! isWildcard(sym.name) then
178182 registerOccurrence(sym, span, SymbolOccurrence .Role .REFERENCE )
179183
180184 private def registerDefinition (sym : Symbol , span : Span )(given Context ) =
@@ -220,10 +224,10 @@ class ExtractSemanticDB extends Phase {
220224 traverse(tree.self)
221225 tree.body.foreach(traverse)
222226 case tree : Ident =>
223- if tree.name != nme.WILDCARD && ! excludeUse (tree.symbol, tree.span) then
227+ if tree.name != nme.WILDCARD && ! excludeUseStrict (tree.symbol, tree.span) then
224228 registerUse(tree.symbol, tree.span)
225229 case tree : Select =>
226- if ! excludeUse (tree.symbol, tree.span) then
230+ if ! excludeUseStrict (tree.symbol, tree.span) then
227231 val end = tree.span.end
228232 val limit = tree.qualifier.span.end
229233 val start =
@@ -240,6 +244,8 @@ class ExtractSemanticDB extends Phase {
240244 if imported != nme.WILDCARD then
241245 for alt <- tree.expr.tpe.member(imported).alternatives do
242246 registerUse(alt.symbol, sel.imported.span)
247+ if (alt.symbol.companionClass.exists)
248+ registerUse(alt.symbol.companionClass, sel.imported.span)
243249 registerPath(tree.expr)
244250 case tree : Inlined =>
245251 traverse(tree.call)
0 commit comments