diff options
author | Chris Lattner <sabre@nondot.org> | 2009-04-11 18:57:04 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2009-04-11 18:57:04 +0000 |
commit | e294d3fbaffcbc0cf5f16067ab31d2b2763d25e9 (patch) | |
tree | f2c07c503173ba2db46c9bbb18fe94d09c02cb28 /include/clang/Parse/Action.h | |
parent | da0895d003dff3e9c57ca899fc2a3a2b397edb2e (diff) |
change the interface to ActOnMethodDeclaration to pass down argument
information in a little struct instead of individually. While we're
at it, add per-argument loc info and attribute info.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68871 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/clang/Parse/Action.h')
-rw-r--r-- | include/clang/Parse/Action.h | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/include/clang/Parse/Action.h b/include/clang/Parse/Action.h index f8be3ff79a..70c21f0a34 100644 --- a/include/clang/Parse/Action.h +++ b/include/clang/Parse/Action.h @@ -1405,6 +1405,18 @@ public: IdentifierInfo *propertyIvar) { // name of the ivar return DeclPtrTy(); } + + struct ObjCArgInfo { + IdentifierInfo *Name; + SourceLocation NameLoc; + // The Type is null if no type was specified, and the DeclSpec is invalid + // in this case. + TypeTy *Type; + ObjCDeclSpec DeclSpec; + + /// ArgAttrs - Attribute list for this argument. + AttributeList *ArgAttrs; + }; // ActOnMethodDeclaration - called for all method declarations. virtual DeclPtrTy ActOnMethodDeclaration( @@ -1415,11 +1427,9 @@ public: ObjCDeclSpec &ReturnQT, // for return type's in inout etc. TypeTy *ReturnType, // the method return type. Selector Sel, // a unique name for the method. - ObjCDeclSpec *ArgQT, // for arguments' in inout etc. - TypeTy **ArgTypes, // non-zero when Sel.getNumArgs() > 0 - IdentifierInfo **ArgNames, // non-zero when Sel.getNumArgs() > 0 + ObjCArgInfo *ArgInfo, // ArgInfo: Has 'Sel.getNumArgs()' entries. llvm::SmallVectorImpl<Declarator> &Cdecls, // c-style args - AttributeList *AttrList, // optional + AttributeList *MethodAttrList, // optional // tok::objc_not_keyword, tok::objc_optional, tok::objc_required tok::ObjCKeywordKind impKind, bool isVariadic = false) { |