clang  6.0.0svn
Public Member Functions | Friends | List of all members
clang::NestedNameSpecifierLoc Class Reference

A C++ nested-name-specifier augmented with source location information. More...

#include "clang/AST/NestedNameSpecifier.h"

Public Member Functions

 NestedNameSpecifierLoc ()=default
 Construct an empty nested-name-specifier. More...
 
 NestedNameSpecifierLoc (NestedNameSpecifier *Qualifier, void *Data)
 Construct a nested-name-specifier with source location information from. More...
 
 operator bool () const
 Evalutes true when this nested-name-specifier location is non-empty. More...
 
bool hasQualifier () const
 Evalutes true when this nested-name-specifier location is empty. More...
 
NestedNameSpecifiergetNestedNameSpecifier () const
 Retrieve the nested-name-specifier to which this instance refers. More...
 
void * getOpaqueData () const
 Retrieve the opaque pointer that refers to source-location data. More...
 
SourceRange getSourceRange () const LLVM_READONLY
 Retrieve the source range covering the entirety of this nested-name-specifier. More...
 
SourceRange getLocalSourceRange () const
 Retrieve the source range covering just the last part of this nested-name-specifier, not including the prefix. More...
 
SourceLocation getBeginLoc () const
 Retrieve the location of the beginning of this nested-name-specifier. More...
 
SourceLocation getEndLoc () const
 Retrieve the location of the end of this nested-name-specifier. More...
 
SourceLocation getLocalBeginLoc () const
 Retrieve the location of the beginning of this component of the nested-name-specifier. More...
 
SourceLocation getLocalEndLoc () const
 Retrieve the location of the end of this component of the nested-name-specifier. More...
 
NestedNameSpecifierLoc getPrefix () const
 Return the prefix of this nested-name-specifier. More...
 
TypeLoc getTypeLoc () const
 For a nested-name-specifier that refers to a type, retrieve the type with source-location information. More...
 
unsigned getDataLength () const
 Determines the data length for the entire nested-name-specifier. More...
 

Friends

bool operator== (NestedNameSpecifierLoc X, NestedNameSpecifierLoc Y)
 
bool operator!= (NestedNameSpecifierLoc X, NestedNameSpecifierLoc Y)
 

Detailed Description

A C++ nested-name-specifier augmented with source location information.

Definition at line 232 of file NestedNameSpecifier.h.

Constructor & Destructor Documentation

◆ NestedNameSpecifierLoc() [1/2]

clang::NestedNameSpecifierLoc::NestedNameSpecifierLoc ( )
default

Construct an empty nested-name-specifier.

◆ NestedNameSpecifierLoc() [2/2]

clang::NestedNameSpecifierLoc::NestedNameSpecifierLoc ( NestedNameSpecifier Qualifier,
void *  Data 
)
inline

Construct a nested-name-specifier with source location information from.

Definition at line 250 of file NestedNameSpecifier.h.

Member Function Documentation

◆ getBeginLoc()

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

◆ getDataLength()

unsigned clang::NestedNameSpecifierLoc::getDataLength ( ) const
inline

Determines the data length for the entire nested-name-specifier.

Definition at line 329 of file NestedNameSpecifier.h.

References getDataLength().

Referenced by getDataLength().

◆ getEndLoc()

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

Retrieve the location of the end of this nested-name-specifier.

Definition at line 294 of file NestedNameSpecifier.h.

References clang::SourceRange::getEnd(), and clang::tooling::fixit::internal::getSourceRange().

Referenced by clang::TreeTransform< Derived >::TransformNestedNameSpecifierLoc().

◆ getLocalBeginLoc()

SourceLocation clang::NestedNameSpecifierLoc::getLocalBeginLoc ( ) const
inline

◆ getLocalEndLoc()

SourceLocation clang::NestedNameSpecifierLoc::getLocalEndLoc ( ) const
inline

Retrieve the location of the end of this component of the nested-name-specifier.

Definition at line 306 of file NestedNameSpecifier.h.

References clang::SourceRange::getEnd().

Referenced by clang::TreeTransform< Derived >::TransformNestedNameSpecifierLoc(), and clang::tooling::RecursiveSymbolVisitor< T >::TraverseNestedNameSpecifierLoc().

◆ getLocalSourceRange()

SourceRange NestedNameSpecifierLoc::getLocalSourceRange ( ) const

Retrieve the source range covering just the last part of this nested-name-specifier, not including the prefix.

For example, if this instance refers to a nested-name-specifier ::std::vector<int>::, the returned source range would cover from "vector" to the last '::'.

Definition at line 418 of file NestedNameSpecifier.cpp.

References clang::NestedNameSpecifier::getAsType(), clang::NestedNameSpecifier::getKind(), clang::NestedNameSpecifier::getPrefix(), clang::NestedNameSpecifier::Global, clang::NestedNameSpecifier::Identifier, LoadPointer(), LoadSourceLocation(), clang::NestedNameSpecifier::Namespace, clang::NestedNameSpecifier::NamespaceAlias, clang::NestedNameSpecifier::Super, clang::NestedNameSpecifier::TypeSpec, and clang::NestedNameSpecifier::TypeSpecWithTemplate.

