Skip to content

Commit b8dbdda

Browse files
FMorschelCommit Queue
authored and
Commit Queue
committed
[DAS] Fixes instance members completion on dart docs
[email protected] Fixes: #59724 Change-Id: I1e80e62e553c5411ee69d58dbe941b61bc575a81 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/411361 Reviewed-by: Keerti Parthasarathy <[email protected]> Commit-Queue: Samuel Rawlins <[email protected]> Auto-Submit: Felipe Morschel <[email protected]> Reviewed-by: Samuel Rawlins <[email protected]>
1 parent a9e37e2 commit b8dbdda

File tree

2 files changed

+48
-3
lines changed

2 files changed

+48
-3
lines changed

pkg/analysis_server/lib/src/services/completion/dart/in_scope_completion_pass.dart

+10-2
Original file line numberDiff line numberDiff line change
@@ -2265,12 +2265,20 @@ class InScopeCompletionPass extends SimpleAstVisitor<void> {
22652265
mustBeAssignable: mustBeAssignable,
22662266
).addDeclarationsThroughImportPrefix(element);
22672267
} else {
2268-
declarationHelper(
2268+
var helper = declarationHelper(
22692269
mustBeAssignable: mustBeAssignable,
22702270
preferNonInvocation:
22712271
element is InterfaceElement2 &&
22722272
state.request.shouldSuggestTearOff(element),
2273-
).addStaticMembersOfElement(element);
2273+
);
2274+
if (node.parent is CommentReference) {
2275+
if (element is InterfaceElement2) {
2276+
helper.addInstanceMembersOfType(element.thisType);
2277+
} else if (element is ExtensionElement2) {
2278+
helper.addMembersFromExtensionElement(element);
2279+
}
2280+
}
2281+
helper.addStaticMembersOfElement(element);
22742282
}
22752283
}
22762284
}

pkg/analysis_server/test/services/completion/dart/location/dart_doc_test.dart

+38-1
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,6 @@ suggestions
123123
''');
124124
}
125125

126-
@FailingTest(issue: 'https://github.com/dart-lang/sdk/issues/59724')
127126
Future<void> test_field2() async {
128127
allowedIdentifiers = const {'myField'};
129128
await computeSuggestions('''
@@ -175,6 +174,44 @@ suggestions
175174
''');
176175
}
177176

177+
Future<void> test_getter2() async {
178+
allowedIdentifiers = const {'myGetter'};
179+
await computeSuggestions('''
180+
/// This is unrelated but should suggest name [MyExtension1.myG^].
181+
var myVariable = 0;
182+
183+
extension MyExtension1 {
184+
int get myGetter => 0;
185+
}
186+
''');
187+
assertResponse(r'''
188+
replacement
189+
left: 3
190+
suggestions
191+
myGetter
192+
kind: getter
193+
''');
194+
}
195+
196+
Future<void> test_getter3() async {
197+
allowedIdentifiers = const {'myGetter'};
198+
await computeSuggestions('''
199+
/// This is unrelated but should suggest name [MyExtensionType1.myG^].
200+
var myVariable = 0;
201+
202+
extension type MyExtensionType1(int i) {
203+
int get myGetter => 0;
204+
}
205+
''');
206+
assertResponse(r'''
207+
replacement
208+
left: 3
209+
suggestions
210+
myGetter
211+
kind: getter
212+
''');
213+
}
214+
178215
Future<void> test_importPrefix() async {
179216
allowedIdentifiers = const {'async'};
180217
await computeSuggestions('''

0 commit comments

Comments
 (0)