Skip to content

Commit 4890eac

Browse files
committed
Address review comments
1 parent b21e082 commit 4890eac

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
@@ -372,26 +372,25 @@ class DottyLanguageServer extends LanguageServer
372372
val syms = Interactive.enclosingSourceSymbols(path, pos)
373373
val newName = params.getNewName
374374

375+
def findRenamedReferences(trees: List[SourceTree], syms: List[Symbol], withName: Name): List[SourceTree] = {
376+
val includes = Include.all
377+
syms.flatMap { sym =>
378+
Interactive.findTreesMatching(trees, Include.all, sym, t => Interactive.sameName(t.name, withName))
379+
}
380+
}
381+
375382
val refs =
376383
path match {
377384
// Selected a renaming in an import node
378385
case Thicket(_ :: (rename: Ident) :: Nil) :: (_: Import) :: rest if rename.pos.contains(pos.pos) =>
379-
val includes = Include.references | Include.linkedClass | Include.imports
380-
syms.flatMap { sym =>
381-
Interactive.findTreesMatching(uriTrees, includes, sym, t => Interactive.sameName(t.name, rename.name))
382-
}
386+
findRenamedReferences(uriTrees, syms, rename.name)
383387

384388
// Selected a reference that has been renamed
385389
case (nameTree: NameTree) :: rest if Interactive.isRenamed(nameTree) =>
386-
val includes = Include.references | Include.linkedClass | Include.imports
387-
syms.flatMap { sym =>
388-
Interactive.findTreesMatching(uriTrees, includes, sym, t => Interactive.sameName(t.name, nameTree.name))
389-
}
390+
findRenamedReferences(uriTrees, syms, nameTree.name)
390391

391392
case _ =>
392-
val includes =
393-
Include.references | Include.definitions | Include.linkedClass | Include.overriding | Include.imports
394-
393+
val includes = Include.all.except(Include.overridden)
395394
syms.flatMap { sym =>
396395
val trees = driver.allTreesContaining(sym.name.sourceModuleName.toString)
397396
Interactive.findTreesMatching(trees, includes, sym, t => Interactive.sameName(t.name, sym.name))

0 commit comments

Comments
 (0)