Skip to content

Commit 28bd0da

Browse files
authored
Merge pull request #13700 from ghostbuster91/fix-12465
Do not perform completion on higher kinded trees
2 parents 40a1f44 + f64a0fe commit 28bd0da

File tree

3 files changed

+15
-5
lines changed

3 files changed

+15
-5
lines changed

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

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -114,11 +114,12 @@ object Completion {
114114
val completions = path match {
115115
// Ignore synthetic select from `This` because in code it was `Ident`
116116
// See example in dotty.tools.languageserver.CompletionTest.syntheticThis
117-
case Select(qual @ This(_), _) :: _ if qual.span.isSynthetic => completer.scopeCompletions
118-
case Select(qual, _) :: _ => completer.selectionCompletions(qual)
119-
case Import(expr, _) :: _ => completer.directMemberCompletions(expr)
120-
case (_: untpd.ImportSelector) :: Import(expr, _) :: _ => completer.directMemberCompletions(expr)
121-
case _ => completer.scopeCompletions
117+
case Select(qual @ This(_), _) :: _ if qual.span.isSynthetic => completer.scopeCompletions
118+
case Select(qual, _) :: _ if qual.tpe.hasSimpleKind => completer.selectionCompletions(qual)
119+
case Select(qual, _) :: _ => Map.empty
120+
case Import(expr, _) :: _ => completer.directMemberCompletions(expr)
121+
case (_: untpd.ImportSelector) :: Import(expr, _) :: _ => completer.directMemberCompletions(expr)
122+
case _ => completer.scopeCompletions
122123
}
123124

124125
val describedCompletions = describeCompletions(completions)

compiler/test/dotty/tools/dotc/interactive/CustomCompletionTests.scala

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -169,3 +169,4 @@ class CustomCompletionTests extends DottyTest:
169169

170170
assert(offset == prefix.length)
171171
assert(labels.contains("scala.Function2"))
172+

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

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -887,4 +887,12 @@ class CompletionTest {
887887
)
888888
)
889889
}
890+
891+
@Test def i12465_hkt: Unit =
892+
code"""???.asInstanceOf[scala.collection.Seq].${m1}""".withSource
893+
.completion(m1, Set())
894+
895+
@Test def i12465_hkt_alias: Unit =
896+
code"""???.asInstanceOf[Seq].${m1}""".withSource
897+
.completion(m1, Set())
890898
}

0 commit comments

Comments
 (0)