Skip to content

Commit fd67b6e

Browse files
committed
Refactor ExtractSemanticDB
1 parent 3a9fbd0 commit fd67b6e

File tree

1 file changed

+4
-15
lines changed

1 file changed

+4
-15
lines changed

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

Lines changed: 4 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ class ExtractSemanticDB extends Phase:
4949

5050
/** Extractor of symbol occurrences from trees */
5151
class Extractor extends TreeTraverser:
52-
given builder: s.SemanticSymbolBuilder = s.SemanticSymbolBuilder()
52+
given s.SemanticSymbolBuilder = s.SemanticSymbolBuilder()
5353
val synth = SyntheticsExtractor()
5454
given converter: s.TypeOps = s.TypeOps()
5555

@@ -156,26 +156,18 @@ class ExtractSemanticDB extends Phase:
156156
case tree: DefDef if tree.symbol.isConstructor => // ignore typeparams for secondary ctors
157157
tree.trailingParamss.foreach(_.foreach(traverse))
158158
traverse(tree.rhs)
159-
case tree: (DefDef | ValDef) if tree.symbol.isSyntheticWithIdent =>
159+
case tree: (DefDef | ValDef) if tree.symbol.isSyntheticWithIdent || isInventedGiven(tree) =>
160160
tree match
161161
case tree: DefDef =>
162162
tree.paramss.foreach(_.foreach(param => registerSymbolSimple(param.symbol)))
163163
case tree: ValDef if tree.symbol.is(Given) =>
164-
synth.tryFindSynthetic(tree).foreach { synth =>
165-
synthetics += synth
166-
}
164+
synth.tryFindSynthetic(tree).foreach(synthetics.addOne)
167165
traverse(tree.tpt)
168166
case _ =>
169167
if !tree.symbol.isGlobal then
170168
localBodies(tree.symbol) = tree.rhs
171169
// ignore rhs
172170

173-
// `given Int` (syntax sugar of `given given_Int: Int`)
174-
case tree: ValDef if isInventedGiven(tree) =>
175-
synth.tryFindSynthetic(tree).foreach { synth =>
176-
synthetics += synth
177-
}
178-
traverse(tree.tpt)
179171
case PatternValDef(pat, rhs) =>
180172
traverse(rhs)
181173
PatternValDef.collectPats(pat).foreach(traverse)
@@ -210,10 +202,7 @@ class ExtractSemanticDB extends Phase:
210202
case tree: Apply =>
211203
@tu lazy val genParamSymbol: Name => String = tree.fun.symbol.funParamSymbol
212204
traverse(tree.fun)
213-
synth.tryFindSynthetic(tree).foreach { synth =>
214-
synthetics += synth
215-
}
216-
205+
synth.tryFindSynthetic(tree).foreach(synthetics.addOne)
217206
for arg <- tree.args do
218207
arg match
219208
case tree @ NamedArg(name, arg) =>

0 commit comments

Comments
 (0)