class ObjCImplementationDecl

Declaration

class ObjCImplementationDecl : public ObjCImplDecl { /* full declaration omitted */ };

Description

ObjCImplementationDecl - Represents a class definition - this is where method definitions are specified. For example: In a non-fragile runtime, instance variables can appear in the class interface, class extensions (nameless categories), and in the implementation itself, as well as being synthesized as backing storage for properties. In a fragile runtime, instance variables are specified in the class interface, \em not in the implementation. Nevertheless (for legacy reasons), we allow instance variables to be specified in the implementation. When specified, they need to be \em identical to the interface.

Declared at: clang/include/clang/AST/DeclObjC.h:2548

Inherits from: ObjCImplDecl

Member Variables

private clang::ObjCInterfaceDecl* SuperClass
Implementation Class's super class.
private clang::SourceLocation SuperLoc
private clang::SourceLocation IvarLBraceLoc
@ implementation may have private ivars.
private clang::SourceLocation IvarRBraceLoc
private clang::LazyCXXCtorInitializersPtr IvarInitializers
Support for ivar initialization. The arguments used to initialize the ivars
private unsigned int NumIvarInitializers = 0
private bool HasNonZeroConstructors
Do the ivars of this class require initialization other than zero-initialization?
private bool HasDestructors
Do the ivars of this class require non-trivial destruction?

Inherited from DeclContext:

protected
protected FirstDecl = nullptr
protected LastDecl = nullptr

Inherited from Decl:

protected NextInContextAndBits
protected Access
protected FromASTFile
protected IdentifierNamespace
protected CacheValidAndLinkage

Method Overview

  • public static clang::ObjCImplementationDecl * Create(clang::ASTContext & C, clang::DeclContext * DC, clang::ObjCInterfaceDecl * classInterface, clang::ObjCInterfaceDecl * superDecl, clang::SourceLocation nameLoc, clang::SourceLocation atStartLoc, clang::SourceLocation superLoc = clang::SourceLocation(), clang::SourceLocation IvarLBraceLoc = clang::SourceLocation(), clang::SourceLocation IvarRBraceLoc = clang::SourceLocation())
  • public static clang::ObjCImplementationDecl * CreateDeserialized(clang::ASTContext & C, unsigned int ID)
  • private ObjCImplementationDecl(clang::DeclContext * DC, clang::ObjCInterfaceDecl * classInterface, clang::ObjCInterfaceDecl * superDecl, clang::SourceLocation nameLoc, clang::SourceLocation atStartLoc, clang::SourceLocation superLoc = clang::SourceLocation(), clang::SourceLocation IvarLBraceLoc = clang::SourceLocation(), clang::SourceLocation IvarRBraceLoc = clang::SourceLocation())
  • private void anchor()
  • public static bool classof(const clang::Decl * D)
  • public static bool classofKind(clang::Decl::Kind K)
  • public clang::IdentifierInfo * getIdentifier() const
  • public clang::SourceLocation getIvarLBraceLoc() const
  • public clang::SourceLocation getIvarRBraceLoc() const
  • public llvm::StringRef getName() const
  • public std::string getNameAsString() const
  • public unsigned int getNumIvarInitializers() const
  • public llvm::StringRef getObjCRuntimeNameAsString() const
  • public clang::ObjCInterfaceDecl * getSuperClass()
  • public const clang::ObjCInterfaceDecl * getSuperClass() const
  • public clang::SourceLocation getSuperClassLoc() const
  • public bool hasDestructors() const
  • public bool hasNonZeroConstructors() const
  • public clang::ObjCImplementationDecl::init_const_iterator init_begin() const
  • public clang::ObjCImplementationDecl::init_iterator init_begin()
  • public clang::ObjCImplementationDecl::init_const_iterator init_end() const
  • public clang::ObjCImplementationDecl::init_iterator init_end()
  • public clang::ObjCImplementationDecl::init_range inits()
  • public clang::ObjCImplementationDecl::init_const_range inits() const
  • public clang::ObjCImplementationDecl::ivar_iterator ivar_begin() const
  • public bool ivar_empty() const
  • public clang::ObjCImplementationDecl::ivar_iterator ivar_end() const
  • public unsigned int ivar_size() const
  • public clang::ObjCImplementationDecl::ivar_range ivars() const
  • public void setHasDestructors(bool val)
  • public void setHasNonZeroConstructors(bool val)
  • public void setIvarInitializers(clang::ASTContext & C, clang::CXXCtorInitializer ** initializers, unsigned int numInitializers)
  • public void setIvarLBraceLoc(clang::SourceLocation Loc)
  • public void setIvarRBraceLoc(clang::SourceLocation Loc)
  • public void setNumIvarInitializers(unsigned int numNumIvarInitializers)
  • public void setSuperClass(clang::ObjCInterfaceDecl * superCls)

