Once code completion has completed, pass a "completion context" on to
the code-completion consumer. The consumer can use this information to
augument, filter, or display the code-completion results.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110858 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Parse/ParseDecl.cpp b/lib/Parse/ParseDecl.cpp
index 65b4fb7..b0d9da5 100644
--- a/lib/Parse/ParseDecl.cpp
+++ b/lib/Parse/ParseDecl.cpp
@@ -853,14 +853,14 @@
AccessSpecifier AS,
DeclSpecContext DSContext) {
if (Tok.is(tok::code_completion)) {
- Action::CodeCompletionContext CCC = Action::CCC_Namespace;
+ Action::ParserCompletionContext CCC = Action::PCC_Namespace;
if (TemplateInfo.Kind != ParsedTemplateInfo::NonTemplate)
- CCC = DSContext == DSC_class? Action::CCC_MemberTemplate
- : Action::CCC_Template;
+ CCC = DSContext == DSC_class? Action::PCC_MemberTemplate
+ : Action::PCC_Template;
else if (DSContext == DSC_class)
- CCC = Action::CCC_Class;
+ CCC = Action::PCC_Class;
else if (ObjCImpDecl)
- CCC = Action::CCC_ObjCImplementation;
+ CCC = Action::PCC_ObjCImplementation;
Actions.CodeCompleteOrdinaryName(getCurScope(), CCC);
ConsumeCodeCompletionToken();
diff --git a/lib/Parse/ParseExpr.cpp b/lib/Parse/ParseExpr.cpp
index ec92f08..844dd3f 100644
--- a/lib/Parse/ParseExpr.cpp
+++ b/lib/Parse/ParseExpr.cpp
@@ -220,7 +220,7 @@
///
Parser::OwningExprResult Parser::ParseAssignmentExpression() {
if (Tok.is(tok::code_completion)) {
- Actions.CodeCompleteOrdinaryName(getCurScope(), Action::CCC_Expression);
+ Actions.CodeCompleteOrdinaryName(getCurScope(), Action::PCC_Expression);
ConsumeCodeCompletionToken();
}
@@ -918,7 +918,7 @@
case tok::caret:
return ParsePostfixExpressionSuffix(ParseBlockLiteralExpression());
case tok::code_completion:
- Actions.CodeCompleteOrdinaryName(getCurScope(), Action::CCC_Expression);
+ Actions.CodeCompleteOrdinaryName(getCurScope(), Action::PCC_Expression);
ConsumeCodeCompletionToken();
return ParseCastExpression(isUnaryExpression, isAddressOfOperand,
NotCastExpr, TypeOfCast);
diff --git a/lib/Parse/ParseExprCXX.cpp b/lib/Parse/ParseExprCXX.cpp
index 29f6bb9..f5ade8a 100644
--- a/lib/Parse/ParseExprCXX.cpp
+++ b/lib/Parse/ParseExprCXX.cpp
@@ -734,7 +734,7 @@
SourceLocation Loc,
bool ConvertToBoolean) {
if (Tok.is(tok::code_completion)) {
- Actions.CodeCompleteOrdinaryName(getCurScope(), Action::CCC_Condition);
+ Actions.CodeCompleteOrdinaryName(getCurScope(), Action::PCC_Condition);
ConsumeCodeCompletionToken();
}
diff --git a/lib/Parse/ParseObjc.cpp b/lib/Parse/ParseObjc.cpp
index a7e0856..00df5a2 100644
--- a/lib/Parse/ParseObjc.cpp
+++ b/lib/Parse/ParseObjc.cpp
@@ -348,8 +348,8 @@
// Code completion within an Objective-C interface.
if (Tok.is(tok::code_completion)) {
Actions.CodeCompleteOrdinaryName(getCurScope(),
- ObjCImpDecl? Action::CCC_ObjCImplementation
- : Action::CCC_ObjCInterface);
+ ObjCImpDecl? Action::PCC_ObjCImplementation
+ : Action::PCC_ObjCInterface);
ConsumeCodeCompletionToken();
}
@@ -1071,7 +1071,7 @@
if (Tok.is(tok::code_completion)) {
Actions.CodeCompleteOrdinaryName(getCurScope(),
- Action::CCC_ObjCInstanceVariableList);
+ Action::PCC_ObjCInstanceVariableList);
ConsumeCodeCompletionToken();
}
diff --git a/lib/Parse/ParseStmt.cpp b/lib/Parse/ParseStmt.cpp
index 1136be0..a83aff1 100644
--- a/lib/Parse/ParseStmt.cpp
+++ b/lib/Parse/ParseStmt.cpp
@@ -98,7 +98,7 @@
}
case tok::code_completion:
- Actions.CodeCompleteOrdinaryName(getCurScope(), Action::CCC_Statement);
+ Actions.CodeCompleteOrdinaryName(getCurScope(), Action::PCC_Statement);
ConsumeCodeCompletionToken();
return ParseStatementOrDeclaration(OnlyStatement);
@@ -994,8 +994,8 @@
if (Tok.is(tok::code_completion)) {
Actions.CodeCompleteOrdinaryName(getCurScope(),
- C99orCXXorObjC? Action::CCC_ForInit
- : Action::CCC_Expression);
+ C99orCXXorObjC? Action::PCC_ForInit
+ : Action::PCC_Expression);
ConsumeCodeCompletionToken();
}
diff --git a/lib/Parse/Parser.cpp b/lib/Parse/Parser.cpp
index d015887..4e0ae87 100644
--- a/lib/Parse/Parser.cpp
+++ b/lib/Parse/Parser.cpp
@@ -463,8 +463,8 @@
break;
case tok::code_completion:
Actions.CodeCompleteOrdinaryName(getCurScope(),
- ObjCImpDecl? Action::CCC_ObjCImplementation
- : Action::CCC_Namespace);
+ ObjCImpDecl? Action::PCC_ObjCImplementation
+ : Action::PCC_Namespace);
ConsumeCodeCompletionToken();
return ParseExternalDeclaration(Attr);
case tok::kw_using:
@@ -1101,17 +1101,17 @@
void Parser::CodeCompletionRecovery() {
for (Scope *S = getCurScope(); S; S = S->getParent()) {
if (S->getFlags() & Scope::FnScope) {
- Actions.CodeCompleteOrdinaryName(getCurScope(), Action::CCC_RecoveryInFunction);
+ Actions.CodeCompleteOrdinaryName(getCurScope(), Action::PCC_RecoveryInFunction);
return;
}
if (S->getFlags() & Scope::ClassScope) {
- Actions.CodeCompleteOrdinaryName(getCurScope(), Action::CCC_Class);
+ Actions.CodeCompleteOrdinaryName(getCurScope(), Action::PCC_Class);
return;
}
}
- Actions.CodeCompleteOrdinaryName(getCurScope(), Action::CCC_Namespace);
+ Actions.CodeCompleteOrdinaryName(getCurScope(), Action::PCC_Namespace);
}
// Anchor the Parser::FieldCallback vtable to this translation unit.