clang API Documentation

clang::ASTOwningResult< PtrTy > Class Template Reference

#include <Ownership.h>

Collaboration diagram for clang::ASTOwningResult< PtrTy >:
Collaboration graph
[legend]

List of all members.

Public Types

typedef
ActionBase::ActionResult
< PtrTy > 
DumbResult

Public Member Functions

 ASTOwningResult (bool invalid=false)
 ASTOwningResult (PtrTy node)
 ASTOwningResult (const DumbResult &res)
 ASTOwningResult (const ASTOwningPtr< PtrTy > &o)
 ASTOwningResult (const void *)
 ASTOwningResult (volatile void *)
ASTOwningResultoperator= (PtrTy raw)
 Assignment from a raw pointer. Takes ownership - beware!
ASTOwningResultoperator= (const DumbResult &res)
 Assignment from an ActionResult. Takes ownership - beware!
PtrTy get () const
 Access to the raw pointer.
bool isInvalid () const
bool isUsable () const
PtrTy take ()
 Take outside ownership of the raw pointer.
template<typename T >
T * takeAs ()
 Take outside ownership of the raw pointer and cast it down.
PtrTy release ()
 Alias for interface familiarity with unique_ptr.
DumbResult result ()
 Pass ownership to a classical ActionResult.

Detailed Description

template<class PtrTy>
class clang::ASTOwningResult< PtrTy >

Definition at line 352 of file Ownership.h.


Member Typedef Documentation

template<class PtrTy>
typedef ActionBase::ActionResult<PtrTy> clang::ASTOwningResult< PtrTy >::DumbResult

Definition at line 354 of file Ownership.h.


Constructor & Destructor Documentation

template<class PtrTy>
clang::ASTOwningResult< PtrTy >::ASTOwningResult ( bool  invalid = false  )  [inline, explicit]

Definition at line 360 of file Ownership.h.

template<class PtrTy>
clang::ASTOwningResult< PtrTy >::ASTOwningResult ( PtrTy  node  )  [inline, explicit]

Definition at line 362 of file Ownership.h.

template<class PtrTy>
clang::ASTOwningResult< PtrTy >::ASTOwningResult ( const DumbResult res  )  [inline, explicit]

Definition at line 363 of file Ownership.h.

template<class PtrTy>
clang::ASTOwningResult< PtrTy >::ASTOwningResult ( const ASTOwningPtr< PtrTy > &  o  )  [inline]

Definition at line 365 of file Ownership.h.

template<class PtrTy>
clang::ASTOwningResult< PtrTy >::ASTOwningResult ( const void *   )  [explicit]
template<class PtrTy>
clang::ASTOwningResult< PtrTy >::ASTOwningResult ( volatile void *   )  [explicit]

Member Function Documentation

template<class PtrTy>
PtrTy clang::ASTOwningResult< PtrTy >::get (  )  const [inline]
template<class PtrTy>
bool clang::ASTOwningResult< PtrTy >::isInvalid (  )  const [inline]

Definition at line 386 of file Ownership.h.

References clang::ActionBase::ActionResult< PtrTy, CompressInvalid >::isInvalid().

Referenced by clang::Sema::ActOnBlockReturnStmt(), clang::Sema::ActOnDesignatedInitializer(), clang::Sema::ActOnIdExpression(), clang::Sema::ActOnPropertyImplDecl(), clang::Sema::ActOnReturnStmt(), clang::Sema::ActOnSizeOfAlignOfExpr(), clang::Sema::ActOnStartOfSwitchStmt(), clang::Sema::ActOnUninitializedDecl(), clang::Sema::AddInitializerToDecl(), clang::Sema::BuildBaseInitializer(), clang::Sema::BuildCallToObjectOfClassType(), clang::Sema::BuildCompoundLiteralExpr(), clang::Sema::BuildCXXDefaultArgExpr(), clang::Sema::BuildCXXNew(), clang::Sema::BuildDeclarationNameExpr(), clang::Sema::BuildExceptionDeclaration(), clang::Sema::BuildExpressionFromDeclTemplateArgument(), clang::Sema::BuildMemberInitializer(), clang::Sema::BuildMemberReferenceExpr(), clang::Sema::CheckMessageArgumentTypes(), clang::Sema::CheckTemplateArgumentList(), clang::Sema::CreateOverloadedArraySubscriptExpr(), clang::Sema::CreateOverloadedBinOp(), clang::Sema::CreateOverloadedUnaryOp(), clang::Sema::CXXCheckConditionalOperands(), clang::Sema::DefineImplicitCopyAssignment(), clang::Sema::FindAllocationOverload(), clang::Sema::FindCompositePointerType(), clang::Sema::GatherArgumentsForCall(), clang::PragmaPackHandler::HandlePragma(), clang::Sema::InitializeVarWithConstructor(), clang::Sema::InstantiateAttrs(), clang::Sema::InstantiateFunctionDefinition(), clang::Sema::LookupMemberExpr(), clang::Sema::MaybeCreateCXXExprWithTemporaries(), clang::InitializationSequence::Perform(), clang::Sema::PerformCopyInitialization(), clang::Sema::PerformImplicitConversion(), clang::TreeTransform< Derived >::RebuildCXXOperatorCallExpr(), clang::TreeTransform< Derived >::RebuildDesignatedInitExpr(), clang::TreeTransform< Derived >::RebuildInitList(), clang::TreeTransform< Derived >::RebuildObjCPropertyRefExpr(), clang::TreeTransform< Derived >::RebuildSizeOfAlignOf(), clang::Sema::SetIvarInitializers(), clang::Sema::SetParamDefaultArgument(), clang::Sema::SubstDefaultTemplateArgumentIfAvailable(), clang::TreeTransform< Derived >::TransformCompoundStmt(), clang::TreeTransform< Derived >::TransformCXXNamedCastExpr(), clang::TreeTransform< Derived >::TransformStmt(), and clang::TreeTransform< Derived >::TransformTemplateArgument().

