clang  16.0.0git
Public Member Functions | Protected Attributes | List of all members
clang::ConceptReference Class Reference

Common data class for constructs that reference concepts with template arguments. More...

#include "clang/AST/ASTConcept.h"

Inheritance diagram for clang::ConceptReference:
Inheritance graph
[legend]
Collaboration diagram for clang::ConceptReference:
Collaboration graph
[legend]

Public Member Functions

 ConceptReference (NestedNameSpecifierLoc NNS, SourceLocation TemplateKWLoc, DeclarationNameInfo ConceptNameInfo, NamedDecl *FoundDecl, ConceptDecl *NamedConcept, const ASTTemplateArgumentListInfo *ArgsAsWritten)
 
 ConceptReference ()
 
const NestedNameSpecifierLocgetNestedNameSpecifierLoc () const
 
const DeclarationNameInfogetConceptNameInfo () const
 
SourceLocation getConceptNameLoc () const
 
SourceLocation getTemplateKWLoc () const
 
NamedDeclgetFoundDecl () const
 
ConceptDeclgetNamedConcept () const
 
const ASTTemplateArgumentListInfogetTemplateArgsAsWritten () const
 
bool hasExplicitTemplateArgs () const
 Whether or not template arguments were explicitly specified in the concept reference (they might not be in type constraints, for example) More...
 

Protected Attributes

NestedNameSpecifierLoc NestedNameSpec
 
SourceLocation TemplateKWLoc
 The location of the template keyword, if specified when naming the concept. More...
 
DeclarationNameInfo ConceptName
 The concept name used. More...
 
NamedDeclFoundDecl
 The declaration found by name lookup when the expression was created. More...
 
ConceptDeclNamedConcept
 The concept named. More...
 
const ASTTemplateArgumentListInfoArgsAsWritten
 The template argument list source info used to specialize the concept. More...
 

Detailed Description

Common data class for constructs that reference concepts with template arguments.

Definition at line 101 of file ASTConcept.h.

Constructor & Destructor Documentation

◆ ConceptReference() [1/2]

clang::ConceptReference::ConceptReference ( NestedNameSpecifierLoc  NNS,
SourceLocation  TemplateKWLoc,
DeclarationNameInfo  ConceptNameInfo,
NamedDecl FoundDecl,
ConceptDecl NamedConcept,
const ASTTemplateArgumentListInfo ArgsAsWritten 
)
inline

Definition at line 127 of file ASTConcept.h.

◆ ConceptReference() [2/2]

clang::ConceptReference::ConceptReference ( )
inline

Definition at line 135 of file ASTConcept.h.

Member Function Documentation

◆ getConceptNameInfo()

const DeclarationNameInfo& clang::ConceptReference::getConceptNameInfo ( ) const
inline

◆ getConceptNameLoc()

SourceLocation clang::ConceptReference::getConceptNameLoc ( ) const
inline

Definition at line 144 of file ASTConcept.h.

References getConceptNameInfo(), and clang::DeclarationNameInfo::getLoc().

◆ getFoundDecl()

NamedDecl* clang::ConceptReference::getFoundDecl ( ) const
inline

Definition at line 150 of file ASTConcept.h.

References FoundDecl.

◆ getNamedConcept()

ConceptDecl* clang::ConceptReference::getNamedConcept ( ) const
inline

◆ getNestedNameSpecifierLoc()

const NestedNameSpecifierLoc& clang::ConceptReference::getNestedNameSpecifierLoc ( ) const
inline

◆ getTemplateArgsAsWritten()

const ASTTemplateArgumentListInfo* clang::ConceptReference::getTemplateArgsAsWritten ( ) const
inline

◆ getTemplateKWLoc()

SourceLocation clang::ConceptReference::getTemplateKWLoc ( ) const
inline

Definition at line 148 of file ASTConcept.h.

References TemplateKWLoc.

◆ hasExplicitTemplateArgs()

bool clang::ConceptReference::hasExplicitTemplateArgs ( ) const
inline

Whether or not template arguments were explicitly specified in the concept reference (they might not be in type constraints, for example)

Definition at line 164 of file ASTConcept.h.

References ArgsAsWritten.

Referenced by clang::ASTContext::isSameTypeConstraint(), clang::TypeConstraint::print(), and clang::ASTNodeTraverser< ASTDumper, TextNodeDumper >::VisitConceptSpecializationExpr().

Member Data Documentation

◆ ArgsAsWritten

const ASTTemplateArgumentListInfo* clang::ConceptReference::ArgsAsWritten
protected

The template argument list source info used to specialize the concept.

Definition at line 124 of file ASTConcept.h.

Referenced by clang::ConceptSpecializationExpr::getEndLoc(), getTemplateArgsAsWritten(), hasExplicitTemplateArgs(), and clang::TypeConstraint::print().

◆ ConceptName

DeclarationNameInfo clang::ConceptReference::ConceptName
protected

◆ FoundDecl

NamedDecl* clang::ConceptReference::FoundDecl
protected

The declaration found by name lookup when the expression was created.

Can differ from NamedConcept when, for example, the concept was found through a UsingShadowDecl.

Definition at line 117 of file ASTConcept.h.

Referenced by getFoundDecl().

◆ NamedConcept

ConceptDecl* clang::ConceptReference::NamedConcept
protected

The concept named.

Definition at line 120 of file ASTConcept.h.

Referenced by clang::ConceptSpecializationExpr::Create(), and getNamedConcept().

◆ NestedNameSpec

NestedNameSpecifierLoc clang::ConceptReference::NestedNameSpec
protected

Definition at line 104 of file ASTConcept.h.

Referenced by getNestedNameSpecifierLoc(), and clang::TypeConstraint::print().

◆ TemplateKWLoc

SourceLocation clang::ConceptReference::TemplateKWLoc
protected

The location of the template keyword, if specified when naming the concept.

Definition at line 108 of file ASTConcept.h.

Referenced by getTemplateKWLoc().


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