diff options
author | Argyrios Kyrtzidis <akyrtzi@gmail.com> | 2012-02-07 16:50:53 +0000 |
---|---|---|
committer | Argyrios Kyrtzidis <akyrtzi@gmail.com> | 2012-02-07 16:50:53 +0000 |
commit | b6c6a5836625d430b1a0e1358cacc63559505c23 (patch) | |
tree | 07a78c4bebddd62d285831dabf9157b2d5054469 /clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp | |
parent | 47ddf604b922f2388f61e426c56d46eb57c6a387 (diff) | |
download | llvm-b6c6a5836625d430b1a0e1358cacc63559505c23.zip llvm-b6c6a5836625d430b1a0e1358cacc63559505c23.tar.gz llvm-b6c6a5836625d430b1a0e1358cacc63559505c23.tar.bz2 |
Make parsing of objc @implementations more robust.
Parsing of @implementations was based on modifying global state from
the parser; the logic for late parsing of methods was spread in multiple places
making it difficult to have a robust error recovery.
-it was difficult to ensure that we don't neglect parsing the lexed methods.
-it was difficult to setup the original objc container context for parsing the lexed methods
after completing ParseObjCAtImplementationDeclaration and returning to top level context.
Enhance parsing of @implementations by centralizing it in Parser::ParseObjCAtImplementationDeclaration().
ParseObjCAtImplementationDeclaration now returns only after an @implementation is fully parsed;
all the data and logic for late parsing of methods is now in one place.
This allows us to provide code-completion for late parsed methods with mis-matched braces.
rdar://10775381
llvm-svn: 149987
Diffstat (limited to 'clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp')
0 files changed, 0 insertions, 0 deletions