Skip to content

Commit 0aef2d2

Browse files
committed
Address review comments
1 parent a9b762b commit 0aef2d2

File tree

12 files changed

+84
-78
lines changed

12 files changed

+84
-78
lines changed

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ class RenameTest {
99

1010
@Test def rename0: Unit = {
1111
def testRenameFrom(m: CodeMarker) =
12-
code"class ${m1}Foo$m2 { new ${m3}Foo$m4 }".withSource.rename(m, "Bar", List(m1 to m2, m3 to m4))
12+
code"class ${m1}Foo$m2 { new ${m3}Foo$m4 }".withSource.rename(m, "Bar", Set(m1 to m2, m3 to m4))
1313
testRenameFrom(m1)
1414
testRenameFrom(m3)
1515
}
@@ -20,7 +20,7 @@ class RenameTest {
2020
withSources(
2121
code"class ${m1}Foo$m2 { new ${m3}Foo$m4 }",
2222
code"class Bar { new ${m5}Foo$m6 }"
23-
).rename(m, "Bar", List(m1 to m2, m3 to m4, m5 to m6))
23+
).rename(m, "Bar", Set(m1 to m2, m3 to m4, m5 to m6))
2424

2525
testRenameFrom(m1)
2626
testRenameFrom(m3)

language-server/test/dotty/tools/languageserver/util/CodeTester.scala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -90,12 +90,12 @@ class CodeTester(sources: List[SourceWithPositions], actions: List[Action]) {
9090
*
9191
* @param marker The position from which to ask for renaming.
9292
* @param newName The new name to give to the symbol.
93-
* @param expected The expected list of positions to change.
93+
* @param expected The expected positions to change.
9494
* @return This `CodeTester` after performing the action.
9595
*
9696
* @see dotty.tools.languageserver.util.actions.CodeRename
9797
*/
98-
def rename(marker: CodeMarker, newName: String, expected: List[CodeRange]): CodeTester =
98+
def rename(marker: CodeMarker, newName: String, expected: Set[CodeRange]): CodeTester =
9999
doAction(new CodeRename(marker, newName, expected)) // TODO apply changes to the sources and positions
100100

101101
/**

language-server/test/dotty/tools/languageserver/util/actions/Action.scala

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,4 @@ trait Action {
2222
/** The server that this action targets. */
2323
def server: Exec[DottyLanguageServer] = implicitly[TestServer].server
2424

25-
// FIXME
26-
// Workaroud an issue with implicit functions and phantomArgLift.
27-
// That phase will dispear which should fix this issue. Just remove calls to param when that hapens
28-
protected def fix[T](f: PositionContext => T): PosCtx[T] = f(implicitly[PositionContext])
2925
}

language-server/test/dotty/tools/languageserver/util/actions/CodeCompletion.scala

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import dotty.tools.languageserver.util.embedded.CodeMarker
55
import dotty.tools.languageserver.util.server.TestFile
66

77
import org.eclipse.lsp4j.CompletionItemKind
8+
import org.junit.Assert.assertEquals
89

910
import scala.collection.JavaConverters._
1011

@@ -25,6 +26,7 @@ class CodeCompletion(override val marker: CodeMarker,
2526
val completionResults = result.getRight.getItems.asScala.toSet.map { item =>
2627
(item.getLabel, item.getKind, item.getDetail)
2728
}
29+
assertEquals(expected, completionResults)
2830
}
2931

3032
override def show: PositionContext.PosCtx[String] =

language-server/test/dotty/tools/languageserver/util/actions/CodeDefinition.scala

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@ import dotty.tools.languageserver.util.embedded.CodeMarker
55

66
import scala.collection.JavaConverters._
77

8+
import org.junit.Assert.assertEquals
9+
810
/**
911
* An action requesting for the definition of the symbol inside `range`.
1012
* This action corresponds to the `textDocument/definition` method of the Language Server Protocol.
@@ -15,12 +17,10 @@ import scala.collection.JavaConverters._
1517
class CodeDefinition(override val range: CodeRange, expected: Seq[CodeRange]) extends ActionOnRange {
1618

1719
override def onMarker(marker: CodeMarker): Exec[Unit] = {
18-
val results = server.definition(fix(marker.toTextDocumentPositionParams)).get()
19-
assert(results.size == expected.size, s"Expected ${expected.size} matches, found ${results.size}")
20-
results.asScala.zip(expected).foreach {
21-
case (result, expected) =>
22-
assert(result == expected.toLocation, s"Expected ${expected.toLocation}, found $result.")
23-
}
20+
val results = server.definition(marker.toTextDocumentPositionParams).get().asScala.toSeq
21+
val expectedLocations = expected.map(_.toLocation)
22+
23+
assertEquals(expectedLocations, results)
2424
}
2525

2626
override def show: PositionContext.PosCtx[String] =

language-server/test/dotty/tools/languageserver/util/actions/CodeDocumentHighlight.scala

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package dotty.tools.languageserver.util.actions
33
import dotty.tools.languageserver.util.embedded.CodeMarker
44
import dotty.tools.languageserver.util.{CodeRange, PositionContext}
55
import org.eclipse.lsp4j._
6+
import org.junit.Assert.assertEquals
67

78
import scala.collection.JavaConverters._
89

@@ -19,14 +20,11 @@ class CodeDocumentHighlight(override val range: CodeRange,
1920
expected: Seq[(CodeRange, DocumentHighlightKind)]) extends ActionOnRange {
2021

2122
override def onMarker(marker: CodeMarker): Exec[Unit] = {
22-
val (references, kinds) = expected.unzip
23-
val results = server.documentHighlight(fix(marker.toTextDocumentPositionParams)).get()
24-
assert(results.size() == references.size, results)
25-
assert(references.size == kinds.length, results)
26-
results.asScala.zip(references).zip(kinds).foreach { case ((dhl, ref), kind) =>
27-
assert(dhl.getKind == kind, results)
28-
assert(dhl.getRange == ref.toRange, results)
29-
}
23+
val expectedPairs = expected.map { case (codeRange, kind) => (codeRange.toRange, kind) }
24+
val results = server.documentHighlight(marker.toTextDocumentPositionParams).get()
25+
val resultPairs = results.asScala.map { result => (result.getRange, result.getKind) }
26+
27+
assertEquals(expectedPairs, resultPairs)
3028
}
3129

3230
override def show: PositionContext.PosCtx[String] = {

language-server/test/dotty/tools/languageserver/util/actions/CodeDocumentSymbol.scala

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package dotty.tools.languageserver.util.actions
22

33
import dotty.tools.languageserver.util.embedded.CodeMarker
44
import dotty.tools.languageserver.util.{PositionContext, SymInfo}
5+
import org.junit.Assert.assertEquals
56

67
import scala.collection.JavaConverters._
78

@@ -16,11 +17,10 @@ import scala.collection.JavaConverters._
1617
class CodeDocumentSymbol(override val marker: CodeMarker, expected: Seq[SymInfo]) extends ActionOnMarker {
1718

1819
override def execute(): Exec[Unit] = {
19-
val results = server.documentSymbol(marker.toDocumentSymbolParams).get()
20-
assert(results.size == expected.size, results)
21-
for ((symInfo, expected) <- results.asScala.zip(expected)) {
22-
assert(symInfo == expected.toSymInformation, results)
23-
}
20+
val results = server.documentSymbol(marker.toDocumentSymbolParams).get().asScala
21+
val expectedSymInfos = expected.map(_.toSymInformation)
22+
23+
assertEquals(expectedSymInfos, results)
2424
}
2525

2626
override def show: PositionContext.PosCtx[String] =

language-server/test/dotty/tools/languageserver/util/actions/CodeHover.scala

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import dotty.tools.languageserver.util.embedded.CodeMarker
44
import dotty.tools.languageserver.util.{CodeRange, PositionContext}
55

66
import org.eclipse.lsp4j._
7+
import org.junit.Assert.{assertEquals, assertNull, assertTrue}
78

89
import PositionContext._
910

@@ -17,14 +18,14 @@ import PositionContext._
1718
class CodeHover(override val range: CodeRange, expected: String) extends ActionOnRange {
1819

1920
override def onMarker(marker: CodeMarker): Exec[Unit] = {
20-
val result = server.hover(fix(marker.toTextDocumentPositionParams)).get()
21-
assert(result.getRange == null)
22-
if (expected == "") assert(result.getContents == null, "Expected null contents in " + result)
21+
val result = server.hover(marker.toTextDocumentPositionParams).get()
22+
assertNull(result.getRange)
23+
if (expected.isEmpty) assertNull(result.getContents)
2324
else {
24-
assert(result.getContents.size() == 1, result)
25+
assertEquals(1, result.getContents.size)
2526
val content = result.getContents.get(0)
26-
assert(content.isLeft, "Expected left but was " + content)
27-
assert(content.getLeft == expected, s"Expected $expected but was ${content.getLeft}")
27+
assertTrue(content.isLeft)
28+
assertEquals(expected, content.getLeft)
2829
}
2930
}
3031

language-server/test/dotty/tools/languageserver/util/actions/CodeReferences.scala

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@ package dotty.tools.languageserver.util.actions
33
import dotty.tools.languageserver.util.embedded.CodeMarker
44
import dotty.tools.languageserver.util.{CodeRange, PositionContext}
55

6+
import org.junit.Assert.assertEquals
7+
68
import scala.collection.JavaConverters._
79

810
/**
@@ -18,9 +20,10 @@ class CodeReferences(override val range: CodeRange,
1820
withDecl: Boolean) extends ActionOnRange {
1921

2022
override def onMarker(marker: CodeMarker): Exec[Unit] = {
21-
val results = server.references(fix(marker.toReferenceParams(withDecl))).get()
22-
assert(results.size() == expected.size)
23-
results.asScala.zip(expected).foreach { case (loc, ref) => assert(loc == ref.toLocation, results) }
23+
val expectedLocations = expected.map(_.toLocation)
24+
val results = server.references(marker.toReferenceParams(withDecl)).get().asScala
25+
26+
assertEquals(expectedLocations, results)
2427
}
2528

2629
override def show: PositionContext.PosCtx[String] =

language-server/test/dotty/tools/languageserver/util/actions/CodeRename.scala

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@ package dotty.tools.languageserver.util.actions
33
import dotty.tools.languageserver.util.embedded.CodeMarker
44
import dotty.tools.languageserver.util.{CodeRange, PositionContext}
55

6+
import org.junit.Assert.{assertEquals, assertNull}
7+
68
import scala.collection.JavaConverters._
79

810
/**
@@ -15,18 +17,15 @@ import scala.collection.JavaConverters._
1517
*/
1618
class CodeRename(override val marker: CodeMarker,
1719
newName: String,
18-
expected: List[CodeRange]) extends ActionOnMarker {
20+
expected: Set[CodeRange]) extends ActionOnMarker {
1921

2022
override def execute(): Exec[Unit] = {
2123
val results = server.rename(marker.toRenameParams(newName)).get()
22-
assert(results.getDocumentChanges == null, results)
23-
val editItems = results.getChanges.values().asScala.flatMap(_.asScala) // TODO use a Map
24-
assert(expected.forall { exp =>
25-
editItems.exists { editItem =>
26-
editItem.getNewText == newName &&
27-
editItem.getRange == exp.toRange
28-
}
29-
}, results)
24+
val changes = results.getChanges.asScala.mapValues(_.asScala.toSet.map(ch => (ch.getNewText, ch.getRange)))
25+
val expectedChanges = expected.groupBy(_.file.uri).mapValues(_.map(range => (newName, range.toRange)))
26+
27+
assertNull(results.getDocumentChanges)
28+
assertEquals(expectedChanges, changes)
3029
}
3130

3231
override def show: PositionContext.PosCtx[String] =

0 commit comments

Comments
 (0)