diff options
author | Fariborz Jahanian <fjahanian@apple.com> | 2011-08-22 21:44:58 +0000 |
---|---|---|
committer | Fariborz Jahanian <fjahanian@apple.com> | 2011-08-22 21:44:58 +0000 |
commit | 2f64cfe19e8bf6b6ba1660e38da8c421440457fe (patch) | |
tree | 89f512f4d615a1f2daf267576d03d53b5133a3f0 /lib/Parse/ParseObjc.cpp | |
parent | 7f2531cb41448852ec78de90fc1d3c0149c95d7d (diff) |
objc refactoring - minor clean up.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138276 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Parse/ParseObjc.cpp')
-rw-r--r-- | lib/Parse/ParseObjc.cpp | 20 |
1 files changed, 8 insertions, 12 deletions
diff --git a/lib/Parse/ParseObjc.cpp b/lib/Parse/ParseObjc.cpp index 7512bbc5ff..684d8edf89 100644 --- a/lib/Parse/ParseObjc.cpp +++ b/lib/Parse/ParseObjc.cpp @@ -199,9 +199,7 @@ Decl *Parser::ParseObjCAtInterfaceDeclaration(SourceLocation atLoc, if (Tok.is(tok::l_brace)) ParseObjCClassInstanceVariables(CategoryType, tok::objc_private, atLoc); - Actions.ActOnObjCContainerStartDefinition(CategoryType); - ParseObjCInterfaceDeclList(tok::objc_not_keyword); - Actions.ActOnObjCContainerFinishDefinition(CategoryType); + ParseObjCInterfaceDeclList(tok::objc_not_keyword, CategoryType); return CategoryType; } // Parse a class interface. @@ -243,9 +241,7 @@ Decl *Parser::ParseObjCAtInterfaceDeclaration(SourceLocation atLoc, if (Tok.is(tok::l_brace)) ParseObjCClassInstanceVariables(ClsType, tok::objc_protected, atLoc); - Actions.ActOnObjCContainerStartDefinition(ClsType); - ParseObjCInterfaceDeclList(tok::objc_interface); - Actions.ActOnObjCContainerFinishDefinition(ClsType); + ParseObjCInterfaceDeclList(tok::objc_interface, ClsType); return ClsType; } @@ -317,14 +313,16 @@ struct Parser::ObjCPropertyCallback : FieldCallback { /// @required /// @optional /// -void Parser::ParseObjCInterfaceDeclList(tok::ObjCKeywordKind contextKey) { +void Parser::ParseObjCInterfaceDeclList(tok::ObjCKeywordKind contextKey, + Decl *CDecl) { SmallVector<Decl *, 32> allMethods; SmallVector<Decl *, 16> allProperties; SmallVector<DeclGroupPtrTy, 8> allTUVariables; tok::ObjCKeywordKind MethodImplKind = tok::objc_not_keyword; SourceRange AtEnd; - + Actions.ActOnObjCContainerStartDefinition(CDecl); + while (1) { // If this is a method prototype, parse it. if (Tok.is(tok::minus) || Tok.is(tok::plus)) { @@ -461,6 +459,7 @@ void Parser::ParseObjCInterfaceDeclList(tok::ObjCKeywordKind contextKey) { allMethods.data(), allMethods.size(), allProperties.data(), allProperties.size(), allTUVariables.data(), allTUVariables.size()); + Actions.ActOnObjCContainerFinishDefinition(CDecl); } /// Parse property attribute declarations. @@ -1292,10 +1291,7 @@ Decl *Parser::ParseObjCAtProtocolDeclaration(SourceLocation AtLoc, ProtocolLocs.data(), EndProtoLoc, attrs.getList()); - - Actions.ActOnObjCContainerStartDefinition(ProtoType); - ParseObjCInterfaceDeclList(tok::objc_protocol); - Actions.ActOnObjCContainerFinishDefinition(ProtoType); + ParseObjCInterfaceDeclList(tok::objc_protocol, ProtoType); return ProtoType; } |