clang: clang::CXXScopeSpec Class Reference (original) (raw)
Represents a C++ nested-name-specifier or a global scope specifier. More...
#include "[clang/Sema/DeclSpec.h](DeclSpec%5F8h%5Fsource.html)"
| 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 |
| NestedNameSpecifier | getScopeRep () const |
| Retrieve the representation of the nested-name-specifier. | |
| void | Make (ASTContext &Context, TypeLoc TL, SourceLocation ColonColonLoc) |
| Make a nested-name-specifier of the form 'type::'. | |
| void | Extend (ASTContext &Context, NamespaceBaseDecl *Namespace, SourceLocation NamespaceLoc, SourceLocation ColonColonLoc) |
| Extend the current nested-name-specifier by another nested-name-specifier component of the form 'namespace::'. | |
| void | MakeGlobal (ASTContext &Context, SourceLocation ColonColonLoc) |
| Turn this (empty) nested-name-specifier into the global nested-name-specifier '::'. | |
| void | MakeMicrosoftSuper (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. |
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 void SomeType::some_method() {} If CXXScopeSpec refers to SomeType then TemplateParamLists will contain a single element referring to template .
Definition at line 73 of file DeclSpec.h.
◆ Adopt()
Adopt an existing nested-name-specifier (with source-range information).
Definition at line 103 of file DeclSpec.cpp.
References 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< AdjustConstraintDepth >::RebuildConceptSpecializationExpr(), clang::TreeTransform< AdjustConstraintDepth >::RebuildCXXDependentScopeMemberExpr(), clang::TreeTransform< AdjustConstraintDepth >::RebuildDeclRefExpr(), clang::TreeTransform< AdjustConstraintDepth >::RebuildDependentNameType(), clang::TreeTransform< AdjustConstraintDepth >::RebuildDependentScopeDeclRefExpr(), clang::TreeTransform< AdjustConstraintDepth >::RebuildMemberExpr(), clang::Sema::RebuildNestedNameSpecifierInCurrentInstantiation(), clang::TreeTransform< AdjustConstraintDepth >::RebuildUnresolvedMemberExpr(), clang::Sema::RestoreNestedNameSpecifierAnnotation(), clang::TreeTransform< Derived >::TransformNestedNameSpecifierLoc(), clang::transformOMPMappableExprListClause(), clang::TreeTransform< Derived >::TransformTemplateName(), clang::TemplateDeclInstantiator::VisitCXXMethodDecl(), and clang::TemplateDeclInstantiator::VisitFunctionDecl().
◆ clear()
| void clang::CXXScopeSpec::clear ( ) | inline |
|---|
◆ Extend()
◆ getBeginLoc()
Definition at line 83 of file DeclSpec.h.
Referenced by actOnOMPReductionKindClause(), clang::Sema::ActOnPackExpansion(), clang::Sema::ActOnTag(), clang::Sema::ActOnTemplatedFriendTag(), clang::Sema::ActOnTemplateIdType(), clang::Sema::ActOnUsingDeclaration(), clang::Sema::ActOnUsingEnumDeclaration(), clang::Sema::BuildDependentDeclRefExpr(), clang::Sema::BuildMemberPointerType(), clang::Sema::BuildQualifiedDeclarationNameExpr(), clang::Sema::BuildUsingDeclaration(), clang::Sema::CheckConceptTemplateId(), clang::Sema::CheckTypenameType(), clang::Sema::CheckUsingDeclQualifier(), clang::DeclaratorChunk::getMemberPointer(), clang::TypoCorrection::setCorrectionRange(), and clang::Parser::TryAnnotateTypeOrScopeTokenAfterScopeSpec().
◆ getEndLoc()
◆ getLastQualifierNameLoc()
◆ getRange()
| SourceRange clang::CXXScopeSpec::getRange ( ) const | inline |
|---|
Definition at line 79 of file DeclSpec.h.
Referenced by clang::Sema::ActOnCXXMemberDeclarator(), clang::Sema::ActOnDependentTag(), clang::Sema::ActOnExceptionDeclarator(), clang::Sema::ActOnExplicitInstantiation(), clang::Sema::ActOnExplicitInstantiation(), clang::Sema::ActOnFriendFunctionDecl(), clang::Sema::ActOnFunctionDeclarator(), clang::Sema::ActOnNamespaceAliasDef(), clang::SemaObjC::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::BuildMemberPointerType(), 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::diagnoseExprIntendedAsTemplateName(), diagnoseInstanceReference(), clang::Sema::diagnoseQualifiedDeclaration(), DiagnoseQualifiedMemberReference(), clang::Sema::DiagnoseUnexpandedParameterPack(), clang::Sema::DiagnoseUnknownTypeName(), clang::Sema::getConstructorName(), clang::Sema::getDestructorName(), clang::Sema::getTypeName(), clang::Sema::HandleDeclarator(), LookupMemberExpr(), 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()
Retrieve the representation of the nested-name-specifier.
Definition at line 94 of file DeclSpec.h.
Referenced by clang::Sema::ActOnDependentTag(), clang::Sema::ActOnFriendFunctionDecl(), clang::Sema::ActOnFunctionDeclarator(), clang::Sema::ActOnIdExpression(), clang::Sema::ActOnMemberAccessExpr(), clang::Sema::ActOnTemplatedFriendTag(), clang::Sema::ActOnTemplateIdType(), clang::Sema::ActOnTemplateName(), clang::Sema::ActOnUsingDeclaration(), clang::Sema::ActOnUsingDirective(), clang::Sema::BuildCXXNestedNameSpecifier(), clang::Sema::BuildFieldReferenceExpr(), clang::Sema::BuildMemberPointerType(), clang::Sema::BuildMemberReferenceExpr(), clang::Sema::BuildMemInitializer(), clang::Sema::BuildQualifiedDeclarationNameExpr(), clang::Sema::BuildUsingDeclaration(), clang::Sema::CheckClassTemplate(), clang::Sema::checkLiteralOperatorId(), clang::Sema::CheckTemplateTypeArgument(), clang::Sema::CheckUsingDeclQualifier(), clang::Sema::CheckUsingDeclRedeclaration(), clang::Sema::ClassifyName(), clang::SemaCodeCompletion::CodeCompleteQualifiedId(), clang::Sema::computeDeclContext(), clang::Sema::containsUnexpandedParameterPacks(), ConvertDeclSpecToType(), clang::Sema::diagnoseMissingTemplateArguments(), clang::Sema::diagnoseQualifiedDeclaration(), clang::Sema::DiagnoseUnexpandedParameterPack(), clang::Sema::DiagnoseUnknownTypeName(), ExtendNestedNameSpecifier(), clang::Sema::getConstructorName(), clang::Sema::getInheritingConstructorName(), getRangeOfTypeInNestedNameSpecifier(), clang::Sema::getTypeName(), clang::Sema::HandleDeclarator(), clang::Sema::isDeductionGuideName(), 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::Sema::tryLookupCtorInitMemberDecl(), and warnAboutRedundantParens().
◆ getTemplateParamLists()
◆ getWithLocInContext()
Retrieve a nested-name-specifier with location information, copied into the given AST context.
Parameters
| Context | The context into which this nested-name-specifier will be copied. |
|---|
Definition at line 123 of file DeclSpec.cpp.
Referenced by clang::Sema::ActOnClassTemplateSpecialization(), clang::Sema::ActOnCXXNestedNameSpecifier(), clang::Sema::ActOnDependentMemberExpr(), clang::Sema::ActOnDependentTag(), clang::Sema::ActOnMSDependentExistsStmt(), clang::Sema::ActOnNamespaceAliasDef(), clang::SemaOpenMP::ActOnOpenMPFromClause(), clang::SemaOpenMP::ActOnOpenMPInReductionClause(), clang::SemaOpenMP::ActOnOpenMPMapClause(), clang::SemaOpenMP::ActOnOpenMPReductionClause(), clang::SemaOpenMP::ActOnOpenMPTaskReductionClause(), clang::SemaOpenMP::ActOnOpenMPToClause(), clang::Sema::ActOnTag(), clang::Sema::ActOnTagTemplateIdType(), clang::Sema::ActOnTemplatedFriendTag(), clang::Sema::ActOnTemplateIdType(), clang::Sema::ActOnTypenameType(), clang::Sema::ActOnTypenameType(), clang::Sema::ActOnTypeRequirement(), clang::Sema::ActOnUsingDirective(), clang::Sema::BuildCXXNestedNameSpecifier(), clang::Sema::BuildDeclarationNameExpr(), buildDeclareReductionRef(), clang::Sema::BuildDeclRefExpr(), clang::Sema::BuildDependentDeclRefExpr(), clang::Sema::BuildFieldReferenceExpr(), clang::Sema::BuildMemberReferenceExpr(), clang::Sema::BuildMemInitializer(), BuildMSPropertyRefExpr(), clang::Sema::BuildPossibleImplicitMemberExpr(), 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::CheckVarOrConceptTemplateTemplateId(), clang::Sema::ClassifyName(), ExtendNestedNameSpecifier(), clang::Sema::getDestructorName(), clang::Sema::getTypeName(), InventTemplateParameter(), clang::Sema::RebuildNestedNameSpecifierInCurrentInstantiation(), recoverFromMSUnqualifiedLookup(), recoverFromTypeInKnownDependentBase(), SetNestedNameSpecifier(), SetNestedNameSpecifier(), clang::TreeTransform< Derived >::TransformNestedNameSpecifierLoc(), clang::transformOMPMappableExprListClause(), and translateTemplateArgument().
◆ isEmpty()
| bool clang::CXXScopeSpec::isEmpty ( ) const | inline |
|---|
No scope specifier.
Definition at line 178 of file DeclSpec.h.
References getScopeRep().
Referenced by clang::Sema::ActOnCXXNestedNameSpecifierDecltype(), clang::Sema::ActOnCXXNestedNameSpecifierIndexedPack(), clang::Sema::ActOnDecompositionDeclarator(), clang::Sema::ActOnDependentIdExpression(), clang::Sema::ActOnIdExpression(), clang::Sema::ActOnNameClassifiedAsNonType(), clang::Sema::ActOnTag(), clang::Sema::ActOnTemplatedFriendTag(), clang::Sema::ActOnUsingDeclaration(), clang::Sema::ActOnVariableDeclarator(), clang::Sema::BuildMemberReferenceExpr(), clang::Sema::BuildMemInitializer(), clang::Sema::BuildQualifiedDeclarationNameExpr(), clang::Sema::CheckClassTemplate(), clang::Sema::ClassifyName(), clang::SemaCodeCompletion::CodeCompleteQualifiedId(), clang::Sema::DiagnoseEmptyLookup(), diagnoseInstanceReference(), DiagnoseTwoPhaseLookup(), ExtendNestedNameSpecifier(), clang::Sema::getTypeName(), isNotEmpty(), clang::Sema::isPotentialImplicitMemberAccess(), LookupMemberExpr(), clang::Sema::LookupParsedName(), clang::Sema::LookupTemplateName(), ParseReductionId(), clang::Parser::ParseUnqualifiedId(), clang::Sema::SaveNestedNameSpecifierAnnotation(), clang::TypoCorrection::setCorrectionRange(), clang::TreeTransform< Derived >::TransformNestedNameSpecifierLoc(), clang::Parser::TryAnnotateCXXScopeToken(), clang::Parser::TryAnnotateTypeOrScopeToken(), and clang::Parser::TryAnnotateTypeOrScopeTokenAfterScopeSpec().
◆ isInvalid()
| bool clang::CXXScopeSpec::isInvalid ( ) const | inline |
|---|
An error occurred during parsing of the scope specifier.
Definition at line 183 of file DeclSpec.h.
References getScopeRep().
Referenced by clang::Sema::ActOnCXXEnterDeclaratorScope(), clang::Sema::ActOnCXXExitDeclaratorScope(), clang::Sema::ActOnCXXMemberDeclarator(), clang::Sema::ActOnCXXNestedNameSpecifier(), clang::Sema::ActOnCXXNestedNameSpecifier(), clang::Sema::ActOnCXXNestedNameSpecifierDecltype(), clang::Sema::ActOnCXXNestedNameSpecifierIndexedPack(), clang::Sema::ActOnFriendFunctionDecl(), clang::Sema::ActOnIdExpression(), clang::Sema::ActOnTag(), clang::Sema::ActOnTagTemplateIdType(), clang::Sema::ActOnTemplateIdType(), clang::Sema::ActOnTemplateName(), clang::Sema::ActOnTypenameType(), clang::Sema::ActOnUsingDirective(), buildDeclareReductionRef(), clang::Sema::BuildMemberReferenceExpr(), clang::Sema::BuildMemberReferenceExpr(), clang::Sema::BuildQualifiedDeclarationNameExpr(), clang::Sema::BuildQualifiedTemplateIdExpr(), buildUserDefinedMapperRef(), clang::Sema::BuildUsingDeclaration(), clang::Sema::CheckClassTemplate(), clang::Sema::ClassifyName(), clang::SemaCodeCompletion::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 |
|---|
A scope specifier is present, but may be valid or invalid.
Definition at line 180 of file DeclSpec.h.
References isEmpty().
Referenced by clang::Sema::ActOnFriendFunctionDecl(), clang::Sema::ActOnFunctionDeclarator(), clang::Sema::ActOnTag(), clang::Sema::ActOnTemplatedFriendTag(), clang::Sema::ActOnTemplateName(), clang::Sema::ActOnVariableDeclarator(), clang::Sema::CheckClassTemplate(), clang::Sema::getConstructorName(), clang::Sema::getCurrentClass(), clang::Sema::getTypeName(), clang::Sema::LookupParsedName(), clang::Sema::LookupTemplateName(), clang::Parser::ParseUnqualifiedId(), clang::Parser::TryAnnotateTypeOrScopeTokenAfterScopeSpec(), and clang::Sema::UseArgumentDependentLookup().
◆ isSet()
| bool clang::CXXScopeSpec::isSet ( ) const | inline |
|---|
Deprecated.
Some call sites intend isNotEmpty() while others intend isValid().
Definition at line 198 of file DeclSpec.h.
References bool, and getScopeRep().
Referenced by clang::Sema::ActOnClassTemplateSpecialization(), clang::Sema::ActOnCXXEnterDeclaratorScope(), clang::Sema::ActOnCXXExitDeclaratorScope(), clang::Sema::ActOnCXXMemberDeclarator(), clang::Sema::ActOnExceptionDeclarator(), clang::Sema::ActOnExplicitInstantiation(), clang::Sema::ActOnExplicitInstantiation(), clang::Sema::ActOnFriendFunctionDecl(), clang::Sema::ActOnFunctionDeclarator(), clang::Sema::ActOnIdExpression(), clang::Sema::ActOnMemberAccessExpr(), clang::SemaObjC::ActOnObjCExceptionDecl(), clang::Sema::ActOnPseudoDestructorExpr(), clang::Sema::ActOnTag(), clang::Sema::ActOnTemplateIdType(), clang::Sema::ActOnTypedefDeclarator(), 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(), hasUserDefinedMapper(), clang::Sema::isCurrentClassNameTypo(), clang::Sema::isDeclaratorFunctionLike(), clang::Sema::isDependentScopeSpecifier(), LookupMemberExprInRecord(), clang::Parser::ParseUnqualifiedId(), SetNestedNameSpecifier(), SetNestedNameSpecifier(), and clang::Sema::ShouldEnterDeclaratorScope().
◆ isValid()
| bool clang::CXXScopeSpec::isValid ( ) const | inline |
|---|
A scope specifier is present, and it refers to a real scope.
Definition at line 185 of file DeclSpec.h.
References bool, and getScopeRep().
Referenced by clang::Sema::ActOnFriendFunctionDecl(), clang::Sema::ActOnIdExpression(), actOnOMPReductionKindClause(), clang::Sema::ActOnPackExpansion(), clang::Sema::ActOnUsingEnumDeclaration(), clang::Sema::BuildDependentDeclRefExpr(), clang::Sema::CheckClassTemplate(), clang::Sema::diagnoseQualifiedDeclaration(), clang::Sema::DiagnoseUnknownTypeName(), and warnAboutRedundantParens().
◆ location_data()
| char * clang::CXXScopeSpec::location_data ( ) const | inline |
|---|
◆ location_size()
| unsigned clang::CXXScopeSpec::location_size ( ) const | inline |
|---|
◆ Make()
◆ MakeGlobal()
◆ MakeMicrosoftSuper()
◆ MakeTrivial()
◆ setBeginLoc()
◆ setEndLoc()
◆ SetInvalid()
| void clang::CXXScopeSpec::SetInvalid ( SourceRange R) | inline |
|---|
◆ setRange()
| void clang::CXXScopeSpec::setRange ( SourceRange R) | inline |
|---|
◆ setTemplateParamLists()
The documentation for this class was generated from the following files:
- include/clang/Sema/DeclSpec.h
- lib/Sema/DeclSpec.cpp