@@ -385,8 +385,7 @@ void CodeCompletionString::print(raw_ostream &OS) const {
385
385
case ChunkKind::DeclAttrKeyword:
386
386
case ChunkKind::DeclAttrParamKeyword:
387
387
case ChunkKind::OverrideKeyword:
388
- case ChunkKind::ThrowsKeyword:
389
- case ChunkKind::RethrowsKeyword:
388
+ case ChunkKind::EffectsSpecifierKeyword:
390
389
case ChunkKind::DeclIntroducer:
391
390
case ChunkKind::Text:
392
391
case ChunkKind::LeftParen:
@@ -1376,8 +1375,7 @@ Optional<unsigned> CodeCompletionString::getFirstTextChunkIndex(
1376
1375
case ChunkKind::Whitespace:
1377
1376
case ChunkKind::AccessControlKeyword:
1378
1377
case ChunkKind::OverrideKeyword:
1379
- case ChunkKind::ThrowsKeyword:
1380
- case ChunkKind::RethrowsKeyword:
1378
+ case ChunkKind::EffectsSpecifierKeyword:
1381
1379
case ChunkKind::DeclIntroducer:
1382
1380
case ChunkKind::CallParameterColon:
1383
1381
case ChunkKind::CallParameterTypeBegin:
@@ -1431,8 +1429,7 @@ void CodeCompletionString::getName(raw_ostream &OS) const {
1431
1429
--i;
1432
1430
continue ;
1433
1431
}
1434
- case ChunkKind::ThrowsKeyword:
1435
- case ChunkKind::RethrowsKeyword:
1432
+ case ChunkKind::EffectsSpecifierKeyword:
1436
1433
shouldPrint = true ; // Even when they're annotations.
1437
1434
break ;
1438
1435
default :
@@ -2640,9 +2637,16 @@ class CompletionLookup final : public swift::VisibleDeclConsumer {
2640
2637
genericSig, includeDefaultArgs);
2641
2638
}
2642
2639
2643
- static void addThrows (CodeCompletionResultBuilder &Builder,
2644
- const AnyFunctionType *AFT,
2645
- const AbstractFunctionDecl *AFD) {
2640
+ static void addEffectsSpecifiers (CodeCompletionResultBuilder &Builder,
2641
+ const AnyFunctionType *AFT,
2642
+ const AbstractFunctionDecl *AFD) {
2643
+ assert (AFT != nullptr );
2644
+
2645
+ // 'async'.
2646
+ if ((AFD && AFD->hasAsync ()) || AFT->isAsync ())
2647
+ Builder.addAnnotatedAsync ();
2648
+
2649
+ // 'throws' or 'rethrows'.
2646
2650
if (AFD && AFD->getAttrs ().hasAttribute <RethrowsAttr>())
2647
2651
Builder.addAnnotatedRethrows ();
2648
2652
else if (AFT->isThrowing ())
@@ -2800,7 +2804,7 @@ class CompletionLookup final : public swift::VisibleDeclConsumer {
2800
2804
else
2801
2805
Builder.addAnnotatedRightParen ();
2802
2806
2803
- addThrows (Builder, AFT, AFD);
2807
+ addEffectsSpecifiers (Builder, AFT, AFD);
2804
2808
2805
2809
if (AFD &&
2806
2810
AFD->isImplicitlyUnwrappedOptional ())
@@ -2947,14 +2951,14 @@ class CompletionLookup final : public swift::VisibleDeclConsumer {
2947
2951
Builder.addRightParen ();
2948
2952
} else if (trivialTrailingClosure) {
2949
2953
Builder.addBraceStmtWithCursor (" { code }" );
2950
- addThrows (Builder, AFT, FD);
2954
+ addEffectsSpecifiers (Builder, AFT, FD);
2951
2955
} else {
2952
2956
Builder.addLeftParen ();
2953
2957
addCallArgumentPatterns (Builder, AFT, FD->getParameters (),
2954
2958
FD->getGenericSignatureOfContext (),
2955
2959
includeDefaultArgs);
2956
2960
Builder.addRightParen ();
2957
- addThrows (Builder, AFT, FD);
2961
+ addEffectsSpecifiers (Builder, AFT, FD);
2958
2962
}
2959
2963
2960
2964
// Build type annotation.
@@ -3095,7 +3099,7 @@ class CompletionLookup final : public swift::VisibleDeclConsumer {
3095
3099
else
3096
3100
Builder.addAnnotatedRightParen ();
3097
3101
3098
- addThrows (Builder, ConstructorType, CD);
3102
+ addEffectsSpecifiers (Builder, ConstructorType, CD);
3099
3103
3100
3104
if (!Result.hasValue ())
3101
3105
Result = ConstructorType->getResult ();
0 commit comments