diff options
author | Douglas Gregor <dgregor@apple.com> | 2009-12-07 09:51:25 +0000 |
---|---|---|
committer | Douglas Gregor <dgregor@apple.com> | 2009-12-07 09:51:25 +0000 |
commit | bc7c5e471afdff1647f4a09f4eda779444f8fcdd (patch) | |
tree | b1ed86e903e1699823e6e9e2debffd9995cf49dd /clang/lib/Parse/ParseObjc.cpp | |
parent | f48706c787843768430a89edaba489f2a4ac2d15 (diff) | |
download | bcm5719-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.cpp | 11 |
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)); |