Skip to content

Commit a6397fb

Browse files
committed
Address review comments
1 parent 413462d commit a6397fb

File tree

2 files changed

+31
-10
lines changed

2 files changed

+31
-10
lines changed

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

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -624,7 +624,7 @@ object Interactive {
624624

625625
/** Are the two names the same? */
626626
def sameName(n0: Name, n1: Name): Boolean = {
627-
n0.stripModuleClassSuffix.toString == n1.stripModuleClassSuffix.toString
627+
n0.stripModuleClassSuffix.toTermName eq n1.stripModuleClassSuffix.toTermName
628628
}
629629

630630
/**
@@ -640,13 +640,11 @@ object Interactive {
640640
tree match {
641641
case Import(_, selectors) =>
642642
selectors.exists {
643-
case Thicket(_ :: Ident(rename) :: Nil) =>
644-
rename.stripModuleClassSuffix.toString == toName.stripModuleClassSuffix.toString
645-
case _ =>
646-
false
643+
case Thicket(_ :: Ident(rename) :: Nil) => sameName(rename, toName)
644+
case _ => false
647645
}
648-
case _ =>
649-
false
646+
case _ =>
647+
false
650648
}
651649
}
652650

@@ -696,7 +694,7 @@ object Interactive {
696694
case pkg: PackageDef if immediatelyEnclosesRenaming(toName, pkg) =>
697695
EmptyTree
698696
case template: Template if immediatelyEnclosesRenaming(toName, template) =>
699-
cpy.Template(template)(constr = DefDef(template.constr.symbol.asTerm), self = template.self, body = Nil)
697+
cpy.Template(template)(constr = DefDef(template.constr.symbol.asTerm), body = Nil)
700698
case block @ Block(stats, expr) if immediatelyEnclosesRenaming(toName, block) =>
701699
EmptyTree
702700
case other =>
@@ -706,7 +704,7 @@ object Interactive {
706704
}
707705

708706
val trees = {
709-
val trees = enclosing match {
707+
val enclosedTrees = enclosing match {
710708
case Some(pkg: PackageDef) =>
711709
pkg.stats
712710
case Some(template: Template) =>
@@ -720,7 +718,7 @@ object Interactive {
720718

721719
// These trees may contain a new renaming of the same symbol to the same name, so we may
722720
// have to cut some branches
723-
val trimmedTrees = trees.map(removeBlockWithRenaming(toName, _))
721+
val trimmedTrees = enclosedTrees.map(removeBlockWithRenaming(toName, _))
724722

725723
// Some of these trees may not be `NameTrees`. Those that are not are wrapped in a
726724
// synthetic val def, so that everything can go inside `SourceNamedTree`s.

language-server/test/dotty/tools/languageserver/RenameTest.scala

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -192,4 +192,27 @@ class RenameTest {
192192
testRename(m16, Set(m3 to m4, m5 to m6, m9 to m10, m15 to m16))
193193
}
194194

195+
@Test def renameImportWithRenaming: Unit = {
196+
def testRename(m: CodeMarker) =
197+
withSources(
198+
code"""object A { class ${m1}C${m2} }""",
199+
code"""import A.${m3}C${m4}
200+
object O {
201+
class B extends ${m5}C${m6} {
202+
import A.{${m7}C${m8} => Renamed}
203+
def foo = new Renamed
204+
}
205+
}"""
206+
).rename(m, "NewName", Set(m1 to m2, m3 to m4, m5 to m6, m7 to m8))
207+
208+
testRename(m1)
209+
testRename(m2)
210+
testRename(m3)
211+
testRename(m4)
212+
testRename(m5)
213+
testRename(m6)
214+
testRename(m7)
215+
testRename(m8)
216+
}
217+
195218
}

0 commit comments

Comments
 (0)