clang 19.0.0git
Public Member Functions | List of all members
clang::CXXScopeSpec Class Reference

Represents a C++ nested-name-specifier or a global scope specifier. More...

#include "clang/Sema/DeclSpec.h"

Public Member Functions

SourceRange getRange () const
 
void setRange (SourceRange R)
 
void setBeginLoc (SourceLocation Loc)
 
void setEndLoc (SourceLocation Loc)
 
SourceLocation getBeginLoc () const
 
SourceLocation getEndLoc () const
 
void setTemplateParamLists (ArrayRef< TemplateParameterList * > L)
 
ArrayRef< TemplateParameterList * > getTemplateParamLists () const
 
NestedNameSpecifiergetScopeRep () 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
 Deprecated.
 
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.
 

Detailed Description

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, identified 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().

If the kind of getScopeRep() is TypeSpec then TemplateParamLists may be empty or contain the template parameter lists attached to the current declaration. Consider the following example: template <class T> void SomeType<T>::some_method() {} If CXXScopeSpec refers to SomeType<T> then TemplateParamLists will contain a single element referring to template <class T>.

Definition at line 73 of file DeclSpec.h.

Member Function Documentation

◆ Adopt()

void CXXScopeSpec::Adopt ( NestedNameSpecifierLoc  Other)

Adopt an existing nested-name-specifier (with source-range information).

Definition at line 132 of file DeclSpec.cpp.

References clang::NestedNameSpecifierLocBuilder::Adopt(), clang::NestedNameSpecifierLocBuilder::Clear(), clang::NestedNameSpecifierLocBuilder::getSourceRange(), and clang::Other.

Referenced by clang::Sema::ActOnNameClassifiedAsOverloadSet(), clang::Sema::ActOnTemplateTypeArgument(), BuildRecoveryCallExpr(), clang::Sema::CheckPlaceholderExpr(), clang::Sema::CheckTemplateArgument(), clang::Sema::CheckTemplateTypeArgument(), clang::Sema::CheckTypenameType(), clang::Sema::diagnoseExprIntendedAsTemplateName(), formImmediatelyDeclaredConstraint(), clang::Sema::getDestructorName(), clang::TreeTransform< Derived >::RebuildConceptSpecializationExpr(), 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 >::TransformNestedNameSpecifierLoc(), clang::transformOMPMappableExprListClause(), clang::TreeTransform< Derived >::TransformTemplateArgument(), clang::TemplateDeclInstantiator::VisitCXXMethodDecl(), and clang::TemplateDeclInstantiator::VisitFunctionDecl().

◆ clear()

void clang::CXXScopeSpec::clear ( )
inline

◆ Extend() [1/4]

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::'.

Parameters
ContextThe AST context in which this nested-name-specifier resides.
IdentifierThe identifier.
IdentifierLocThe location of the identifier.
ColonColonLocThe location of the trailing '::'.

Definition at line 65 of file DeclSpec.cpp.

References clang::NestedNameSpecifierLocBuilder::Extend(), clang::SourceRange::getBegin(), clang::NestedNameSpecifierLocBuilder::getSourceRange(), Identifier, clang::SourceLocation::isInvalid(), clang::SourceRange::setBegin(), and clang::SourceRange::setEnd().

◆ Extend() [2/4]

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::'.

Parameters
ContextThe AST context in which this nested-name-specifier resides.
AliasThe namespace alias.
AliasLocThe location of the namespace alias name.
ColonColonLocThe location of the trailing '::'.

Definition at line 91 of file DeclSpec.cpp.

References clang::NestedNameSpecifierLocBuilder::Extend(), clang::SourceRange::getBegin(), clang::NestedNameSpecifierLocBuilder::getSourceRange(), clang::SourceLocation::isInvalid(), clang::SourceRange::setBegin(), and clang::SourceRange::setEnd().

◆ Extend() [3/4]

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::'.

Parameters
ContextThe AST context in which this nested-name-specifier resides.
NamespaceThe namespace.
NamespaceLocThe location of the namespace name.
ColonColonLocThe location of the trailing '::'.

Definition at line 78 of file DeclSpec.cpp.

References clang::NestedNameSpecifierLocBuilder::Extend(), clang::SourceRange::getBegin(), clang::NestedNameSpecifierLocBuilder::getSourceRange(), clang::SourceLocation::isInvalid(), clang::SourceRange::setBegin(), and clang::SourceRange::setEnd().

