@@ -66,7 +66,7 @@ class ExtractSemanticDB extends Phase {
66
66
isJavaIdentifierStart(str.head) && str.tail.forall(isJavaIdentifierPart)
67
67
68
68
def addName (name : Name ) =
69
- val str = name.toString.replaceAllLiterally( " package " , " <???> " )
69
+ val str = name.toString
70
70
if isJavaIdent(str) then b.append(str)
71
71
else b.append('`' ).append(str).append('`' )
72
72
@@ -157,15 +157,19 @@ class ExtractSemanticDB extends Phase {
157
157
|| sym.is(Synthetic ) || (sym.owner.is(Synthetic ) && ! sym.isAllOf(EnumCase ))
158
158
|| sym.isAnonymous
159
159
|| sym.isPrimaryConstructor && excludeDef(sym.owner)
160
+ || excludeDefStrict(sym)
161
+
162
+ private def excludeDefStrict (sym : Symbol )(given Context ): Boolean =
163
+ sym.name.is(NameKinds .DefaultGetterName )
160
164
161
165
private def (sym : Symbol ) isAnonymous(given Context ): Boolean =
162
166
sym.isAnonymousClass
163
167
|| sym.isAnonymousModuleVal
164
168
|| sym.isAnonymousFunction
165
169
166
170
/** 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)
169
173
170
174
private def registerOccurrence (sym : Symbol , span : Span , role : SymbolOccurrence .Role )(given Context ): Unit =
171
175
val occ = SymbolOccurrence (symbolName(sym), range(span), role)
@@ -174,7 +178,7 @@ class ExtractSemanticDB extends Phase {
174
178
generated += occ
175
179
176
180
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
178
182
registerOccurrence(sym, span, SymbolOccurrence .Role .REFERENCE )
179
183
180
184
private def registerDefinition (sym : Symbol , span : Span )(given Context ) =
@@ -220,10 +224,10 @@ class ExtractSemanticDB extends Phase {
220
224
traverse(tree.self)
221
225
tree.body.foreach(traverse)
222
226
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
224
228
registerUse(tree.symbol, tree.span)
225
229
case tree : Select =>
226
- if ! excludeUse (tree.symbol, tree.span) then
230
+ if ! excludeUseStrict (tree.symbol, tree.span) then
227
231
val end = tree.span.end
228
232
val limit = tree.qualifier.span.end
229
233
val start =
@@ -240,6 +244,8 @@ class ExtractSemanticDB extends Phase {
240
244
if imported != nme.WILDCARD then
241
245
for alt <- tree.expr.tpe.member(imported).alternatives do
242
246
registerUse(alt.symbol, sel.imported.span)
247
+ if (alt.symbol.companionClass.exists)
248
+ registerUse(alt.symbol.companionClass, sel.imported.span)
243
249
registerPath(tree.expr)
244
250
case tree : Inlined =>
245
251
traverse(tree.call)
0 commit comments