File tree Expand file tree Collapse file tree 2 files changed +24
-3
lines changed
compiler/src/dotty/tools/dotc/interactive
language-server/test/dotty/tools/languageserver Expand file tree Collapse file tree 2 files changed +24
-3
lines changed Original file line number Diff line number Diff line change @@ -416,7 +416,7 @@ object Completion {
416416 // 1. The extension method is visible under a simple name, by being defined or inherited or imported in a scope enclosing the reference.
417417 val termCompleter = new Completer (Mode .Term , prefix, pos)
418418 val extMethodsInScope = termCompleter.scopeCompletions.toList.flatMap {
419- case (name, denots) => denots.collect { case d : SymDenotation => (d.termRef, name.asTermName) }
419+ case (name, denots) => denots.collect { case d : SymDenotation if d.isTerm => (d.termRef, name.asTermName) }
420420 }
421421
422422 // 2. The extension method is a member of some given instance that is visible at the point of the reference.
@@ -467,8 +467,8 @@ object Completion {
467467 ! sym.isPackageObject &&
468468 ! sym.is(Artifact ) &&
469469 (
470- (mode.is(Mode .Term ) && sym.isTerm)
471- || (mode.is(Mode .Type ) && (sym.isType || sym.isStableMember))
470+ (mode.is(Mode .Term ) && ( sym.isTerm || sym.is( ModuleClass ) )
471+ || (mode.is(Mode .Type ) && (sym.isType || sym.isStableMember)))
472472 )
473473
474474 /** @param site The type to inspect.
Original file line number Diff line number Diff line change @@ -1224,4 +1224,25 @@ class CompletionTest {
12241224 |def foo(x: Bar[M]) = x.bar.ma ${m1}"""
12251225 .withSource.completion(m1, expected)
12261226 }
1227+
1228+ @ Test def packageCompletionsOutsideImport : Unit = {
1229+ val expected = Set (
1230+ (" java" , Module , " java" ),
1231+ (" javax" , Module , " javax" ),
1232+ )
1233+ code """ object Foo { ja ${m1}"""
1234+ .withSource.completion(m1, expected)
1235+ }
1236+
1237+ @ Test def topLevelPackagesCompletionsOutsideImport : Unit = {
1238+ val expected = Set (
1239+ (" example" , Module , " example" ),
1240+ )
1241+ code """ package example:
1242+ | def foo = ""
1243+ |
1244+ |def main = exa ${m1}"""
1245+ .withSource.completion(m1, expected)
1246+ }
1247+
12271248}
You can’t perform that action at this time.
0 commit comments