Skip to content

Commit 336ac1f

Browse files
committed
Refactor ExtractSemanticDB
1 parent 3768c04 commit 336ac1f

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

@@ -153,26 +153,18 @@ class ExtractSemanticDB extends Phase:
153153
case tree: DefDef if tree.symbol.isConstructor => // ignore typeparams for secondary ctors
154154
tree.trailingParamss.foreach(_.foreach(traverse))
155155
traverse(tree.rhs)
156-
case tree: (DefDef | ValDef) if tree.symbol.isSyntheticWithIdent =>
156+
case tree: (DefDef | ValDef) if tree.symbol.isSyntheticWithIdent || isInventedGiven(tree) =>
157157
tree match
158158
case tree: DefDef =>
159159
tree.paramss.foreach(_.foreach(param => registerSymbolSimple(param.symbol)))
160160
case tree: ValDef if tree.symbol.is(Given) =>
161-
synth.tryFindSynthetic(tree).foreach { synth =>
162-
synthetics += synth
163-
}
161+
synth.tryFindSynthetic(tree).foreach(synthetics.addOne)
164162
traverse(tree.tpt)
165163
case _ =>
166164
if !tree.symbol.isGlobal then
167165
localBodies(tree.symbol) = tree.rhs
168166
// ignore rhs
169167

170-
// `given Int` (syntax sugar of `given given_Int: Int`)
171-
case tree: ValDef if isInventedGiven(tree) =>
172-
synth.tryFindSynthetic(tree).foreach { synth =>
173-
synthetics += synth
174-
}
175-
traverse(tree.tpt)
176168
case PatternValDef(pat, rhs) =>
177169
traverse(rhs)
178170
PatternValDef.collectPats(pat).foreach(traverse)
@@ -207,10 +199,7 @@ class ExtractSemanticDB extends Phase:
207199
case tree: Apply =>
208200
@tu lazy val genParamSymbol: Name => String = tree.fun.symbol.funParamSymbol
209201
traverse(tree.fun)
210-
synth.tryFindSynthetic(tree).foreach { synth =>
211-
synthetics += synth
212-
}
213-
202+
synth.tryFindSynthetic(tree).foreach(synthetics.addOne)
214203
for arg <- tree.args do
215204
arg match
216205
case tree @ NamedArg(name, arg) =>

0 commit comments

Comments
 (0)