@@ -4849,15 +4849,15 @@ static bool isClangSubModule(ModuleDecl *TheModule) {
4849
4849
}
4850
4850
4851
4851
static void addDeclKeywords (CodeCompletionResultSink &Sink) {
4852
- auto AddKeyword = [&](StringRef Name, CodeCompletionKeywordKind Kind) {
4852
+ auto AddKeyword = [&](StringRef Name, CodeCompletionKeywordKind Kind,
4853
+ Optional<DeclAttrKind> DAK) {
4853
4854
if (Name == " let" || Name == " var" ) {
4854
4855
// Treat keywords that could be the start of a pattern specially.
4855
4856
return ;
4856
4857
}
4857
- // FIXME: __consuming should not appear in CodeCompletion until it is
4858
- // finalized in a language proposal.
4859
- if (Name == " __consuming" )
4860
- return ;
4858
+
4859
+ // Remove user inaccessible keywords.
4860
+ if (DAK.hasValue () && DeclAttribute::isUserInaccessible (*DAK)) return ;
4861
4861
4862
4862
CodeCompletionResultBuilder Builder (
4863
4863
Sink, CodeCompletionResult::ResultKind::Keyword,
@@ -4866,18 +4866,18 @@ static void addDeclKeywords(CodeCompletionResultSink &Sink) {
4866
4866
Builder.addTextChunk (Name);
4867
4867
};
4868
4868
4869
- #define DECL_KEYWORD (kw ) AddKeyword(#kw, CodeCompletionKeywordKind::kw_##kw);
4869
+ #define DECL_KEYWORD (kw ) AddKeyword(#kw, CodeCompletionKeywordKind::kw_##kw, None );
4870
4870
#include " swift/Syntax/TokenKinds.def"
4871
4871
4872
4872
// Context-sensitive keywords.
4873
- auto AddCSKeyword = [&](StringRef Name) {
4874
- AddKeyword (Name, CodeCompletionKeywordKind::None);
4873
+ auto AddCSKeyword = [&](StringRef Name, DeclAttrKind Kind ) {
4874
+ AddKeyword (Name, CodeCompletionKeywordKind::None, Kind );
4875
4875
};
4876
4876
4877
- #define CONTEXTUAL_CASE (KW ) AddCSKeyword(#KW);
4878
- #define CONTEXTUAL_DECL_ATTR (KW, ...) CONTEXTUAL_CASE(KW)
4879
- #define CONTEXTUAL_DECL_ATTR_ALIAS (KW, ... ) CONTEXTUAL_CASE(KW)
4880
- #define CONTEXTUAL_SIMPLE_DECL_ATTR (KW, ...) CONTEXTUAL_CASE(KW)
4877
+ #define CONTEXTUAL_CASE (KW, CLASS ) AddCSKeyword(#KW, DAK_##CLASS );
4878
+ #define CONTEXTUAL_DECL_ATTR (KW, CLASS, ...) CONTEXTUAL_CASE(KW, CLASS )
4879
+ #define CONTEXTUAL_DECL_ATTR_ALIAS (KW, CLASS ) CONTEXTUAL_CASE(KW, CLASS )
4880
+ #define CONTEXTUAL_SIMPLE_DECL_ATTR (KW, CLASS, ...) CONTEXTUAL_CASE(KW, CLASS )
4881
4881
#include < swift/AST/Attr.def>
4882
4882
#undef CONTEXTUAL_CASE
4883
4883
0 commit comments