◆ Extend() [4/4]

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::'.

Parameters
ContextThe AST context in which this nested-name-specifier resides.
TemplateKWLocThe location of the 'template' keyword, if present.
TLThe TypeLoc that describes the type preceding the '::'.
ColonColonLocThe location of the trailing '::'.

Definition at line 54 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::ActOnCXXNestedNameSpecifierIndexedPack(), clang::Sema::BuildCXXNestedNameSpecifier(), clang::TreeTransform< Derived >::RebuildCXXPseudoDestructorExpr(), and clang::TreeTransform< Derived >::TransformNestedNameSpecifierLoc().

◆ getBeginLoc()

SourceLocation clang::CXXScopeSpec::getBeginLoc ( ) const
inline

◆ getEndLoc()

SourceLocation clang::CXXScopeSpec::getEndLoc ( ) const
inline

Definition at line 84 of file DeclSpec.h.

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

◆ getLastQualifierNameLoc()

SourceLocation CXXScopeSpec::getLastQualifierNameLoc ( ) const

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 145 of file DeclSpec.cpp.

References clang::NestedNameSpecifierLoc::getLocalBeginLoc(), clang::NestedNameSpecifierLocBuilder::getRepresentation(), and clang::NestedNameSpecifierLocBuilder::getTemporary().

Referenced by clang::Sema::computeDeclContext(), clang::Sema::getConstructorName(), and clang::Sema::RequireCompleteDeclContext().

◆ getRange()

SourceRange clang::CXXScopeSpec::getRange ( ) const
inline

Definition at line 79 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::ActOnTag(), clang::Sema::ActOnTemplatedFriendTag(), clang::Sema::ActOnTemplateName(), 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::CheckFunctionOrTemplateParamDeclarator(), clang::Sema::CheckUsingDeclQualifier(), clang::Sema::CheckUsingDeclRedeclaration(), clang::Sema::ClassifyName(), clang::Sema::DiagnoseEmptyLookup(), clang::Sema::diagnoseExprIntendedAsTemplateName(), diagnoseInstanceReference(), clang::Sema::diagnoseQualifiedDeclaration(), DiagnoseQualifiedMemberReference(), clang::Sema::DiagnoseUnexpandedParameterPack(), clang::Sema::DiagnoseUnknownTypeName(), emitEmptyLookupTypoDiagnostic(), clang::Sema::getConstructorName(), clang::Sema::getDestructorName(), GetFullTypeForDeclarator(), clang::Sema::getTypeName(), clang::Sema::HandleDeclarator(), LookupMemberExpr(), LookupMemberExprInRecord(), clang::Sema::LookupParsedName(), clang::Sema::LookupTemplateName(), clang::Sema::RebuildNestedNameSpecifierInCurrentInstantiation(), clang::Sema::RequireCompleteDeclContext(), clang::Sema::RequireCompleteEnumDecl(), clang::TreeTransform< Derived >::TransformNestedNameSpecifierLoc(), clang::Parser::TryAnnotateTypeOrScopeToken(), and TryNamespaceTypoCorrection().

◆ getScopeRep()

NestedNameSpecifier * clang::CXXScopeSpec::getScopeRep ( ) const
inline

Retrieve the representation of the nested-name-specifier.

Definition at line 94 of file DeclSpec.h.

