Skip to content

Commit 7498555

Browse files
scheglovCommit Queue
authored andcommitted
Completion. Fix for NPE when complete at the start of a DartDoc.
Bug: https://buganizer.corp.google.com/issues/414299463 Change-Id: I70d38a825b5b8eb3d9e3ce0a0dbbe95ea6e5774f Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/425120 Reviewed-by: Brian Wilkerson <[email protected]> Commit-Queue: Konstantin Shcheglov <[email protected]>
1 parent 2cf84f8 commit 7498555

File tree

2 files changed

+17
-1
lines changed

2 files changed

+17
-1
lines changed

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

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -543,7 +543,11 @@ class TokenData {
543543
(currentToken.offset == selectionOffset &&
544544
!currentToken.isKeywordOrIdentifier)) &&
545545
!currentToken.isEof) {
546-
currentToken = currentToken.previous!;
546+
if (currentToken.previous case var previous?) {
547+
currentToken = previous;
548+
} else {
549+
return null;
550+
}
547551
}
548552
if (currentToken.isEof) {
549553
return null;

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

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -338,6 +338,18 @@ suggestions
338338
''');
339339
}
340340

341+
Future<void> test_start() async {
342+
// There was a crash because we tried to walk before the (only) token
343+
// of the documentation comment.
344+
await computeSuggestions('''
345+
^/// hello
346+
class A {}
347+
''');
348+
assertResponse(r'''
349+
suggestions
350+
''');
351+
}
352+
341353
Future<void> test_topLevelGetter() async {
342354
allowedIdentifiers = const {'myTopLevelGetter'};
343355
await computeSuggestions('''

0 commit comments

Comments
 (0)