Inherited from ObjCImplDecl:

Inherited from ObjCContainerDecl:

Inherited from DeclContext:

Inherited from NamedDecl:

Inherited from Decl:

Methods

static clang::ObjCImplementationDecl* Create(
    clang::ASTContext& C,
    clang::DeclContext* DC,
    clang::ObjCInterfaceDecl* classInterface,
    clang::ObjCInterfaceDecl* superDecl,
    clang::SourceLocation nameLoc,
    clang::SourceLocation atStartLoc,
    clang::SourceLocation superLoc =
        clang::SourceLocation(),
    clang::SourceLocation IvarLBraceLoc =
        clang::SourceLocation(),
    clang::SourceLocation IvarRBraceLoc =
        clang::SourceLocation())

Declared at: clang/include/clang/AST/DeclObjC.h:2590

Parameters

clang::ASTContext& C
clang::DeclContext* DC
clang::ObjCInterfaceDecl* classInterface
clang::ObjCInterfaceDecl* superDecl
clang::SourceLocation nameLoc
clang::SourceLocation atStartLoc
clang::SourceLocation superLoc = clang::SourceLocation()
clang::SourceLocation IvarLBraceLoc = clang::SourceLocation()
clang::SourceLocation IvarRBraceLoc = clang::SourceLocation()

static clang::ObjCImplementationDecl*
CreateDeserialized(clang::ASTContext& C,
                   unsigned int ID)

Declared at: clang/include/clang/AST/DeclObjC.h:2599

Parameters

clang::ASTContext& C
unsigned int ID

ObjCImplementationDecl(
    clang::DeclContext* DC,
    clang::ObjCInterfaceDecl* classInterface,
    clang::ObjCInterfaceDecl* superDecl,
    clang::SourceLocation nameLoc,
    clang::SourceLocation atStartLoc,
    clang::SourceLocation superLoc =
        clang::SourceLocation(),
    clang::SourceLocation IvarLBraceLoc =
        clang::SourceLocation(),
    clang::SourceLocation IvarRBraceLoc =
        clang::SourceLocation())

Declared at: clang/include/clang/AST/DeclObjC.h:2569

Parameters

clang::DeclContext* DC
clang::ObjCInterfaceDecl* classInterface
clang::ObjCInterfaceDecl* superDecl
clang::SourceLocation nameLoc
clang::SourceLocation atStartLoc
clang::SourceLocation superLoc = clang::SourceLocation()
clang::SourceLocation IvarLBraceLoc = clang::SourceLocation()
clang::SourceLocation IvarRBraceLoc = clang::SourceLocation()

void anchor()

Declared at: clang/include/clang/AST/DeclObjC.h:2584

static bool classof(const clang::Decl* D)

Declared at: clang/include/clang/AST/DeclObjC.h:2715

Parameters

const clang::Decl* D

static bool classofKind(clang::Decl::Kind K)

Declared at: clang/include/clang/AST/DeclObjC.h:2716

Parameters

clang::Decl::Kind K

clang::IdentifierInfo* getIdentifier() const

Description

getIdentifier - Get the identifier that names the class interface associated with this implementation.

Declared at: clang/include/clang/AST/DeclObjC.h:2660

clang::SourceLocation getIvarLBraceLoc() const

Declared at: clang/include/clang/AST/DeclObjC.h:2690

clang::SourceLocation getIvarRBraceLoc() const

Declared at: clang/include/clang/AST/DeclObjC.h:2692

llvm::StringRef getName() const

Description

getName - Get the name of identifier for the class interface associated with this implementation as a StringRef.

Declared at: clang/include/clang/AST/DeclObjC.h:2669

std::string getNameAsString() const

Description

Get the name of the class associated with this interface.

Declared at: clang/include/clang/AST/DeclObjC.h:2677