Referenced by clang::Sema::ActOnCXXNestedNameSpecifier(), clang::Sema::ActOnDependentIdExpression(), clang::Sema::ActOnDependentTag(), clang::Sema::ActOnFriendFunctionDecl(), clang::Sema::ActOnFunctionDeclarator(), clang::Sema::ActOnIdExpression(), clang::Sema::ActOnMemberAccessExpr(), clang::Sema::ActOnTagTemplateIdType(), clang::Sema::ActOnTemplatedFriendTag(), clang::Sema::ActOnTemplateIdType(), clang::Sema::ActOnTemplateName(), clang::Sema::ActOnTemplateTypeArgument(), clang::Sema::ActOnTypenameType(), clang::Sema::ActOnUsingDeclaration(), clang::Sema::ActOnUsingDirective(), clang::Sema::BuildFieldReferenceExpr(), clang::Sema::BuildQualifiedDeclarationNameExpr(), clang::Sema::BuildQualifiedTemplateIdExpr(), clang::Sema::BuildUsingDeclaration(), clang::Sema::CheckClassTemplate(), clang::Sema::checkLiteralOperatorId(), clang::Sema::CheckTemplateTypeArgument(), clang::Sema::CheckUsingDeclQualifier(), clang::Sema::CheckUsingDeclRedeclaration(), clang::Sema::ClassifyName(), clang::Sema::CodeCompleteQualifiedId(), clang::Sema::computeDeclContext(), clang::Sema::containsUnexpandedParameterPacks(), clang::Sema::diagnoseQualifiedDeclaration(), clang::Sema::DiagnoseUnexpandedParameterPack(), clang::Sema::DiagnoseUnknownTemplateName(), clang::Sema::DiagnoseUnknownTypeName(), clang::Sema::getConstructorName(), clang::Sema::getDestructorName(), clang::Sema::getElaboratedType(), GetFullTypeForDeclarator(), clang::Sema::getInheritingConstructorName(), getRangeOfTypeInNestedNameSpecifier(), clang::Sema::getTypeName(), clang::Sema::HandleDeclarator(), clang::Sema::isDependentScopeSpecifier(), isEmpty(), isInvalid(), clang::Sema::isMicrosoftMissingTypename(), isSet(), clang::Sema::isTemplateName(), isValid(), LookupMemberExpr(), clang::Sema::LookupParsedName(), clang::Sema::LookupQualifiedName(), clang::Sema::MatchTemplateParametersToScopeSpecifier(), clang::TreeTransform< Derived >::RebuildTemplateName(), clang::Sema::SaveNestedNameSpecifierAnnotation(), ScopeSpecifierHasTemplateId(), clang::Sema::ShouldEnterDeclaratorScope(), clang::TreeTransform< Derived >::TransformNestedNameSpecifierLoc(), clang::TreeTransform< Derived >::TransformTemplateName(), and warnAboutRedundantParens().

◆ getTemplateParamLists()

ArrayRef< TemplateParameterList * > clang::CXXScopeSpec::getTemplateParamLists ( ) const
inline

Definition at line 89 of file DeclSpec.h.

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

◆ getWithLocInContext()

NestedNameSpecifierLoc CXXScopeSpec::getWithLocInContext ( ASTContext Context) const

Retrieve a nested-name-specifier with location information, copied into the given AST context.

Parameters
ContextThe context into which this nested-name-specifier will be copied.

Definition at line 152 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::ActOnOpenMPFromClause(), clang::Sema::ActOnOpenMPInReductionClause(), clang::Sema::ActOnOpenMPMapClause(), clang::Sema::ActOnOpenMPReductionClause(), clang::Sema::ActOnOpenMPTaskReductionClause(), clang::Sema::ActOnOpenMPToClause(), clang::Sema::ActOnTag(), clang::Sema::ActOnTagTemplateIdType(), clang::Sema::ActOnTemplatedFriendTag(), clang::Sema::ActOnTemplateIdType(), clang::Sema::ActOnTypenameType(), clang::Sema::ActOnTypeRequirement(), clang::Sema::ActOnUsingDirective(), clang::Sema::BuildDeclarationNameExpr(), buildDeclareReductionRef(), clang::Sema::BuildDeclRefExpr(), clang::Sema::BuildDependentDeclRefExpr(), clang::Sema::BuildMemberExpr(), clang::Sema::BuildMemberReferenceExpr(), clang::Sema::BuildMemInitializer(), BuildMSPropertyRefExpr(), buildNamedType(), clang::Sema::BuildPseudoDestructorExpr(), clang::Sema::BuildQualifiedDeclarationNameExpr(), clang::Sema::BuildTemplateIdExpr(), clang::Sema::BuildTypeConstraint(), buildUserDefinedMapperRef(), clang::Sema::BuildUsingDeclaration(), clang::Sema::CheckConceptTemplateId(), clang::Sema::CheckTemplateArgument(), clang::Sema::CheckTemplateTypeArgument(), clang::Sema::ClassifyName(), clang::Sema::getDestructorName(), clang::Sema::getTypeName(), InventTemplateParameter(), clang::Sema::RebuildNestedNameSpecifierInCurrentInstantiation(), recoverFromMSUnqualifiedLookup(), recoverFromTypeInKnownDependentBase(), SetNestedNameSpecifier(), clang::TreeTransform< Derived >::TransformDependentTemplateSpecializationType(), clang::TreeTransform< Derived >::TransformNestedNameSpecifierLoc(), clang::transformOMPMappableExprListClause(), and translateTemplateArgument().

◆ isEmpty()

bool clang::CXXScopeSpec::isEmpty ( ) const
inline

◆ isInvalid()

bool clang::CXXScopeSpec::isInvalid ( ) const
inline

An error occurred during parsing of the scope specifier.

Definition at line 212 of file DeclSpec.h.

References getScopeRep().

Referenced by clang::Sema::ActOnCXXEnterDeclaratorScope(), clang::Sema::ActOnCXXExitDeclaratorScope(), clang::Sema::ActOnCXXMemberDeclarator(), clang::Sema::ActOnCXXNestedNameSpecifier(), clang::Sema::ActOnCXXNestedNameSpecifierDecltype(), clang::Sema::ActOnCXXNestedNameSpecifierIndexedPack(), clang::Sema::ActOnFriendFunctionDecl(), clang::Sema::ActOnIdExpression(), clang::Sema::ActOnMemberAccessExpr(), clang::Sema::ActOnTag(), clang::Sema::ActOnTagTemplateIdType(), clang::Sema::ActOnTemplateIdType(), clang::Sema::ActOnTemplateName(), clang::Sema::ActOnTypenameType(), clang::Sema::ActOnUsingDirective(), clang::Sema::ActOnUsingEnumDeclaration(), buildDeclareReductionRef(), buildUserDefinedMapperRef(), clang::Sema::BuildUsingDeclaration(), clang::Sema::CheckClassTemplate(), clang::Sema::ClassifyName(), clang::Sema::CodeCompleteQualifiedId(), clang::Sema::computeDeclContext(), clang::Sema::DiagnoseUnknownTypeName(), clang::Sema::getCurrentClass(), clang::Sema::getDestructorName(), GetFullTypeForDeclarator(), clang::Sema::HandleDeclarator(), clang::Sema::isCurrentClassNameTypo(), clang::Sema::isDependentScopeSpecifier(), clang::Sema::IsInvalidUnlessNestedName(), clang::Sema::isTemplateName(), LookupMemberExpr(), clang::Sema::LookupParsedName(), clang::Sema::LookupTemplateName(), clang::Sema::RebuildNestedNameSpecifierInCurrentInstantiation(), and clang::Sema::SaveNestedNameSpecifierAnnotation().

◆ isNotEmpty()

bool clang::CXXScopeSpec::isNotEmpty ( ) const
inline

◆ isSet()

bool clang::CXXScopeSpec::isSet ( ) const
inline

Deprecated.

Some call sites intend isNotEmpty() while others intend isValid().

Definition at line 227 of file DeclSpec.h.

References getScopeRep().

Referenced by clang::Sema::ActOnClassTemplateSpecialization(), clang::Sema::ActOnCXXEnterDeclaratorScope(), clang::Sema::ActOnCXXExitDeclaratorScope(), clang::Sema::ActOnCXXMemberDeclarator(), clang::Sema::ActOnExceptionDeclarator(), clang::Sema::ActOnExplicitInstantiation(), clang::Sema::ActOnFriendFunctionDecl(), clang::Sema::ActOnFunctionDeclarator(), clang::Sema::ActOnIdExpression(), clang::Sema::ActOnMemberAccessExpr(), clang::Sema::ActOnObjCExceptionDecl(), clang::Sema::ActOnPseudoDestructorExpr(), clang::Sema::ActOnTag(), clang::Sema::ActOnTemplateIdType(), clang::Sema::ActOnTemplateTypeArgument(), clang::Sema::ActOnTypedefDeclarator(), clang::Sema::ActOnUsingDirective(), clang::Sema::ActOnVariableDeclarator(), clang::Sema::BuildCXXNestedNameSpecifier(), buildDeclareReductionRef(), clang::Sema::BuildMemberReferenceExpr(), clang::Sema::BuildMemInitializer(), clang::Sema::BuildTypeConstraint(), buildUserDefinedMapperRef(), clang::Sema::CheckClassTemplate(), clang::Sema::CheckConceptTemplateId(), clang::Sema::CheckFunctionOrTemplateParamDeclarator(), clang::Sema::ClassifyName(), clang::Sema::computeDeclContext(), diagnoseInstanceReference(), clang::Sema::DiagnoseUnknownTemplateName(), clang::Sema::DiagnoseUnknownTypeName(), clang::Sema::getDestructorName(), GetFullTypeForDeclarator(), clang::Sema::HandleDeclarator(), clang::Sema::isCurrentClassNameTypo(), clang::Sema::isDeclaratorFunctionLike(), clang::Sema::isDependentScopeSpecifier(), clang::Sema::isTemplateName(), LookupMemberExprInRecord(), clang::Sema::LookupParsedName(), clang::Parser::ParseUnqualifiedId(), ScopeSpecifierHasTemplateId(), SetNestedNameSpecifier(), clang::Sema::ShouldEnterDeclaratorScope(), and clang::Sema::UseArgumentDependentLookup().

