@@ -4849,30 +4849,35 @@ 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
}
4858
+
4859
+ // Remove user inaccessible keywords.
4860
+ if (DAK.hasValue () && DeclAttribute::isUserInaccessible (*DAK)) return ;
4861
+
4857
4862
CodeCompletionResultBuilder Builder (
4858
4863
Sink, CodeCompletionResult::ResultKind::Keyword,
4859
4864
SemanticContextKind::None, {});
4860
4865
Builder.setKeywordKind (Kind);
4861
4866
Builder.addTextChunk (Name);
4862
4867
};
4863
4868
4864
- #define DECL_KEYWORD (kw ) AddKeyword(#kw, CodeCompletionKeywordKind::kw_##kw);
4869
+ #define DECL_KEYWORD (kw ) AddKeyword(#kw, CodeCompletionKeywordKind::kw_##kw, None );
4865
4870
#include " swift/Syntax/TokenKinds.def"
4866
4871
4867
4872
// Context-sensitive keywords.
4868
- auto AddCSKeyword = [&](StringRef Name) {
4869
- AddKeyword (Name, CodeCompletionKeywordKind::None);
4873
+ auto AddCSKeyword = [&](StringRef Name, DeclAttrKind Kind ) {
4874
+ AddKeyword (Name, CodeCompletionKeywordKind::None, Kind );
4870
4875
};
4871
4876
4872
- #define CONTEXTUAL_CASE (KW ) AddCSKeyword(#KW);
4873
- #define CONTEXTUAL_DECL_ATTR (KW, ...) CONTEXTUAL_CASE(KW)
4874
- #define CONTEXTUAL_DECL_ATTR_ALIAS (KW, ... ) CONTEXTUAL_CASE(KW)
4875
- #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 )
4876
4881
#include < swift/AST/Attr.def>
4877
4882
#undef CONTEXTUAL_CASE
4878
4883
0 commit comments