unsigned int getNumIvarInitializers() const

Description

getNumArgs - Number of ivars which must be initialized.

Declared at: clang/include/clang/AST/DeclObjC.h:2636

llvm::StringRef getObjCRuntimeNameAsString() const

Description

Produce a name to be used for class's metadata. It comes either via class's objc_runtime_name attribute or class name.

Declared at: clang/include/clang/AST/DeclObjC.h:2681

clang::ObjCInterfaceDecl* getSuperClass()

Declared at: clang/include/clang/AST/DeclObjC.h:2684

const clang::ObjCInterfaceDecl* getSuperClass()
    const

Declared at: clang/include/clang/AST/DeclObjC.h:2683

clang::SourceLocation getSuperClassLoc() const

Declared at: clang/include/clang/AST/DeclObjC.h:2685

bool hasDestructors() const

Description

Do any of the ivars of this class (not counting its base classes) require non-trivial destruction?

Declared at: clang/include/clang/AST/DeclObjC.h:2655

bool hasNonZeroConstructors() const

Description

Do any of the ivars of this class (not counting its base classes) require construction other than zero-initialization?

Declared at: clang/include/clang/AST/DeclObjC.h:2650

clang::ObjCImplementationDecl::init_const_iterator
init_begin() const

Description

begin() - Retrieve an iterator to the first initializer.

Declared at: clang/include/clang/AST/DeclObjC.h:2623

clang::ObjCImplementationDecl::init_iterator
init_begin()

Description

init_begin() - Retrieve an iterator to the first initializer.

Declared at: clang/include/clang/AST/DeclObjC.h:2617

clang::ObjCImplementationDecl::init_const_iterator
init_end() const

Description

end() - Retrieve an iterator past the last initializer.

Declared at: clang/include/clang/AST/DeclObjC.h:2631

clang::ObjCImplementationDecl::init_iterator
init_end()

Description

init_end() - Retrieve an iterator past the last initializer.

Declared at: clang/include/clang/AST/DeclObjC.h:2626

clang::ObjCImplementationDecl::init_range inits()

Declared at: clang/include/clang/AST/DeclObjC.h:2610

clang::ObjCImplementationDecl::init_const_range
inits() const

Declared at: clang/include/clang/AST/DeclObjC.h:2612

clang::ObjCImplementationDecl::ivar_iterator
ivar_begin() const

Declared at: clang/include/clang/AST/DeclObjC.h:2699

bool ivar_empty() const

Declared at: clang/include/clang/AST/DeclObjC.h:2711

clang::ObjCImplementationDecl::ivar_iterator
ivar_end() const

Declared at: clang/include/clang/AST/DeclObjC.h:2703

unsigned int ivar_size() const

Declared at: clang/include/clang/AST/DeclObjC.h:2707

clang::ObjCImplementationDecl::ivar_range ivars()
    const

Declared at: clang/include/clang/AST/DeclObjC.h:2697

void setHasDestructors(bool val)

Declared at: clang/include/clang/AST/DeclObjC.h:2656

Parameters

bool val

void setHasNonZeroConstructors(bool val)

Declared at: clang/include/clang/AST/DeclObjC.h:2651

Parameters

bool val

void setIvarInitializers(
    clang::ASTContext& C,
    clang::CXXCtorInitializer** initializers,
    unsigned int numInitializers)

Declared at: clang/include/clang/AST/DeclObjC.h:2644

Parameters

clang::ASTContext& C
clang::CXXCtorInitializer** initializers
unsigned int numInitializers

void setIvarLBraceLoc(clang::SourceLocation Loc)

Declared at: clang/include/clang/AST/DeclObjC.h:2689

Parameters

clang::SourceLocation Loc

void setIvarRBraceLoc(clang::SourceLocation Loc)

Declared at: clang/include/clang/AST/DeclObjC.h:2691

Parameters

clang::SourceLocation Loc

void setNumIvarInitializers(
    unsigned int numNumIvarInitializers)

Declared at: clang/include/clang/AST/DeclObjC.h:2640

Parameters

unsigned int numNumIvarInitializers

void setSuperClass(
    clang::ObjCInterfaceDecl* superCls)

Declared at: clang/include/clang/AST/DeclObjC.h:2687

Parameters

clang::ObjCInterfaceDecl* superCls