Skip to content

Commit 34ee7b1

Browse files
committed
Polishings
1 parent 6f086b8 commit 34ee7b1

File tree

1 file changed

+8
-7
lines changed

1 file changed

+8
-7
lines changed

compiler/src/dotty/tools/dotc/semanticdb/ExtractSemanticDB.scala

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,8 @@ class ExtractSemanticDB extends Phase {
3535
override def isCheckable: Boolean = false
3636

3737
override def run(implicit ctx: Context): Unit = {
38-
val extract = Extractor()
3938
val unit = ctx.compilationUnit
39+
val extract = Extractor()
4040
extract.traverse(unit.tpdTree)
4141
ExtractSemanticDB.write(unit.source, extract.occurrences.toList)
4242
}
@@ -54,11 +54,12 @@ class ExtractSemanticDB extends Phase {
5454
override def default(key: Int) = Set[Symbol]()
5555
}
5656

57-
private val generated = new mutable.HashSet[SymbolOccurrence]
58-
5957
/** The extracted symbol occurrences */
6058
val occurrences = new mutable.ListBuffer[SymbolOccurrence]()
6159

60+
/** The symbol occurrences generated so far, as a set */
61+
private val generated = new mutable.HashSet[SymbolOccurrence]
62+
6263
/** Add semanticdb name of the given symbol to string builder */
6364
private def addSymName(b: StringBuilder, sym: Symbol)(given ctx: Context): Unit =
6465

@@ -83,7 +84,7 @@ class ExtractSemanticDB extends Phase {
8384
if alts.tail.nonEmpty then
8485
val idx = alts.indexOf(sym)
8586
assert(idx >= 0)
86-
b.append('+').append(idx.toString)
87+
b.append('+').append(idx)
8788

8889
def addDescriptor(sym: Symbol): Unit =
8990
if sym.is(ModuleClass) then
@@ -98,8 +99,7 @@ class ExtractSemanticDB extends Phase {
9899
else if sym.isType then b.append('#')
99100
else if sym.isRealMethod then
100101
b.append('('); addOverloadIdx(sym); b.append(").")
101-
else if sym.isTerm then b.append('.')
102-
else throw new AssertionError(i"unhandled symbol: $sym: ${sym.info} with ${sym.flagsString}")
102+
else b.append('.')
103103

104104
/** The index of local symbol `sym`. Symbols with the same name and
105105
* the same starting position have the same index.
@@ -140,9 +140,11 @@ class ExtractSemanticDB extends Phase {
140140
val (endLine, endCol) = lineCol(span.end)
141141
Some(Range(startLine, startCol, endLine, endCol))
142142

143+
/** Definitions of this symbol should be excluded from semanticdb */
143144
private def excludeDef(sym: Symbol)(given Context): Boolean =
144145
!sym.exists || sym.isLocalDummy || sym.is(Synthetic)
145146

147+
/** Uses of this symbol where the reference has given span should be excluded from semanticdb */
146148
private def excludeUse(sym: Symbol, span: Span)(given Context): Boolean =
147149
excludeDef(sym) && span.start == span.end
148150

@@ -157,7 +159,6 @@ class ExtractSemanticDB extends Phase {
157159
registerOccurrence(sym, span, SymbolOccurrence.Role.REFERENCE)
158160

159161
override def traverse(tree: Tree)(given ctx: Context): Unit =
160-
//println(i"reg $tree")
161162
tree match
162163
case tree: DefTree if !excludeDef(tree.symbol) =>
163164
registerOccurrence(tree.symbol, tree.span, SymbolOccurrence.Role.DEFINITION)

0 commit comments

Comments
 (0)