template<class PtrTy>
bool clang::ASTOwningResult< PtrTy >::isUsable (  )  const [inline]

Does this point to a usable AST node? To be usable, the node must be valid and non-null.

Definition at line 390 of file Ownership.h.

References clang::ActionBase::ActionResult< PtrTy, CompressInvalid >::isInvalid().

template<class PtrTy>
ASTOwningResult& clang::ASTOwningResult< PtrTy >::operator= ( const DumbResult res  )  [inline]

Assignment from an ActionResult. Takes ownership - beware!

Definition at line 378 of file Ownership.h.

template<class PtrTy>
ASTOwningResult& clang::ASTOwningResult< PtrTy >::operator= ( PtrTy  raw  )  [inline]

Assignment from a raw pointer. Takes ownership - beware!

Definition at line 372 of file Ownership.h.

template<class PtrTy>
PtrTy clang::ASTOwningResult< PtrTy >::release (  )  [inline]
template<class PtrTy>
DumbResult clang::ASTOwningResult< PtrTy >::result (  )  [inline]

Pass ownership to a classical ActionResult.

Definition at line 407 of file Ownership.h.

Referenced by clang::Sema::BuildCallToObjectOfClassType().

template<class PtrTy>
PtrTy clang::ASTOwningResult< PtrTy >::take (  )  [inline]

Take outside ownership of the raw pointer.

Definition at line 393 of file Ownership.h.

References clang::ActionBase::ActionResult< PtrTy, CompressInvalid >::get().

Referenced by clang::ASTOwningResult< PtrTy >::release(), and clang::ASTOwningResult< PtrTy >::takeAs().

template<class PtrTy>
template<typename T >
T* clang::ASTOwningResult< PtrTy >::takeAs (  )  [inline]

Take outside ownership of the raw pointer and cast it down.

Definition at line 399 of file Ownership.h.

References clang::ASTOwningResult< PtrTy >::take().

Referenced by clang::Sema::ActOnBlockReturnStmt(), clang::Sema::ActOnDesignatedInitializer(), clang::Sema::ActOnForStmt(), clang::Sema::ActOnIdExpression(), clang::Sema::ActOnIfStmt(), clang::Sema::ActOnPropertyImplDecl(), clang::Sema::ActOnReturnStmt(), clang::Sema::ActOnStartOfSwitchStmt(), clang::Sema::ActOnUninitializedDecl(), clang::Sema::ActOnWhileStmt(), clang::Sema::AddInitializerToDecl(), clang::Sema::BuildBaseInitializer(), clang::Sema::BuildCallToObjectOfClassType(), BuildCXXCastArgument(), clang::Sema::BuildCXXDefaultArgExpr(), clang::Sema::BuildCXXNew(), clang::Sema::BuildDeclarationNameExpr(), clang::Sema::BuildExpressionFromDeclTemplateArgument(), clang::Sema::BuildMemberInitializer(), clang::Sema::CheckMessageArgumentTypes(), clang::Sema::CheckTemplateArgumentList(), clang::Sema::CreateOverloadedArraySubscriptExpr(), clang::Sema::CreateOverloadedBinOp(), clang::Sema::CXXCheckConditionalOperands(), clang::Sema::DefineImplicitCopyAssignment(), clang::Sema::FindAllocationOverload(), clang::Sema::FindCompositePointerType(), clang::Sema::GatherArgumentsForCall(), clang::Sema::InitializeVarWithConstructor(), clang::Sema::InstantiateAttrs(), clang::Sema::LookupInObjCMethod(), clang::Sema::LookupMemberExpr(), clang::Sema::MaybeCreateCXXExprWithTemporaries(), clang::InitializationSequence::Perform(), clang::Sema::PerformImplicitConversion(), clang::Sema::SetIvarInitializers(), clang::Sema::SetParamDefaultArgument(), clang::Sema::SubstDefaultTemplateArgumentIfAvailable(), clang::TreeTransform< Derived >::TransformCompoundStmt(), and clang::TreeTransform< Derived >::TransformTemplateArgument().


The documentation for this class was generated from the following file: