Skip to content

Commit cf3c247

Browse files
committed
Address review comments
1 parent 59b489d commit cf3c247

File tree

2 files changed

+14
-11
lines changed

2 files changed

+14
-11
lines changed

compiler/src/dotty/tools/dotc/interactive/Interactive.scala

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ object Interactive {
2424
object Include {
2525
case class Set private (val bits: Int) extends AnyVal {
2626
def | (that: Set): Set = Set(bits | that.bits)
27+
def except(that: Set): Set = Set(bits & ~that.bits)
2728

2829
def isEmpty: Boolean = bits == 0
2930
def isOverridden: Boolean = (bits & overridden.bits) != 0
@@ -57,6 +58,9 @@ object Interactive {
5758

5859
/** Include imports in the results */
5960
val imports: Set = Set(1 << 5)
61+
62+
/** All the flags */
63+
val all: Set = Set(~0)
6064
}
6165

6266
/** Does this tree define a symbol ? */

language-server/src/dotty/tools/languageserver/DottyLanguageServer.scala

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -356,26 +356,25 @@ class DottyLanguageServer extends LanguageServer
356356
val syms = Interactive.enclosingSourceSymbols(path, pos)
357357
val newName = params.getNewName
358358

359+
def findRenamedReferences(trees: List[SourceTree], syms: List[Symbol], withName: Name): List[SourceTree] = {
360+
val includes = Include.all
361+
syms.flatMap { sym =>
362+
Interactive.findTreesMatching(trees, Include.all, sym, t => Interactive.sameName(t.name, withName))
363+
}
364+
}
365+
359366
val refs =
360367
path match {
361368
// Selected a renaming in an import node
362369
case Thicket(_ :: (rename: Ident) :: Nil) :: (_: Import) :: rest if rename.pos.contains(pos.pos) =>
363-
val includes = Include.references | Include.linkedClass | Include.imports
364-
syms.flatMap { sym =>
365-
Interactive.findTreesMatching(uriTrees, includes, sym, t => Interactive.sameName(t.name, rename.name))
366-
}
370+
findRenamedReferences(uriTrees, syms, rename.name)
367371

368372
// Selected a reference that has been renamed
369373
case (nameTree: NameTree) :: rest if Interactive.isRenamed(nameTree) =>
370-
val includes = Include.references | Include.linkedClass | Include.imports
371-
syms.flatMap { sym =>
372-
Interactive.findTreesMatching(uriTrees, includes, sym, t => Interactive.sameName(t.name, nameTree.name))
373-
}
374+
findRenamedReferences(uriTrees, syms, nameTree.name)
374375

375376
case _ =>
376-
val includes =
377-
Include.references | Include.definitions | Include.linkedClass | Include.overriding | Include.imports
378-
377+
val includes = Include.all.except(Include.overridden)
379378
syms.flatMap { sym =>
380379
val trees = driver.allTreesContaining(sym.name.sourceModuleName.toString)
381380
Interactive.findTreesMatching(trees, includes, sym, t => Interactive.sameName(t.name, sym.name))

0 commit comments

Comments
 (0)