llvm-project/clang/lib/Sema
Argyrios Kyrtzidis b6c6a58366 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
2012-02-07 16:50:53 +00:00
..
AnalysisBasedWarnings.cpp Move various diagnostic operator<< overloads out of line and remove includes of Diagnostic.h. 2012-02-04 12:31:12 +00:00
AttributeList.cpp The following patch adds __attribute__((no_address_safety_analysis)) which will allow to disable 2012-01-24 19:25:38 +00:00
CMakeLists.txt Instantiate dependent attributes when instantiating templates. 2012-01-20 22:37:06 +00:00
CodeCompleteConsumer.cpp Basic: import SmallString<> into clang namespace 2012-02-05 02:13:05 +00:00
DeclSpec.cpp Remove unreachable code in Clang. (replace with llvm_unreachable where appropriate or when GCC requires it) 2012-01-17 06:56:22 +00:00
DelayedDiagnostic.cpp remove unneeded llvm:: namespace qualifiers on some core types now that LLVM.h imports 2011-07-23 10:55:15 +00:00
IdentifierResolver.cpp Only mark an IdentifierInfo as having changed since deserialization 2012-01-24 15:24:38 +00:00
JumpDiagnostics.cpp Add -Wc++98-compat diagnostics for jumps which bypass initialization of non-POD 2011-10-20 21:42:12 +00:00
Makefile BUILD_ARCHIVE is the default for libraries, no need to set it. 2010-07-18 00:14:47 +00:00
MultiInitializer.cpp Improve unexpanded parameter pack diagnostics by using UPPC_Initializer here. 2011-10-23 18:59:33 +00:00
Scope.cpp Store a parameter index and function prototype depth in every 2011-05-01 22:35:37 +00:00
Sema.cpp Make parsing of objc @implementations more robust. 2012-02-07 16:50:53 +00:00
SemaAccess.cpp Remove unused variables. 2012-01-20 14:42:32 +00:00
SemaAttr.cpp Reject mismatched "#pragma GCC visibility push" and "#pragma GCC visibility pop". 2012-02-01 23:24:59 +00:00
SemaCXXScopeSpec.cpp Added source location for the template keyword in DependentTemplateSpecializationTypeLoc nodes (DTSTLoc). 2012-02-06 22:45:07 +00:00
SemaCast.cpp C++ 5.2.10p2 has a note that mentions that, subject to all other restrictions, 2012-02-03 02:54:37 +00:00
SemaChecking.cpp Basic: import SmallString<> into clang namespace 2012-02-05 02:13:05 +00:00
SemaCodeComplete.cpp Basic: import SmallString<> into clang namespace 2012-02-05 02:13:05 +00:00
SemaConsumer.cpp Unweaken vtables as per http://llvm.org/docs/CodingStandards.html#ll_virtual_anch 2011-12-20 02:48:34 +00:00
SemaDecl.cpp Fix a bug in semantic analysis involving anonymous structs and flexible arrays. 2012-02-07 05:00:47 +00:00
SemaDeclAttr.cpp In C++11 mode, when an integral constant expression is desired and we have a 2012-02-04 09:53:13 +00:00
SemaDeclCXX.cpp Canonicalize the base class used in the nested-name-specifier of a generated 2012-02-06 21:51:39 +00:00
SemaDeclObjC.cpp Make the callback object to Sema::CorrectTypo mandatory. 2012-01-31 23:49:25 +00:00
SemaExceptionSpec.cpp Basic: import SmallString<> into clang namespace 2012-02-05 02:13:05 +00:00
SemaExpr.cpp Introduce basic ASTs for lambda expressions. This covers: 2012-02-07 10:09:13 +00:00
SemaExprCXX.cpp Introduce basic ASTs for lambda expressions. This covers: 2012-02-07 10:09:13 +00:00
SemaExprMember.cpp Fixed instantiation of DependentScopeDeclRefExpr. 2012-02-06 14:31:00 +00:00
SemaExprObjC.cpp Basic: import SmallString<> into clang namespace 2012-02-05 02:13:05 +00:00
SemaFixItUtils.cpp Refactor for clarity. 2012-01-13 19:34:55 +00:00
SemaInit.cpp Basic: import SmallString<> into clang namespace 2012-02-05 02:13:05 +00:00
SemaLookup.cpp Remove the unused TypoCorrectionConsumer::MaxEditDistance. 2012-02-07 01:32:58 +00:00
SemaObjCProperty.cpp Basic: import SmallString<> into clang namespace 2012-02-05 02:13:05 +00:00
SemaOverload.cpp Fixed instantiation of DependentScopeDeclRefExpr. 2012-02-06 14:31:00 +00:00
SemaPseudoObject.cpp Add IsImplicit field in ObjCMessageExpr that is true when the message 2012-01-12 02:34:39 +00:00
SemaStmt.cpp In C++11 mode, when an integral constant expression is desired and we have a 2012-02-04 09:53:13 +00:00
SemaTemplate.cpp Added source location for the template keyword in DependentTemplateSpecializationTypeLoc nodes (DTSTLoc). 2012-02-06 22:45:07 +00:00
SemaTemplateDeduction.cpp SmallBitVectorize the deduced parameter set. 2012-01-30 16:17:39 +00:00
SemaTemplateInstantiate.cpp Move instantiateTemplateAttribute into the sema namespace, make helpers static. 2012-02-06 11:13:08 +00:00
SemaTemplateInstantiateDecl.cpp Move instantiateTemplateAttribute into the sema namespace, make helpers static. 2012-02-06 11:13:08 +00:00
SemaTemplateVariadic.cpp Make the callback object to Sema::CorrectTypo mandatory. 2012-01-31 23:49:25 +00:00
SemaType.cpp Added source location for the template keyword in DependentTemplateSpecializationTypeLoc nodes (DTSTLoc). 2012-02-06 22:45:07 +00:00
TargetAttributesSema.cpp Fix compiler warning about && in ||. 2011-09-30 20:32:22 +00:00
TargetAttributesSema.h Remove Sema.h's dependency on DeclCXX.h. 2010-08-25 07:42:41 +00:00
TreeTransform.h Introduce basic ASTs for lambda expressions. This covers: 2012-02-07 10:09:13 +00:00
TypeLocBuilder.h Remove more unnecessary #include <llvm/ADT/SmallVector.h> 2011-06-20 06:11:46 +00:00