File tree 2 files changed +24
-3
lines changed
compiler/src/dotty/tools/dotc/interactive
language-server/test/dotty/tools/languageserver
2 files changed +24
-3
lines changed Original file line number Diff line number Diff line change @@ -416,7 +416,7 @@ object Completion {
416
416
// 1. The extension method is visible under a simple name, by being defined or inherited or imported in a scope enclosing the reference.
417
417
val termCompleter = new Completer (Mode .Term , prefix, pos)
418
418
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) }
420
420
}
421
421
422
422
// 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 {
467
467
! sym.isPackageObject &&
468
468
! sym.is(Artifact ) &&
469
469
(
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)))
472
472
)
473
473
474
474
/** @param site The type to inspect.
Original file line number Diff line number Diff line change @@ -1224,4 +1224,25 @@ class CompletionTest {
1224
1224
|def foo(x: Bar[M]) = x.bar.ma ${m1}"""
1225
1225
.withSource.completion(m1, expected)
1226
1226
}
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
+
1227
1248
}
You can’t perform that action at this time.
0 commit comments