summaryrefslogtreecommitdiffstats
path: root/clang/lib/Parse/ParseObjc.cpp
diff options
context:
space:
mode:
authorDouglas Gregor <dgregor@apple.com>2009-12-07 09:51:25 +0000
committerDouglas Gregor <dgregor@apple.com>2009-12-07 09:51:25 +0000
commitbc7c5e471afdff1647f4a09f4eda779444f8fcdd (patch)
treeb1ed86e903e1699823e6e9e2debffd9995cf49dd /clang/lib/Parse/ParseObjc.cpp
parentf48706c787843768430a89edaba489f2a4ac2d15 (diff)
downloadbcm5719-llvm-bc7c5e471afdff1647f4a09f4eda779444f8fcdd.tar.gz
bcm5719-llvm-bc7c5e471afdff1647f4a09f4eda779444f8fcdd.zip
Code completion for Objective-C @ keywords that are statements or expressions
llvm-svn: 90757
Diffstat (limited to 'clang/lib/Parse/ParseObjc.cpp')
-rw-r--r--clang/lib/Parse/ParseObjc.cpp11
1 files changed, 10 insertions, 1 deletions
diff --git a/clang/lib/Parse/ParseObjc.cpp b/clang/lib/Parse/ParseObjc.cpp
index f1832e5707f..cc5bc737a05 100644
--- a/clang/lib/Parse/ParseObjc.cpp
+++ b/clang/lib/Parse/ParseObjc.cpp
@@ -1563,7 +1563,11 @@ Parser::DeclPtrTy Parser::ParseObjCMethodDefinition() {
}
Parser::OwningStmtResult Parser::ParseObjCAtStatement(SourceLocation AtLoc) {
- if (Tok.isObjCAtKeyword(tok::objc_try)) {
+ if (Tok.is(tok::code_completion)) {
+ Actions.CodeCompleteObjCAtStatement(CurScope);
+ ConsumeToken();
+ return StmtError();
+ } else if (Tok.isObjCAtKeyword(tok::objc_try)) {
return ParseObjCTryStmt(AtLoc);
} else if (Tok.isObjCAtKeyword(tok::objc_throw))
return ParseObjCThrowStmt(AtLoc);
@@ -1584,6 +1588,11 @@ Parser::OwningStmtResult Parser::ParseObjCAtStatement(SourceLocation AtLoc) {
Parser::OwningExprResult Parser::ParseObjCAtExpression(SourceLocation AtLoc) {
switch (Tok.getKind()) {
+ case tok::code_completion:
+ Actions.CodeCompleteObjCAtExpression(CurScope);
+ ConsumeToken();
+ return ExprError();
+
case tok::string_literal: // primary-expression: string-literal
case tok::wide_string_literal:
return ParsePostfixExpressionSuffix(ParseObjCStringLiteral(AtLoc));
OpenPOWER on IntegriCloud