diff --git a/compiler/src/dotty/tools/dotc/interactive/Completion.scala b/compiler/src/dotty/tools/dotc/interactive/Completion.scala index 7a808aafb481..68cc0b37fd56 100644 --- a/compiler/src/dotty/tools/dotc/interactive/Completion.scala +++ b/compiler/src/dotty/tools/dotc/interactive/Completion.scala @@ -114,11 +114,12 @@ object Completion { val completions = path match { // Ignore synthetic select from `This` because in code it was `Ident` // See example in dotty.tools.languageserver.CompletionTest.syntheticThis - case Select(qual @ This(_), _) :: _ if qual.span.isSynthetic => completer.scopeCompletions - case Select(qual, _) :: _ => completer.selectionCompletions(qual) - case Import(expr, _) :: _ => completer.directMemberCompletions(expr) - case (_: untpd.ImportSelector) :: Import(expr, _) :: _ => completer.directMemberCompletions(expr) - case _ => completer.scopeCompletions + case Select(qual @ This(_), _) :: _ if qual.span.isSynthetic => completer.scopeCompletions + case Select(qual, _) :: _ if qual.tpe.hasSimpleKind => completer.selectionCompletions(qual) + case Select(qual, _) :: _ => Map.empty + case Import(expr, _) :: _ => completer.directMemberCompletions(expr) + case (_: untpd.ImportSelector) :: Import(expr, _) :: _ => completer.directMemberCompletions(expr) + case _ => completer.scopeCompletions } val describedCompletions = describeCompletions(completions) diff --git a/compiler/test/dotty/tools/dotc/interactive/CustomCompletionTests.scala b/compiler/test/dotty/tools/dotc/interactive/CustomCompletionTests.scala index ddd44ea7daf0..ccf211136d51 100644 --- a/compiler/test/dotty/tools/dotc/interactive/CustomCompletionTests.scala +++ b/compiler/test/dotty/tools/dotc/interactive/CustomCompletionTests.scala @@ -169,3 +169,4 @@ class CustomCompletionTests extends DottyTest: assert(offset == prefix.length) assert(labels.contains("scala.Function2")) + diff --git a/language-server/test/dotty/tools/languageserver/CompletionTest.scala b/language-server/test/dotty/tools/languageserver/CompletionTest.scala index ebeff2f44a29..7e71c0a4c2b1 100644 --- a/language-server/test/dotty/tools/languageserver/CompletionTest.scala +++ b/language-server/test/dotty/tools/languageserver/CompletionTest.scala @@ -887,4 +887,12 @@ class CompletionTest { ) ) } + + @Test def i12465_hkt: Unit = + code"""???.asInstanceOf[scala.collection.Seq].${m1}""".withSource + .completion(m1, Set()) + + @Test def i12465_hkt_alias: Unit = + code"""???.asInstanceOf[Seq].${m1}""".withSource + .completion(m1, Set()) }