clang API Documentation
Describes the kind of initialization being performed, along with location information for tokens related to the initialization (equal sign, parentheses). More...
#include <Initialization.h>
Public Types | |
| enum | InitKind { IK_Direct, IK_Copy, IK_Default, IK_Value } |
| The kind of initialization being performed. More... | |
Public Member Functions | |
| InitKind | getKind () const |
| Determine the initialization kind. | |
| bool | isExplicitCast () const |
| Determine whether this initialization is an explicit cast. | |
| bool | isCStyleOrFunctionalCast () const |
| Determine whether this initialization is a C-style cast. | |
| bool | isCStyleCast () const |
| brief Determine whether this is a C-style cast. | |
| bool | isFunctionalCast () const |
| brief Determine whether this is a functional-style cast. | |
| bool | isImplicitValueInit () const |
| Determine whether this initialization is an implicit value-initialization, e.g., as occurs during aggregate initialization. | |
| SourceLocation | getLocation () const |
| Retrieve the location at which initialization is occurring. | |
| SourceRange | getRange () const |
| Retrieve the source range that covers the initialization. | |
| SourceLocation | getEqualLoc () const |
| Retrieve the location of the equal sign for copy initialization (if present). | |
| bool | isCopyInit () const |
| SourceRange | getParenRange () const |
| Retrieve the source range containing the locations of the open and closing parentheses for value and direct initializations. | |
Static Public Member Functions | |
| static InitializationKind | CreateDirect (SourceLocation InitLoc, SourceLocation LParenLoc, SourceLocation RParenLoc) |
| Create a direct initialization. | |
| static InitializationKind | CreateCast (SourceRange TypeRange) |
| Create a direct initialization due to a cast that isn't a C-style or functional cast. | |
| static InitializationKind | CreateCStyleCast (SourceLocation StartLoc, SourceRange TypeRange) |
| Create a direct initialization for a C-style cast. | |
| static InitializationKind | CreateFunctionalCast (SourceRange TypeRange) |
| Create a direct initialization for a functional cast. | |
| static InitializationKind | CreateCopy (SourceLocation InitLoc, SourceLocation EqualLoc) |
| Create a copy initialization. | |
| static InitializationKind | CreateDefault (SourceLocation InitLoc) |
| Create a default initialization. | |
| static InitializationKind | CreateValue (SourceLocation InitLoc, SourceLocation LParenLoc, SourceLocation RParenLoc, bool isImplicit=false) |
| Create a value initialization. | |
Describes the kind of initialization being performed, along with location information for tokens related to the initialization (equal sign, parentheses).
Definition at line 325 of file Initialization.h.
The kind of initialization being performed.
| IK_Direct |
Direct initialization. |
| IK_Copy |
Copy initialization. |
| IK_Default |
Default initialization. |
| IK_Value |
Value initialization. |
Definition at line 328 of file Initialization.h.
| static InitializationKind clang::InitializationKind::CreateCast | ( | SourceRange | TypeRange | ) | [inline, static] |
Create a direct initialization due to a cast that isn't a C-style or functional cast.
Definition at line 375 of file Initialization.h.
References clang::SourceRange::getBegin(), and clang::SourceRange::getEnd().
Referenced by tryDiagnoseOverloadedCast(), and TryStaticImplicitCast().
| static InitializationKind clang::InitializationKind::CreateCopy | ( | SourceLocation | InitLoc, |
| SourceLocation | EqualLoc | ||
| ) | [inline, static] |
Create a copy initialization.
Definition at line 397 of file Initialization.h.
Referenced by clang::Sema::AddInitializerToDecl(), clang::Sema::BuildCXXDefaultArgExpr(), clang::Sema::BuildExceptionDeclaration(), clang::Sema::CanPerformCopyInitialization(), ConvertForConditional(), EvaluateBinaryTypeTrait(), clang::Sema::FindCompositePointerType(), clang::Sema::PerformCopyInitialization(), clang::Sema::PerformMoveOrCopyInitialization(), clang::Sema::SetParamDefaultArgument(), and TryClassUnification().
| static InitializationKind clang::InitializationKind::CreateCStyleCast | ( | SourceLocation | StartLoc, |
| SourceRange | TypeRange | ||
| ) | [inline, static] |
Create a direct initialization for a C-style cast.
Definition at line 382 of file Initialization.h.
References clang::SourceRange::getBegin(), and clang::SourceRange::getEnd().
Referenced by clang::Sema::BuildCompoundLiteralExpr(), tryDiagnoseOverloadedCast(), and TryStaticImplicitCast().
| static InitializationKind clang::InitializationKind::CreateDefault | ( | SourceLocation | InitLoc | ) | [inline, static] |
Create a default initialization.
Definition at line 403 of file Initialization.h.
Referenced by clang::Sema::ActOnUninitializedDecl(), clang::Sema::BuildCXXNew(), BuildImplicitBaseInitializer(), BuildImplicitMemberInitializer(), and clang::Sema::SetIvarInitializers().
| static InitializationKind clang::InitializationKind::CreateDirect | ( | SourceLocation | InitLoc, |
| SourceLocation | LParenLoc, | ||
| SourceLocation | RParenLoc | ||
| ) | [inline, static] |
Create a direct initialization.
Definition at line 367 of file Initialization.h.
Referenced by clang::Sema::AddCXXDirectInitializerToDecl(), clang::Sema::AddInitializerToDecl(), clang::Sema::BuildBaseInitializer(), clang::Sema::BuildCXXNew(), clang::Sema::BuildCXXTypeConstructExpr(), clang::Sema::BuildDelegatingInitializer(), BuildImplicitBaseInitializer(), BuildImplicitMemberInitializer(), clang::Sema::BuildMemberInitializer(), and clang::Sema::TryCaptureVar().
| static InitializationKind clang::InitializationKind::CreateFunctionalCast | ( | SourceRange | TypeRange | ) | [inline, static] |
Create a direct initialization for a functional cast.
Definition at line 390 of file Initialization.h.
References clang::SourceRange::getBegin(), and clang::SourceRange::getEnd().
Referenced by tryDiagnoseOverloadedCast(), and TryStaticImplicitCast().
| static InitializationKind clang::InitializationKind::CreateValue | ( | SourceLocation | InitLoc, |
| SourceLocation | LParenLoc, | ||
| SourceLocation | RParenLoc, | ||
| bool | isImplicit = false |
||
| ) | [inline, static] |
Create a value initialization.
Definition at line 408 of file Initialization.h.
Referenced by clang::Sema::BuildCXXTypeConstructExpr().
| SourceLocation clang::InitializationKind::getEqualLoc | ( | ) | const [inline] |
Retrieve the location of the equal sign for copy initialization (if present).
Definition at line 463 of file Initialization.h.
Referenced by PerformConstructorInitialization().
| InitKind clang::InitializationKind::getKind | ( | ) | const [inline] |
Determine the initialization kind.
Definition at line 417 of file Initialization.h.
References IK_Direct, and IK_Value.
Referenced by clang::InitializationSequence::Diagnose(), getParenRange(), clang::InitializationSequence::InitializationSequence(), clang::InitializationSequence::Perform(), PerformConstructorInitialization(), TryConstructorInitialization(), TryDefaultInitialization(), TryListInitialization(), TryReferenceInitializationCore(), TryRefInitWithConversionFunction(), and TryUserDefinedConversion().
| SourceLocation clang::InitializationKind::getLocation | ( | ) | const [inline] |
Retrieve the location at which initialization is occurring.
Definition at line 454 of file Initialization.h.
Referenced by clang::InitializationSequence::Diagnose(), clang::InitializationSequence::Perform(), PerformConstructorInitialization(), TryConstructorInitialization(), TryRefInitWithConversionFunction(), and TryUserDefinedConversion().
| SourceRange clang::InitializationKind::getParenRange | ( | ) | const [inline] |
Retrieve the source range containing the locations of the open and closing parentheses for value and direct initializations.
Definition at line 472 of file Initialization.h.
References getKind(), and IK_Direct.
Referenced by PerformConstructorInitialization().
| SourceRange clang::InitializationKind::getRange | ( | ) | const [inline] |
Retrieve the source range that covers the initialization.
Definition at line 457 of file Initialization.h.
Referenced by clang::InitializationSequence::Perform().
| bool clang::InitializationKind::isCopyInit | ( | ) | const [inline] |
Definition at line 468 of file Initialization.h.
Referenced by PerformConstructorInitialization().
| bool clang::InitializationKind::isCStyleCast | ( | ) | const [inline] |
brief Determine whether this is a C-style cast.
Definition at line 439 of file Initialization.h.
Referenced by clang::InitializationSequence::Perform().
| bool clang::InitializationKind::isCStyleOrFunctionalCast | ( | ) | const [inline] |
Determine whether this initialization is a C-style cast.
Definition at line 434 of file Initialization.h.
Referenced by clang::InitializationSequence::Diagnose(), clang::InitializationSequence::InitializationSequence(), clang::InitializationSequence::Perform(), and TryReferenceInitializationCore().
| bool clang::InitializationKind::isExplicitCast | ( | ) | const [inline] |
Determine whether this initialization is an explicit cast.
Definition at line 427 of file Initialization.h.
Referenced by clang::InitializationSequence::Perform().
| bool clang::InitializationKind::isFunctionalCast | ( | ) | const [inline] |
brief Determine whether this is a functional-style cast.
Definition at line 444 of file Initialization.h.
Referenced by clang::InitializationSequence::Perform().
| bool clang::InitializationKind::isImplicitValueInit | ( | ) | const [inline] |
Determine whether this initialization is an implicit value-initialization, e.g., as occurs during aggregate initialization.
Definition at line 451 of file Initialization.h.
Referenced by clang::InitializationSequence::Perform().