Referenced by clang::ASTRecordWriter::AddNestedNameSpecifierLoc(), and getSourceRange().

◆ getNestedNameSpecifier()

NestedNameSpecifier* clang::NestedNameSpecifierLoc::getNestedNameSpecifier ( ) const
inline

Retrieve the nested-name-specifier to which this instance refers.

Definition at line 263 of file NestedNameSpecifier.h.

Referenced by clang::ASTRecordWriter::AddNestedNameSpecifierLoc(), clang::NestedNameSpecifierLocBuilder::Adopt(), clang::Sema::CheckTypenameType(), computeDeclRefDependence(), clang::CXXUnresolvedConstructExpr::getLocStart(), clang::OverloadExpr::getNamingClass(), clang::CXXPseudoDestructorExpr::getQualifier(), clang::OverloadExpr::getQualifier(), clang::UsingDirectiveDecl::getQualifier(), clang::DependentScopeDeclRefExpr::getQualifier(), clang::NamespaceAliasDecl::getQualifier(), clang::CXXDependentScopeMemberExpr::getQualifier(), clang::UsingDecl::getQualifier(), clang::UnresolvedUsingValueDecl::getQualifier(), clang::UnresolvedUsingTypenameDecl::getQualifier(), clang::index::IndexingContext::indexNestedNameSpecifierLoc(), isEnableIf(), clang::TreeTransform< Derived >::RebuildDependentNameType(), clang::TreeTransform< Derived >::RebuildDependentTemplateSpecializationType(), clang::TreeTransform< Derived >::RebuildElaboratedType(), clang::ElaboratedTypeLoc::setQualifierLoc(), clang::DependentNameTypeLoc::setQualifierLoc(), clang::DependentTemplateSpecializationTypeLoc::setQualifierLoc(), clang::TemplateArgumentLocInfo::TemplateArgumentLocInfo(), clang::TreeTransform< Derived >::TransformNestedNameSpecifierLoc(), clang::tooling::RecursiveSymbolVisitor< T >::TraverseNestedNameSpecifierLoc(), and clang::RecursiveASTVisitor< CallGraph >::TraverseNestedNameSpecifierLoc().

◆ getOpaqueData()

void* clang::NestedNameSpecifierLoc::getOpaqueData ( ) const
inline

◆ getPrefix()

NestedNameSpecifierLoc clang::NestedNameSpecifierLoc::getPrefix ( ) const
inline

Return the prefix of this nested-name-specifier.

For example, if this instance refers to a nested-name-specifier ::std::vector<int>::, the prefix is ::std::. Note that the returned prefix may be empty, if this is the first component of the nested-name-specifier.

Definition at line 316 of file NestedNameSpecifier.h.

References clang::NestedNameSpecifier::getPrefix().

Referenced by clang::ASTRecordWriter::AddNestedNameSpecifierLoc(), getSourceRange(), clang::ASTImporter::Import(), clang::index::IndexingContext::indexNestedNameSpecifierLoc(), clang::TreeTransform< Derived >::TransformNestedNameSpecifierLoc(), and clang::RecursiveASTVisitor< CallGraph >::TraverseNestedNameSpecifierLoc().

◆ getSourceRange()

SourceRange NestedNameSpecifierLoc::getSourceRange ( ) const

Retrieve the source range covering the entirety of this nested-name-specifier.

For example, if this instance refers to a nested-name-specifier ::std::vector<int>::, the returned source range would cover from the initial '::' to the last '::'.

Definition at line 406 of file NestedNameSpecifier.cpp.

References clang::SourceRange::getBegin(), getLocalSourceRange(), and getPrefix().

Referenced by clang::Sema::CheckUsingShadowDecl(), clang::NestedNameSpecifierLocBuilder::getSourceRange(), clang::TemplateDeclInstantiator::InstantiateEnumDefinition(), clang::TreeTransform< Derived >::RebuildDependentNameType(), and TryReinterpretCast().

◆ getTypeLoc()

TypeLoc NestedNameSpecifierLoc::getTypeLoc ( ) const

◆ hasQualifier()

bool clang::NestedNameSpecifierLoc::hasQualifier ( ) const
inline

Evalutes true when this nested-name-specifier location is empty.

Definition at line 259 of file NestedNameSpecifier.h.

Referenced by clang::CXXPseudoDestructorExpr::hasQualifier().

◆ operator bool()

clang::NestedNameSpecifierLoc::operator bool ( ) const
inlineexplicit

Evalutes true when this nested-name-specifier location is non-empty.

Definition at line 255 of file NestedNameSpecifier.h.

Friends And Related Function Documentation

◆ operator!=

bool operator!= ( NestedNameSpecifierLoc  X,
NestedNameSpecifierLoc  Y 
)
friend

Definition at line 336 of file NestedNameSpecifier.h.

◆ operator==

bool operator== ( NestedNameSpecifierLoc  X,
NestedNameSpecifierLoc  Y 
)
friend

Definition at line 331 of file NestedNameSpecifier.h.


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