◆ isValid()

bool clang::CXXScopeSpec::isValid ( ) const
inline

◆ location_data()

char * clang::CXXScopeSpec::location_data ( ) const
inline

◆ location_size()

unsigned clang::CXXScopeSpec::location_size ( ) const
inline

Retrieve the size of the data associated with source-location information.

Definition at line 239 of file DeclSpec.h.

Referenced by clang::Sema::SaveNestedNameSpecifierAnnotation(), and clang::TreeTransform< Derived >::TransformNestedNameSpecifierLoc().

◆ MakeGlobal()

void CXXScopeSpec::MakeGlobal ( ASTContext Context,
SourceLocation  ColonColonLoc 
)

Turn this (empty) nested-name-specifier into the global nested-name-specifier '::'.

Definition at line 104 of file DeclSpec.cpp.

References clang::NestedNameSpecifierLocBuilder::getSourceRange(), and clang::NestedNameSpecifierLocBuilder::MakeGlobal().

Referenced by clang::Sema::ActOnCXXGlobalScopeSpecifier(), and clang::TreeTransform< Derived >::TransformNestedNameSpecifierLoc().

◆ MakeSuper()

void CXXScopeSpec::MakeSuper ( ASTContext Context,
CXXRecordDecl RD,
SourceLocation  SuperLoc,
SourceLocation  ColonColonLoc 
)

Turns this (empty) nested-name-specifier into '__super' nested-name-specifier.

Parameters
ContextThe AST context in which this nested-name-specifier resides.
RDThe declaration of the class in which nested-name-specifier appeared.
SuperLocThe location of the '__super' keyword. name.
ColonColonLocThe location of the trailing '::'.

Definition at line 114 of file DeclSpec.cpp.

References clang::NestedNameSpecifierLocBuilder::getSourceRange(), clang::NestedNameSpecifierLocBuilder::MakeSuper(), clang::SourceRange::setBegin(), and clang::SourceRange::setEnd().

Referenced by clang::Sema::ActOnSuperScopeSpecifier(), and clang::TreeTransform< Derived >::TransformNestedNameSpecifierLoc().

◆ MakeTrivial()

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 126 of file DeclSpec.cpp.

References clang::NestedNameSpecifierLocBuilder::MakeTrivial().

Referenced by attemptRecovery(), clang::Sema::BuildCXXNestedNameSpecifier(), clang::Sema::BuildExpressionFromDeclTemplateArgument(), buildSingleCopyAssignRecursively(), clang::Sema::DiagnoseUnknownTypeName(), clang::Sema::getTypeName(), recoverFromMSUnqualifiedLookup(), and recoverFromTypeInKnownDependentBase().

◆ setBeginLoc()

void clang::CXXScopeSpec::setBeginLoc ( SourceLocation  Loc)
inline

Definition at line 81 of file DeclSpec.h.

◆ setEndLoc()

void clang::CXXScopeSpec::setEndLoc ( SourceLocation  Loc)
inline

Definition at line 82 of file DeclSpec.h.

◆ SetInvalid()

void clang::CXXScopeSpec::SetInvalid ( SourceRange  R)
inline

◆ setRange()

void clang::CXXScopeSpec::setRange ( SourceRange  R)
inline

Definition at line 80 of file DeclSpec.h.

◆ setTemplateParamLists()

void clang::CXXScopeSpec::setTemplateParamLists ( ArrayRef< TemplateParameterList * >  L)
inline

Definition at line 86 of file DeclSpec.h.


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