clang API Documentation
Represents a C++ nested-name-specifier or a global scope specifier. More...
#include <DeclSpec.h>
Public Member Functions | |
const SourceRange & | getRange () const |
void | setRange (const SourceRange &R) |
void | setBeginLoc (SourceLocation Loc) |
void | setEndLoc (SourceLocation Loc) |
SourceLocation | getBeginLoc () const |
SourceLocation | getEndLoc () const |
NestedNameSpecifier * | getScopeRep () const |
Retrieve the representation of the nested-name-specifier. | |
void | Extend (ASTContext &Context, SourceLocation TemplateKWLoc, TypeLoc TL, SourceLocation ColonColonLoc) |
Extend the current nested-name-specifier by another nested-name-specifier component of the form 'type::'. | |
void | Extend (ASTContext &Context, IdentifierInfo *Identifier, SourceLocation IdentifierLoc, SourceLocation ColonColonLoc) |
Extend the current nested-name-specifier by another nested-name-specifier component of the form 'identifier::'. | |
void | Extend (ASTContext &Context, NamespaceDecl *Namespace, SourceLocation NamespaceLoc, SourceLocation ColonColonLoc) |
Extend the current nested-name-specifier by another nested-name-specifier component of the form 'namespace::'. | |
void | Extend (ASTContext &Context, NamespaceAliasDecl *Alias, SourceLocation AliasLoc, SourceLocation ColonColonLoc) |
Extend the current nested-name-specifier by another nested-name-specifier component of the form 'namespace-alias::'. | |
void | MakeGlobal (ASTContext &Context, SourceLocation ColonColonLoc) |
Turn this (empty) nested-name-specifier into the global nested-name-specifier '::'. | |
void | MakeSuper (ASTContext &Context, CXXRecordDecl *RD, SourceLocation SuperLoc, SourceLocation ColonColonLoc) |
Turns this (empty) nested-name-specifier into '__super' nested-name-specifier. | |
void | MakeTrivial (ASTContext &Context, NestedNameSpecifier *Qualifier, SourceRange R) |
Make a new nested-name-specifier from incomplete source-location information. | |
void | Adopt (NestedNameSpecifierLoc Other) |
Adopt an existing nested-name-specifier (with source-range information). | |
NestedNameSpecifierLoc | getWithLocInContext (ASTContext &Context) const |
Retrieve a nested-name-specifier with location information, copied into the given AST context. | |
SourceLocation | getLastQualifierNameLoc () const |
Retrieve the location of the name in the last qualifier in this nested name specifier. | |
bool | isEmpty () const |
No scope specifier. | |
bool | isNotEmpty () const |
A scope specifier is present, but may be valid or invalid. | |
bool | isInvalid () const |
An error occurred during parsing of the scope specifier. | |
bool | isValid () const |
A scope specifier is present, and it refers to a real scope. | |
void | SetInvalid (SourceRange R) |
Indicate that this nested-name-specifier is invalid. | |
bool | isSet () const |
void | clear () |
char * | location_data () const |
Retrieve the data associated with the source-location information. | |
unsigned | location_size () const |
Retrieve the size of the data associated with source-location information. |
Represents a C++ nested-name-specifier or a global scope specifier.
These can be in 3 states: 1) Not present, identified by isEmpty() 2) Present, identified by isNotEmpty() 2.a) Valid, idenified by isValid() 2.b) Invalid, identified by isInvalid().
isSet() is deprecated because it mostly corresponded to "valid" but was often used as if it meant "present".
The actual scope is described by getScopeRep().
Definition at line 67 of file DeclSpec.h.
void CXXScopeSpec::Adopt | ( | NestedNameSpecifierLoc | Other | ) |
Adopt an existing nested-name-specifier (with source-range information).
Definition at line 135 of file DeclSpec.cpp.
References clang::NestedNameSpecifierLocBuilder::Adopt(), clang::NestedNameSpecifierLocBuilder::Clear(), and clang::NestedNameSpecifierLoc::getSourceRange().
Referenced by BuildRecoveryCallExpr(), clang::Sema::CheckTemplateArgument(), clang::Sema::CheckTemplateTypeArgument(), clang::Sema::CheckTypenameType(), clang::Sema::DiagnoseEmptyLookup(), clang::Sema::getDestructorName(), clang::TreeTransform< Derived >::RebuildCXXDependentScopeMemberExpr(), clang::TreeTransform< Derived >::RebuildDeclRefExpr(), clang::TreeTransform< Derived >::RebuildDependentNameType(), clang::TreeTransform< Derived >::RebuildDependentScopeDeclRefExpr(), clang::TreeTransform< Derived >::RebuildDependentTemplateSpecializationType(), clang::TreeTransform< Derived >::RebuildMemberExpr(), clang::Sema::RebuildNestedNameSpecifierInCurrentInstantiation(), clang::TreeTransform< Derived >::RebuildUnresolvedMemberExpr(), clang::Sema::RestoreNestedNameSpecifierAnnotation(), clang::Sema::SubstTemplateName(), clang::TreeTransform< Derived >::TransformTemplateArgument(), clang::TemplateDeclInstantiator::VisitCXXMethodDecl(), and clang::TemplateDeclInstantiator::VisitFunctionDecl().
void clang::CXXScopeSpec::clear | ( | ) | [inline] |
Definition at line 215 of file DeclSpec.h.
References clang::NestedNameSpecifierLocBuilder::Clear().
Referenced by clang::Sema::ActOnCXXMemberDeclarator(), clang::Sema::ActOnFriendFunctionDecl(), clang::Sema::ActOnParamDeclarator(), clang::Declarator::clear(), clang::Sema::diagnoseQualifiedDeclaration(), LookupMemberExpr(), and clang::Parser::ParseUnqualifiedId().
void CXXScopeSpec::Extend | ( | ASTContext & | Context, |
SourceLocation | TemplateKWLoc, | ||
TypeLoc | TL, | ||
SourceLocation | ColonColonLoc | ||
) |
Extend the current nested-name-specifier by another nested-name-specifier component of the form 'type::'.
Context | The AST context in which this nested-name-specifier resides. |
TemplateKWLoc | The location of the 'template' keyword, if present. |
TL | The TypeLoc that describes the type preceding the '::'. |
ColonColonLoc | The location of the trailing '::'. |
Definition at line 57 of file DeclSpec.cpp.
References clang::NestedNameSpecifierLocBuilder::Extend(), clang::SourceRange::getBegin(), clang::TypeLoc::getBeginLoc(), clang::NestedNameSpecifierLocBuilder::getSourceRange(), clang::SourceLocation::isInvalid(), clang::SourceRange::setBegin(), and clang::SourceRange::setEnd().
Referenced by clang::Sema::ActOnCXXNestedNameSpecifier(), clang::Sema::ActOnCXXNestedNameSpecifierDecltype(), clang::Sema::BuildCXXNestedNameSpecifier(), and clang::TreeTransform< Derived >::RebuildCXXPseudoDestructorExpr().
void CXXScopeSpec::Extend | ( | ASTContext & | Context, |
IdentifierInfo * | Identifier, | ||
SourceLocation | IdentifierLoc, | ||
SourceLocation | ColonColonLoc | ||
) |
Extend the current nested-name-specifier by another nested-name-specifier component of the form 'identifier::'.
Context | The AST context in which this nested-name-specifier resides. |
Identifier | The identifier. |
IdentifierLoc | The location of the identifier. |
ColonColonLoc | The location of the trailing '::'. |
Definition at line 68 of file DeclSpec.cpp.
References clang::NestedNameSpecifierLocBuilder::Extend(), clang::SourceRange::getBegin(), clang::NestedNameSpecifierLocBuilder::getSourceRange(), clang::SourceLocation::isInvalid(), clang::SourceRange::setBegin(), and clang::SourceRange::setEnd().
void CXXScopeSpec::Extend | ( | ASTContext & | Context, |
NamespaceDecl * | Namespace, | ||
SourceLocation | NamespaceLoc, | ||
SourceLocation | ColonColonLoc | ||
) |
Extend the current nested-name-specifier by another nested-name-specifier component of the form 'namespace::'.
Context | The AST context in which this nested-name-specifier resides. |
Namespace | The namespace. |
NamespaceLoc | The location of the namespace name. |
ColonColonLoc | The location of the trailing '::'. |
Definition at line 81 of file DeclSpec.cpp.
References clang::NestedNameSpecifierLocBuilder::Extend(), clang::SourceRange::getBegin(), clang::NestedNameSpecifierLocBuilder::getSourceRange(), clang::SourceLocation::isInvalid(), clang::SourceRange::setBegin(), and clang::SourceRange::setEnd().
void CXXScopeSpec::Extend | ( | ASTContext & | Context, |
NamespaceAliasDecl * | Alias, | ||
SourceLocation | AliasLoc, | ||
SourceLocation | ColonColonLoc | ||
) |
Extend the current nested-name-specifier by another nested-name-specifier component of the form 'namespace-alias::'.
Context | The AST context in which this nested-name-specifier resides. |
Alias | The namespace alias. |
AliasLoc | The location of the namespace alias name. |
ColonColonLoc | The location of the trailing '::'. |
Definition at line 94 of file DeclSpec.cpp.
References clang::NestedNameSpecifierLocBuilder::Extend(), clang::SourceRange::getBegin(), clang::NestedNameSpecifierLocBuilder::getSourceRange(), clang::SourceLocation::isInvalid(), clang::SourceRange::setBegin(), and clang::SourceRange::setEnd().
SourceLocation clang::CXXScopeSpec::getBeginLoc | ( | ) | const [inline] |
Definition at line 76 of file DeclSpec.h.
References clang::SourceRange::getBegin().
Referenced by clang::Sema::ActOnOpenMPReductionClause(), clang::Sema::ActOnPackExpansion(), clang::Sema::BuildQualifiedDeclarationNameExpr(), clang::Sema::CheckTypenameType(), clang::Sema::CheckUsingDeclQualifier(), GetFullTypeForDeclarator(), clang::Sema::ParsedFreeStandingDeclSpec(), clang::TypoCorrection::setCorrectionRange(), and clang::Parser::TryAnnotateTypeOrScopeTokenAfterScopeSpec().
SourceLocation clang::CXXScopeSpec::getEndLoc | ( | ) | const [inline] |
Definition at line 77 of file DeclSpec.h.
References clang::SourceRange::getEnd().
Retrieve the location of the name in the last qualifier in this nested name specifier.
For example, the location of bar
in
/// \::foo::bar<0>:: /// ^~~ ///
Definition at line 146 of file DeclSpec.cpp.
References clang::NestedNameSpecifierLoc::getLocalBeginLoc(), clang::NestedNameSpecifierLocBuilder::getRepresentation(), and clang::NestedNameSpecifierLocBuilder::getTemporary().
Referenced by clang::Sema::RequireCompleteDeclContext().
const SourceRange& clang::CXXScopeSpec::getRange | ( | ) | const [inline] |
Definition at line 72 of file DeclSpec.h.
Referenced by clang::Sema::ActOnCXXMemberDeclarator(), clang::Sema::ActOnCXXNestedNameSpecifier(), clang::Sema::ActOnDependentTag(), clang::Sema::ActOnExceptionDeclarator(), clang::Sema::ActOnExplicitInstantiation(), clang::Sema::ActOnFriendFunctionDecl(), clang::Sema::ActOnFunctionDeclarator(), clang::Sema::ActOnNamespaceAliasDef(), clang::Sema::ActOnObjCExceptionDecl(), clang::Sema::ActOnParamDeclarator(), clang::Sema::ActOnTag(), clang::Sema::ActOnTemplatedFriendTag(), clang::Sema::ActOnTypedefDeclarator(), clang::Sema::ActOnUsingDeclaration(), clang::Sema::ActOnUsingDirective(), clang::Sema::ActOnVariableDeclarator(), clang::Sema::BuildCXXNestedNameSpecifier(), clang::Sema::BuildDeclarationNameExpr(), clang::Sema::BuildImplicitMemberExpr(), clang::Sema::BuildMemberReferenceExpr(), clang::Sema::BuildQualifiedDeclarationNameExpr(), clang::Sema::BuildQualifiedTemplateIdExpr(), clang::Sema::BuildUsingDeclaration(), clang::Sema::CheckClassTemplate(), clang::Sema::CheckUsingDeclQualifier(), clang::Sema::CheckUsingDeclRedeclaration(), diagnoseInstanceReference(), clang::Sema::diagnoseQualifiedDeclaration(), DiagnoseQualifiedMemberReference(), clang::Sema::DiagnoseUnexpandedParameterPack(), clang::Sema::DiagnoseUnknownTypeName(), GetFullTypeForDeclarator(), clang::Sema::HandleDeclarator(), clang::Sema::isNonTypeNestedNameSpecifier(), LookupMemberExpr(), LookupMemberExprInRecord(), clang::Sema::LookupParsedName(), clang::Sema::ParsedFreeStandingDeclSpec(), clang::Sema::RebuildNestedNameSpecifierInCurrentInstantiation(), clang::Sema::RequireCompleteDeclContext(), and clang::Parser::TryAnnotateTypeOrScopeToken().
NestedNameSpecifier* clang::CXXScopeSpec::getScopeRep | ( | ) | const [inline] |
Retrieve the representation of the nested-name-specifier.
Definition at line 80 of file DeclSpec.h.
References clang::NestedNameSpecifierLocBuilder::getRepresentation().
Referenced by clang::Sema::ActOnCXXNestedNameSpecifier(), clang::Sema::ActOnDependentTag(), clang::Sema::ActOnDependentTemplateName(), clang::Sema::ActOnFriendFunctionDecl(), clang::Sema::ActOnFunctionDeclarator(), clang::Sema::ActOnMemberAccessExpr(), clang::Sema::ActOnTagTemplateIdType(), clang::Sema::ActOnTemplatedFriendTag(), clang::Sema::ActOnTemplateIdType(), clang::Sema::ActOnTypenameType(), clang::Sema::ActOnUsingDirective(), BuildFieldReferenceExpr(), clang::Sema::BuildMemInitializer(), clang::Sema::BuildQualifiedDeclarationNameExpr(), clang::Sema::BuildQualifiedTemplateIdExpr(), clang::Sema::CheckClassTemplate(), clang::Sema::checkLiteralOperatorId(), clang::Sema::CheckTemplateTypeArgument(), clang::Sema::CheckTypenameType(), clang::Sema::CheckUsingDeclQualifier(), clang::Sema::CheckUsingDeclRedeclaration(), clang::Sema::ClassifyName(), clang::Sema::CodeCompleteQualifiedId(), clang::Sema::collectUnexpandedParameterPacks(), clang::Sema::computeDeclContext(), clang::Sema::containsUnexpandedParameterPacks(), clang::Sema::diagnoseQualifiedDeclaration(), clang::Sema::DiagnoseUnexpandedParameterPack(), clang::Sema::DiagnoseUnknownTemplateName(), clang::Sema::DiagnoseUnknownTypeName(), clang::Sema::getDestructorName(), clang::Sema::getElaboratedType(), GetFullTypeForDeclarator(), clang::Sema::getInheritingConstructorName(), getRangeOfTypeInNestedNameSpecifier(), clang::Sema::HandleDeclarator(), clang::Sema::isDependentScopeSpecifier(), isInvalid(), clang::Sema::isMicrosoftMissingTypename(), isSet(), clang::Sema::isTemplateName(), isValid(), LookupMemberExpr(), clang::Sema::LookupParsedName(), clang::Sema::MatchTemplateParametersToScopeSpecifier(), clang::TreeTransform< Derived >::RebuildTemplateName(), clang::Sema::SaveNestedNameSpecifierAnnotation(), ScopeSpecifierHasTemplateId(), clang::Sema::ShouldEnterDeclaratorScope(), clang::TreeTransform< Derived >::TransformNestedNameSpecifierLoc(), and clang::TreeTransform< Derived >::TransformTemplateName().
NestedNameSpecifierLoc CXXScopeSpec::getWithLocInContext | ( | ASTContext & | Context | ) | const |
Retrieve a nested-name-specifier with location information, copied into the given AST context.
Context | The context into which this nested-name-specifier will be copied. |
Definition at line 153 of file DeclSpec.cpp.
References clang::NestedNameSpecifierLocBuilder::getRepresentation(), and clang::NestedNameSpecifierLocBuilder::getWithLocInContext().
Referenced by clang::Sema::ActOnCXXNestedNameSpecifier(), clang::Sema::ActOnDependentIdExpression(), clang::Sema::ActOnDependentMemberExpr(), clang::Sema::ActOnDependentTag(), clang::Sema::ActOnMSDependentExistsStmt(), clang::Sema::ActOnNamespaceAliasDef(), clang::Sema::ActOnOpenMPReductionClause(), clang::Sema::ActOnTag(), clang::Sema::ActOnTagTemplateIdType(), clang::Sema::ActOnTemplatedFriendTag(), clang::Sema::ActOnTemplateIdType(), clang::Sema::ActOnTypenameType(), clang::Sema::ActOnUsingDirective(), clang::Sema::BuildDeclarationNameExpr(), clang::Sema::BuildDeclRefExpr(), clang::Sema::BuildDependentDeclRefExpr(), BuildMemberExpr(), clang::Sema::BuildMemberReferenceExpr(), clang::Sema::BuildMemInitializer(), BuildMSPropertyRefExpr(), buildNestedType(), clang::Sema::BuildPseudoDestructorExpr(), clang::Sema::BuildQualifiedDeclarationNameExpr(), clang::Sema::BuildTemplateIdExpr(), clang::Sema::BuildUsingDeclaration(), clang::Sema::CheckTemplateTypeArgument(), clang::Sema::DiagnoseEmptyLookup(), clang::Sema::getDestructorName(), clang::Sema::getTypeName(), clang::Sema::RebuildNestedNameSpecifierInCurrentInstantiation(), recoverFromMSUnqualifiedLookup(), recoverFromTypeInKnownDependentBase(), SetNestedNameSpecifier(), clang::TreeTransform< Derived >::TransformDependentTemplateSpecializationType(), clang::TreeTransform< Derived >::TransformNestedNameSpecifierLoc(), and translateTemplateArgument().
bool clang::CXXScopeSpec::isEmpty | ( | ) | const [inline] |
No scope specifier.
Definition at line 193 of file DeclSpec.h.
References clang::SourceRange::isValid().
Referenced by clang::Sema::ActOnIdExpression(), clang::Sema::ActOnOpenMPReductionClause(), clang::Sema::ActOnTag(), clang::Sema::ActOnTemplatedFriendTag(), clang::Sema::ActOnVariableDeclarator(), clang::Sema::BuildUsingDeclaration(), clang::Sema::CheckClassTemplate(), clang::Sema::ClassifyName(), clang::Sema::DiagnoseEmptyLookup(), diagnoseInstanceReference(), DiagnoseTwoPhaseLookup(), clang::Sema::getTypeName(), isNotEmpty(), LookupMemberExpr(), ParseReductionId(), clang::Parser::ParseUnqualifiedId(), clang::Sema::SaveNestedNameSpecifierAnnotation(), clang::TypoCorrection::setCorrectionRange(), clang::Parser::TryAnnotateCXXScopeToken(), and clang::Parser::TryAnnotateTypeOrScopeTokenAfterScopeSpec().
bool clang::CXXScopeSpec::isInvalid | ( | ) | const [inline] |
An error occurred during parsing of the scope specifier.
Definition at line 198 of file DeclSpec.h.
References getScopeRep(), and isNotEmpty().
Referenced by clang::Sema::ActOnCXXEnterDeclaratorScope(), clang::Sema::ActOnCXXExitDeclaratorScope(), clang::Sema::ActOnCXXMemberDeclarator(), clang::Sema::ActOnCXXNestedNameSpecifier(), clang::Sema::ActOnCXXNestedNameSpecifierDecltype(), clang::Sema::ActOnFriendFunctionDecl(), clang::Sema::ActOnIdExpression(), clang::Sema::ActOnMemberAccessExpr(), clang::Sema::ActOnTag(), clang::Sema::ActOnTemplateIdType(), clang::Sema::ActOnTypenameType(), clang::Sema::ActOnUsingDirective(), clang::Sema::BuildUsingDeclaration(), clang::Sema::CheckClassTemplate(), clang::Sema::ClassifyName(), clang::Sema::computeDeclContext(), clang::Sema::DiagnoseUnknownTypeName(), GetFullTypeForDeclarator(), clang::Sema::HandleDeclarator(), clang::Sema::isCurrentClassName(), clang::Sema::isCurrentClassNameTypo(), clang::Sema::isDependentScopeSpecifier(), clang::Sema::IsInvalidUnlessNestedName(), clang::Sema::isTemplateName(), LookupMemberExpr(), clang::Sema::LookupParsedName(), clang::Sema::RebuildNestedNameSpecifierInCurrentInstantiation(), and clang::Sema::SaveNestedNameSpecifierAnnotation().
bool clang::CXXScopeSpec::isNotEmpty | ( | ) | const [inline] |
A scope specifier is present, but may be valid or invalid.
Definition at line 195 of file DeclSpec.h.
References isEmpty().
Referenced by clang::Sema::ActOnFunctionDeclarator(), clang::Sema::ActOnTag(), clang::Sema::ActOnTemplatedFriendTag(), clang::Sema::ActOnTemplateIdType(), clang::Sema::ActOnVariableDeclarator(), clang::Sema::CheckClassTemplate(), clang::Sema::ClassifyName(), clang::Sema::getTypeName(), isInvalid(), isValid(), clang::Sema::ParsedFreeStandingDeclSpec(), and clang::Parser::TryAnnotateTypeOrScopeTokenAfterScopeSpec().
bool clang::CXXScopeSpec::isSet | ( | ) | const [inline] |
Deprecated. Some call sites intend isNotEmpty() while others intend isValid().
Definition at line 213 of file DeclSpec.h.
References getScopeRep().
Referenced by clang::Sema::ActOnClassTemplateSpecialization(), clang::Sema::ActOnCXXEnterDeclaratorScope(), clang::Sema::ActOnCXXExitDeclaratorScope(), clang::Sema::ActOnCXXMemberDeclarator(), clang::Sema::ActOnDependentTemplateName(), clang::Sema::ActOnExceptionDeclarator(), clang::Sema::ActOnExplicitInstantiation(), clang::Sema::ActOnFriendFunctionDecl(), clang::Sema::ActOnFunctionDeclarator(), clang::Sema::ActOnIdExpression(), clang::Sema::ActOnMemberAccessExpr(), clang::Sema::ActOnObjCExceptionDecl(), clang::Sema::ActOnParamDeclarator(), clang::Sema::ActOnPseudoDestructorExpr(), clang::Sema::ActOnTag(), clang::Sema::ActOnTypedefDeclarator(), clang::Sema::ActOnUsingDirective(), clang::Sema::ActOnVariableDeclarator(), clang::Sema::BuildCXXNestedNameSpecifier(), clang::Sema::BuildMemberReferenceExpr(), clang::Sema::BuildMemInitializer(), clang::Sema::CheckClassTemplate(), clang::Sema::ClassifyName(), clang::Sema::computeDeclContext(), diagnoseInstanceReference(), clang::Sema::DiagnoseUnknownTemplateName(), clang::Sema::DiagnoseUnknownTypeName(), clang::Sema::getDestructorName(), GetFullTypeForDeclarator(), clang::Sema::HandleDeclarator(), clang::Sema::isCurrentClassName(), clang::Sema::isCurrentClassNameTypo(), clang::Sema::isDependentScopeSpecifier(), clang::Sema::isNonTypeNestedNameSpecifier(), clang::Sema::isTemplateName(), LookupMemberExprInRecord(), clang::Sema::LookupParsedName(), clang::Sema::LookupTemplateName(), clang::Parser::ParseUnqualifiedId(), ScopeSpecifierHasTemplateId(), SetNestedNameSpecifier(), clang::Sema::ShouldEnterDeclaratorScope(), clang::Parser::TryAnnotateTypeOrScopeToken(), and clang::Sema::UseArgumentDependentLookup().
bool clang::CXXScopeSpec::isValid | ( | ) | const [inline] |
A scope specifier is present, and it refers to a real scope.
Definition at line 200 of file DeclSpec.h.
References getScopeRep(), and isNotEmpty().
Referenced by clang::Sema::ActOnFriendFunctionDecl(), clang::Sema::ActOnOpenMPReductionClause(), clang::Sema::ActOnPackExpansion(), clang::Sema::CheckClassTemplate(), clang::Sema::checkLiteralOperatorId(), and clang::Sema::getElaboratedType().
char* clang::CXXScopeSpec::location_data | ( | ) | const [inline] |
Retrieve the data associated with the source-location information.
Definition at line 221 of file DeclSpec.h.
References clang::NestedNameSpecifierLocBuilder::getBuffer().
Referenced by clang::Sema::collectUnexpandedParameterPacks(), clang::Sema::diagnoseQualifiedDeclaration(), clang::Sema::getDestructorName(), getRangeOfTypeInNestedNameSpecifier(), clang::Sema::SaveNestedNameSpecifierAnnotation(), and clang::TreeTransform< Derived >::TransformNestedNameSpecifierLoc().
unsigned clang::CXXScopeSpec::location_size | ( | ) | const [inline] |
Retrieve the size of the data associated with source-location information.
Definition at line 225 of file DeclSpec.h.
References clang::NestedNameSpecifierLocBuilder::getBuffer().
Referenced by clang::Sema::SaveNestedNameSpecifierAnnotation(), and clang::TreeTransform< Derived >::TransformNestedNameSpecifierLoc().
void CXXScopeSpec::MakeGlobal | ( | ASTContext & | Context, |
SourceLocation | ColonColonLoc | ||
) |
Turn this (empty) nested-name-specifier into the global nested-name-specifier '::'.
Definition at line 107 of file DeclSpec.cpp.
References clang::NestedNameSpecifierLocBuilder::getSourceRange(), and clang::NestedNameSpecifierLocBuilder::MakeGlobal().
Referenced by clang::Sema::ActOnCXXGlobalScopeSpecifier().
void CXXScopeSpec::MakeSuper | ( | ASTContext & | Context, |
CXXRecordDecl * | RD, | ||
SourceLocation | SuperLoc, | ||
SourceLocation | ColonColonLoc | ||
) |
Turns this (empty) nested-name-specifier into '__super' nested-name-specifier.
Context | The AST context in which this nested-name-specifier resides. |
RD | The declaration of the class in which nested-name-specifier appeared. |
SuperLoc | The location of the '__super' keyword. name. |
ColonColonLoc | The location of the trailing '::'. |
Definition at line 117 of file DeclSpec.cpp.
References clang::NestedNameSpecifierLocBuilder::getSourceRange(), clang::NestedNameSpecifierLocBuilder::MakeSuper(), clang::SourceRange::setBegin(), and clang::SourceRange::setEnd().
Referenced by clang::Sema::ActOnSuperScopeSpecifier().
void CXXScopeSpec::MakeTrivial | ( | ASTContext & | Context, |
NestedNameSpecifier * | Qualifier, | ||
SourceRange | R | ||
) |
Make a new nested-name-specifier from incomplete source-location information.
FIXME: This routine should be used very, very rarely, in cases where we need to synthesize a nested-name-specifier. Most code should instead use Adopt()
with a proper NestedNameSpecifierLoc
.
Definition at line 129 of file DeclSpec.cpp.
References clang::NestedNameSpecifierLocBuilder::MakeTrivial().
Referenced by clang::Sema::BuildExpressionFromDeclTemplateArgument(), buildSingleCopyAssignRecursively(), clang::Sema::DiagnoseUnknownTypeName(), clang::Sema::getTypeName(), recoverFromMSUnqualifiedLookup(), and recoverFromTypeInKnownDependentBase().
void clang::CXXScopeSpec::setBeginLoc | ( | SourceLocation | Loc | ) | [inline] |
Definition at line 74 of file DeclSpec.h.
References clang::SourceRange::setBegin().
void clang::CXXScopeSpec::setEndLoc | ( | SourceLocation | Loc | ) | [inline] |
Definition at line 75 of file DeclSpec.h.
References clang::SourceRange::setEnd().
void clang::CXXScopeSpec::SetInvalid | ( | SourceRange | R | ) | [inline] |
Indicate that this nested-name-specifier is invalid.
Definition at line 203 of file DeclSpec.h.
References clang::NestedNameSpecifierLocBuilder::Clear(), clang::SourceRange::getBegin(), clang::SourceRange::getEnd(), clang::SourceLocation::isInvalid(), clang::SourceRange::isValid(), clang::SourceRange::setBegin(), and clang::SourceRange::setEnd().
Referenced by clang::Sema::RequireCompleteDeclContext(), and clang::Sema::RestoreNestedNameSpecifierAnnotation().
void clang::CXXScopeSpec::setRange | ( | const SourceRange & | R | ) | [inline] |
Definition at line 73 of file DeclSpec.h.