clang
6.0.0
|
Describes the kind of initialization being performed, along with location information for tokens related to the initialization (equal sign, parentheses). More...
#include "clang/Sema/Initialization.h"
Public Types | |
enum | InitKind { IK_Direct, IK_DirectList, IK_Copy, IK_Default, IK_Value } |
The kind of initialization being performed. More... | |
Public Member Functions | |
InitKind | getKind () const |
Determine the initialization kind. More... | |
bool | isExplicitCast () const |
Determine whether this initialization is an explicit cast. More... | |
bool | isCStyleOrFunctionalCast () const |
Determine whether this initialization is a C-style cast. More... | |
bool | isCStyleCast () const |
Determine whether this is a C-style cast. More... | |
bool | isFunctionalCast () const |
Determine whether this is a functional-style cast. More... | |
bool | isImplicitValueInit () const |
Determine whether this initialization is an implicit value-initialization, e.g., as occurs during aggregate initialization. More... | |
SourceLocation | getLocation () const |
Retrieve the location at which initialization is occurring. More... | |
SourceRange | getRange () const |
Retrieve the source range that covers the initialization. More... | |
SourceLocation | getEqualLoc () const |
Retrieve the location of the equal sign for copy initialization (if present). More... | |
bool | isCopyInit () const |
bool | AllowExplicit () const |
Retrieve whether this initialization allows the use of explicit constructors. More... | |
bool | allowExplicitConversionFunctionsInRefBinding () const |
Retrieve whether this initialization allows the use of explicit conversion functions when binding a reference. More... | |
SourceRange | getParenRange () const |
Retrieve the source range containing the locations of the open and closing parentheses for value and direct initializations. More... | |
Static Public Member Functions | |
static InitializationKind | CreateDirect (SourceLocation InitLoc, SourceLocation LParenLoc, SourceLocation RParenLoc) |
Create a direct initialization. More... | |
static InitializationKind | CreateDirectList (SourceLocation InitLoc) |
static InitializationKind | CreateCast (SourceRange TypeRange) |
Create a direct initialization due to a cast that isn't a C-style or functional cast. More... | |
static InitializationKind | CreateCStyleCast (SourceLocation StartLoc, SourceRange TypeRange, bool InitList) |
Create a direct initialization for a C-style cast. More... | |
static InitializationKind | CreateFunctionalCast (SourceRange TypeRange, bool InitList) |
Create a direct initialization for a functional cast. More... | |
static InitializationKind | CreateCopy (SourceLocation InitLoc, SourceLocation EqualLoc, bool AllowExplicitConvs=false) |
Create a copy initialization. More... | |
static InitializationKind | CreateDefault (SourceLocation InitLoc) |
Create a default initialization. More... | |
static InitializationKind | CreateValue (SourceLocation InitLoc, SourceLocation LParenLoc, SourceLocation RParenLoc, bool isImplicit=false) |
Create a value initialization. More... | |
static InitializationKind | CreateForInit (SourceLocation Loc, bool DirectInit, Expr *Init) |
Create an initialization from an initializer (which, for direct initialization from a parenthesized list, will be a ParenListExpr). More... | |
Describes the kind of initialization being performed, along with location information for tokens related to the initialization (equal sign, parentheses).
Definition at line 492 of file Initialization.h.
The kind of initialization being performed.
Enumerator | |
---|---|
IK_Direct | Direct initialization. |
IK_DirectList | Direct list-initialization. |
IK_Copy | Copy initialization. |
IK_Default | Default initialization. |
IK_Value | Value initialization. |
Definition at line 495 of file Initialization.h.
|
inline |
Retrieve whether this initialization allows the use of explicit constructors.
Definition at line 654 of file Initialization.h.
Referenced by PerformConstructorInitialization(), TryConstructorInitialization(), TryRefInitWithConversionFunction(), and TryUserDefinedConversion().
|
inline |
Retrieve whether this initialization allows the use of explicit conversion functions when binding a reference.
If the reference is the first parameter in a copy or move constructor, such conversions are permitted even though we are performing copy-initialization.
Definition at line 660 of file Initialization.h.
Referenced by TryRefInitWithConversionFunction().
|
inlinestatic |
Create a direct initialization due to a cast that isn't a C-style or functional cast.
Definition at line 548 of file Initialization.h.
References clang::SourceRange::getBegin(), and clang::SourceRange::getEnd().
Referenced by TryStaticImplicitCast().
|
inlinestatic |
Create a copy initialization.
Definition at line 573 of file Initialization.h.
Referenced by clang::Sema::ActOnFinishCXXInClassMemberInitializer(), clang::Sema::CanPerformCopyInitialization(), CheckObjCCollectionLiteralElement(), ConvertForConditional(), EvaluateBinaryTypeTrait(), clang::Sema::PerformCopyInitialization(), clang::Sema::PerformMoveOrCopyInitialization(), TryClassUnification(), and warnBracedScalarInit().
|
inlinestatic |
Create a direct initialization for a C-style cast.
Definition at line 554 of file Initialization.h.
References clang::SourceRange::getBegin(), and clang::SourceRange::getEnd().
Referenced by TryStaticImplicitCast().
|
inlinestatic |
Create a default initialization.
Definition at line 582 of file Initialization.h.
Referenced by BuildImplicitBaseInitializer(), BuildImplicitMemberInitializer(), and clang::Sema::SetIvarInitializers().
|
inlinestatic |
Create a direct initialization.
Definition at line 534 of file Initialization.h.
Referenced by clang::Sema::BuildCXXTypeConstructExpr(), clang::Sema::BuildDelegatingInitializer(), BuildImplicitBaseInitializer(), BuildImplicitMemberInitializer(), clang::Sema::BuildMemberInitializer(), captureThis(), and TryListInitialization().
|
inlinestatic |
Definition at line 541 of file Initialization.h.
Referenced by clang::Sema::ActOnFinishCXXInClassMemberInitializer(), clang::Sema::BuildCXXTypeConstructExpr(), clang::Sema::BuildDelegatingInitializer(), clang::Sema::BuildMemberInitializer(), and clang::Sema::CreateBuiltinBinOp().
|
inlinestatic |
Create an initialization from an initializer (which, for direct initialization from a parenthesized list, will be a ParenListExpr).
Definition at line 597 of file Initialization.h.
References clang::Stmt::getLocEnd(), and clang::Stmt::getLocStart().
|
inlinestatic |
Create a direct initialization for a functional cast.
Definition at line 565 of file Initialization.h.
References clang::SourceRange::getBegin(), and clang::SourceRange::getEnd().
Referenced by TryStaticImplicitCast().
|
inlinestatic |
Create a value initialization.
Definition at line 587 of file Initialization.h.
Referenced by clang::Sema::BuildCXXTypeConstructExpr().
|
inline |
Retrieve the location of the equal sign for copy initialization (if present).
Definition at line 645 of file Initialization.h.
Referenced by PerformConstructorInitialization().
|
inline |
Determine the initialization kind.
Definition at line 606 of file Initialization.h.
Referenced by clang::Sema::DeduceTemplateSpecializationFromInitializer(), clang::InitializationSequence::Diagnose(), isExplicitTemporary(), clang::InitializationSequence::Perform(), PerformConstructorInitialization(), TryConstructorInitialization(), TryDefaultInitialization(), and TryListInitialization().
|
inline |
Retrieve the location at which initialization is occurring.
Definition at line 636 of file Initialization.h.
Referenced by clang::Sema::DeduceTemplateSpecializationFromInitializer(), clang::InitializationSequence::Diagnose(), clang::InitializationSequence::Perform(), PerformConstructorInitialization(), TryConstructorInitialization(), TryListInitialization(), TryRefInitWithConversionFunction(), and TryUserDefinedConversion().
|
inline |
Retrieve the source range containing the locations of the open and closing parentheses for value and direct initializations.
Definition at line 666 of file Initialization.h.
Referenced by clang::InitializationSequence::Perform(), and PerformConstructorInitialization().
|
inline |
Retrieve the source range that covers the initialization.
Definition at line 639 of file Initialization.h.
|
inline |
Definition at line 650 of file Initialization.h.
Referenced by PerformConstructorInitialization().
|
inline |
Determine whether this is a C-style cast.
Definition at line 621 of file Initialization.h.
Referenced by clang::InitializationSequence::Perform().
|
inline |
Determine whether this initialization is a C-style cast.
Definition at line 616 of file Initialization.h.
Referenced by clang::InitializationSequence::Diagnose(), clang::InitializationSequence::Perform(), and TryReferenceInitializationCore().
|
inline |
Determine whether this initialization is an explicit cast.
Definition at line 611 of file Initialization.h.
Referenced by clang::InitializationSequence::Perform().
|
inline |
Determine whether this is a functional-style cast.
Definition at line 626 of file Initialization.h.
Referenced by clang::InitializationSequence::Perform().
|
inline |
Determine whether this initialization is an implicit value-initialization, e.g., as occurs during aggregate initialization.
Definition at line 633 of file Initialization.h.