@@ -59,6 +59,7 @@ using namespace swift;
59
59
using namespace ide ;
60
60
61
61
using CommandWordsPairs = std::vector<std::pair<StringRef, StringRef>>;
62
+ using NotRecommendedReason = CodeCompletionResult::NotRecommendedReason;
62
63
63
64
enum CodeCompletionCommandKind {
64
65
none,
@@ -819,7 +820,7 @@ void CodeCompletionResultBuilder::setAssociatedDecl(const Decl *D) {
819
820
}
820
821
821
822
if (D->getAttrs ().getDeprecated (D->getASTContext ()))
822
- setNotRecommended (CodeCompletionResult ::Deprecated);
823
+ setNotRecommended (NotRecommendedReason ::Deprecated);
823
824
}
824
825
825
826
namespace {
@@ -2089,8 +2090,7 @@ class CompletionLookup final : public swift::VisibleDeclConsumer {
2089
2090
Builder.addBaseName (MD->getNameStr ());
2090
2091
Builder.addTypeAnnotation (" Module" );
2091
2092
if (Pair.second )
2092
- Builder.setNotRecommended (
2093
- CodeCompletionResult::NotRecommendedReason::RedundantImport);
2093
+ Builder.setNotRecommended (NotRecommendedReason::RedundantImport);
2094
2094
}
2095
2095
}
2096
2096
@@ -2114,9 +2114,7 @@ class CompletionLookup final : public swift::VisibleDeclConsumer {
2114
2114
}
2115
2115
}
2116
2116
2117
- void addModuleName (
2118
- ModuleDecl *MD,
2119
- Optional<CodeCompletionResult::NotRecommendedReason> R = None) {
2117
+ void addModuleName (ModuleDecl *MD, Optional<NotRecommendedReason> R = None) {
2120
2118
2121
2119
// Don't add underscored cross-import overlay modules.
2122
2120
if (MD->getDeclaringModuleIfCrossImportOverlay ())
@@ -2150,11 +2148,11 @@ class CompletionLookup final : public swift::VisibleDeclConsumer {
2150
2148
continue ;
2151
2149
2152
2150
auto MD = ModuleDecl::create (ModuleName, Ctx);
2153
- Optional<CodeCompletionResult:: NotRecommendedReason> Reason = None;
2151
+ Optional<NotRecommendedReason> Reason = None;
2154
2152
2155
2153
// Imported modules are not recommended.
2156
2154
if (ImportedModules.count (MD->getNameStr ()) != 0 )
2157
- Reason = CodeCompletionResult:: NotRecommendedReason::RedundantImport;
2155
+ Reason = NotRecommendedReason::RedundantImport;
2158
2156
2159
2157
addModuleName (MD, Reason);
2160
2158
}
@@ -2517,9 +2515,8 @@ class CompletionLookup final : public swift::VisibleDeclConsumer {
2517
2515
return Type ();
2518
2516
}
2519
2517
2520
- void analyzeActorIsolation (
2521
- const ValueDecl *VD, Type T, bool &implicitlyAsync,
2522
- Optional<CodeCompletionResult::NotRecommendedReason> &NotRecommended) {
2518
+ void analyzeActorIsolation (const ValueDecl *VD, Type T, bool &implicitlyAsync,
2519
+ Optional<NotRecommendedReason> &NotRecommended) {
2523
2520
auto isolation = getActorIsolation (const_cast <ValueDecl *>(VD));
2524
2521
2525
2522
switch (isolation.getKind ()) {
@@ -2543,19 +2540,19 @@ class CompletionLookup final : public swift::VisibleDeclConsumer {
2543
2540
if (implicitlyAsync && T) {
2544
2541
if (isa<VarDecl>(VD)) {
2545
2542
if (!isSendableType (CurrDeclContext, T)) {
2546
- NotRecommended = CodeCompletionResult ::CrossActorReference;
2543
+ NotRecommended = NotRecommendedReason ::CrossActorReference;
2547
2544
}
2548
2545
} else {
2549
2546
assert (isa<FuncDecl>(VD) || isa<SubscriptDecl>(VD));
2550
2547
// Check if the result and the param types are all 'Sendable'.
2551
2548
auto *AFT = T->castTo <AnyFunctionType>();
2552
2549
if (!isSendableType (CurrDeclContext, AFT->getResult ())) {
2553
- NotRecommended = CodeCompletionResult ::CrossActorReference;
2550
+ NotRecommended = NotRecommendedReason ::CrossActorReference;
2554
2551
} else {
2555
2552
for (auto ¶m : AFT->getParams ()) {
2556
2553
Type paramType = param.getPlainType ();
2557
2554
if (!isSendableType (CurrDeclContext, paramType)) {
2558
- NotRecommended = CodeCompletionResult ::CrossActorReference;
2555
+ NotRecommended = NotRecommendedReason ::CrossActorReference;
2559
2556
break ;
2560
2557
}
2561
2558
}
@@ -2576,18 +2573,18 @@ class CompletionLookup final : public swift::VisibleDeclConsumer {
2576
2573
if (VD->hasInterfaceType ())
2577
2574
VarType = getTypeOfMember (VD, dynamicLookupInfo);
2578
2575
2579
- Optional<CodeCompletionResult:: NotRecommendedReason> NotRecommended;
2576
+ Optional<NotRecommendedReason> NotRecommended;
2580
2577
// "not recommended" in its own getter.
2581
2578
if (Kind == LookupKind::ValueInDeclContext) {
2582
2579
if (auto accessor = dyn_cast<AccessorDecl>(CurrDeclContext)) {
2583
2580
if (accessor->getStorage () == VD && accessor->isGetter ())
2584
- NotRecommended = CodeCompletionResult ::VariableUsedInOwnDefinition;
2581
+ NotRecommended = NotRecommendedReason ::VariableUsedInOwnDefinition;
2585
2582
}
2586
2583
}
2587
2584
bool implicitlyAsync = false ;
2588
2585
analyzeActorIsolation (VD, VarType, implicitlyAsync, NotRecommended);
2589
2586
if (!NotRecommended && implicitlyAsync && !CanCurrDeclContextHandleAsync) {
2590
- NotRecommended = CodeCompletionResult ::InvalidAsyncContext;
2587
+ NotRecommended = NotRecommendedReason ::InvalidAsyncContext;
2591
2588
}
2592
2589
2593
2590
CommandWordsPairs Pairs;
@@ -2928,8 +2925,7 @@ class CompletionLookup final : public swift::VisibleDeclConsumer {
2928
2925
addTypeAnnotation (Builder, AFT->getResult (), genericSig);
2929
2926
2930
2927
if (AFT->isAsync () && !CanCurrDeclContextHandleAsync) {
2931
- Builder.setNotRecommended (
2932
- CodeCompletionResult::NotRecommendedReason::InvalidAsyncContext);
2928
+ Builder.setNotRecommended (NotRecommendedReason::InvalidAsyncContext);
2933
2929
}
2934
2930
};
2935
2931
@@ -3038,14 +3034,14 @@ class CompletionLookup final : public swift::VisibleDeclConsumer {
3038
3034
if (AFT && !IsImplicitlyCurriedInstanceMethod)
3039
3035
trivialTrailingClosure = hasTrivialTrailingClosure (FD, AFT);
3040
3036
3041
- Optional<CodeCompletionResult:: NotRecommendedReason> NotRecommended;
3037
+ Optional<NotRecommendedReason> NotRecommended;
3042
3038
bool implictlyAsync = false ;
3043
3039
analyzeActorIsolation (FD, AFT, implictlyAsync, NotRecommended);
3044
3040
3045
3041
if (!NotRecommended && !IsImplicitlyCurriedInstanceMethod &&
3046
3042
((AFT && AFT->isAsync ()) || implictlyAsync) &&
3047
3043
!CanCurrDeclContextHandleAsync) {
3048
- NotRecommended = CodeCompletionResult ::InvalidAsyncContext;
3044
+ NotRecommended = NotRecommendedReason ::InvalidAsyncContext;
3049
3045
}
3050
3046
3051
3047
// Add the method, possibly including any default arguments.
@@ -3243,8 +3239,7 @@ class CompletionLookup final : public swift::VisibleDeclConsumer {
3243
3239
}
3244
3240
3245
3241
if (ConstructorType->isAsync () && !CanCurrDeclContextHandleAsync) {
3246
- Builder.setNotRecommended (
3247
- CodeCompletionResult::NotRecommendedReason::InvalidAsyncContext);
3242
+ Builder.setNotRecommended (NotRecommendedReason::InvalidAsyncContext);
3248
3243
}
3249
3244
};
3250
3245
@@ -3290,12 +3285,12 @@ class CompletionLookup final : public swift::VisibleDeclConsumer {
3290
3285
if (!subscriptType)
3291
3286
return ;
3292
3287
3293
- Optional<CodeCompletionResult:: NotRecommendedReason> NotRecommended;
3288
+ Optional<NotRecommendedReason> NotRecommended;
3294
3289
bool implictlyAsync = false ;
3295
3290
analyzeActorIsolation (SD, subscriptType, implictlyAsync, NotRecommended);
3296
3291
3297
3292
if (!NotRecommended && implictlyAsync && !CanCurrDeclContextHandleAsync) {
3298
- NotRecommended = CodeCompletionResult ::InvalidAsyncContext;
3293
+ NotRecommended = NotRecommendedReason ::InvalidAsyncContext;
3299
3294
}
3300
3295
3301
3296
CommandWordsPairs Pairs;
0 commit comments