clang  6.0.0svn
Classes | Public Types | Public Member Functions | Public Attributes | List of all members
clang::UnqualifiedId Class Reference

Represents a C++ unqualified-id that has been parsed. More...

#include "clang/Sema/DeclSpec.h"

Collaboration diagram for clang::UnqualifiedId:
Collaboration graph
[legend]

Classes

struct  OFI
 

Public Types

enum  IdKind {
  IK_Identifier, IK_OperatorFunctionId, IK_ConversionFunctionId, IK_LiteralOperatorId,
  IK_ConstructorName, IK_ConstructorTemplateId, IK_DestructorName, IK_TemplateId,
  IK_ImplicitSelfParam, IK_DeductionGuideName
}
 Describes the kind of unqualified-id parsed. More...
 

Public Member Functions

 UnqualifiedId ()
 
void clear ()
 Clear out this unqualified-id, setting it to default (invalid) state. More...
 
bool isValid () const
 Determine whether this unqualified-id refers to a valid name. More...
 
bool isInvalid () const
 Determine whether this unqualified-id refers to an invalid name. More...
 
IdKind getKind () const
 Determine what kind of name we have. More...
 
void setKind (IdKind kind)
 
void setIdentifier (const IdentifierInfo *Id, SourceLocation IdLoc)
 Specify that this unqualified-id was parsed as an identifier. More...
 
void setOperatorFunctionId (SourceLocation OperatorLoc, OverloadedOperatorKind Op, SourceLocation SymbolLocations[3])
 Specify that this unqualified-id was parsed as an operator-function-id. More...
 
void setConversionFunctionId (SourceLocation OperatorLoc, ParsedType Ty, SourceLocation EndLoc)
 Specify that this unqualified-id was parsed as a conversion-function-id. More...
 
void setLiteralOperatorId (const IdentifierInfo *Id, SourceLocation OpLoc, SourceLocation IdLoc)
 Specific that this unqualified-id was parsed as a literal-operator-id. More...
 
void setConstructorName (ParsedType ClassType, SourceLocation ClassNameLoc, SourceLocation EndLoc)
 Specify that this unqualified-id was parsed as a constructor name. More...
 
void setConstructorTemplateId (TemplateIdAnnotation *TemplateId)
 Specify that this unqualified-id was parsed as a template-id that names a constructor. More...
 
void setDestructorName (SourceLocation TildeLoc, ParsedType ClassType, SourceLocation EndLoc)
 Specify that this unqualified-id was parsed as a destructor name. More...
 
void setTemplateId (TemplateIdAnnotation *TemplateId)
 Specify that this unqualified-id was parsed as a template-id. More...
 
void setDeductionGuideName (ParsedTemplateTy Template, SourceLocation TemplateLoc)
 Specify that this unqualified-id was parsed as a template-name for a deduction-guide. More...
 
SourceRange getSourceRange () const LLVM_READONLY
 Return the source range that covers this unqualified-id. More...
 
SourceLocation getLocStart () const LLVM_READONLY
 
SourceLocation getLocEnd () const LLVM_READONLY
 

Public Attributes

enum clang::UnqualifiedId::IdKind Kind
 
union {
   IdentifierInfo *   Identifier
 When Kind == IK_Identifier, the parsed identifier, or when Kind == IK_UserLiteralId, the identifier suffix. More...
 
   struct OFI   OperatorFunctionId
 When Kind == IK_OperatorFunctionId, the overloaded operator that we parsed. More...
 
   UnionParsedType   ConversionFunctionId
 When Kind == IK_ConversionFunctionId, the type that the conversion function names. More...
 
   UnionParsedType   ConstructorName
 When Kind == IK_ConstructorName, the class-name of the type whose constructor is being referenced. More...
 
   UnionParsedType   DestructorName
 When Kind == IK_DestructorName, the type referred to by the class-name. More...
 
   UnionParsedTemplateTy   TemplateName
 When Kind == IK_DeductionGuideName, the parsed template-name. More...
 
   TemplateIdAnnotation *   TemplateId
 When Kind == IK_TemplateId or IK_ConstructorTemplateId, the template-id annotation that contains the template name and template arguments. More...
 
}; 
 Anonymous union that holds extra data associated with the parsed unqualified-id. More...
 
SourceLocation StartLocation
 The location of the first token that describes this unqualified-id, which will be the location of the identifier, "operator" keyword, tilde (for a destructor), or the template name of a template-id. More...
 
SourceLocation EndLocation
 The location of the last token that describes this unqualified-id. More...
 

Detailed Description

Represents a C++ unqualified-id that has been parsed.

Definition at line 886 of file DeclSpec.h.

Member Enumeration Documentation

◆ IdKind

Describes the kind of unqualified-id parsed.

Enumerator
IK_Identifier 

An identifier.

IK_OperatorFunctionId 

An overloaded operator name, e.g., operator+.

IK_ConversionFunctionId 

A conversion function name, e.g., operator int.

IK_LiteralOperatorId 

A user-defined literal name, e.g., operator "" _i.

IK_ConstructorName 

A constructor name.

IK_ConstructorTemplateId 

A constructor named via a template-id.

IK_DestructorName 

A destructor name.

IK_TemplateId 

A template-id, e.g., f<int>.

IK_ImplicitSelfParam 

An implicit 'self' parameter.

IK_DeductionGuideName 

A deduction-guide name (a template-name)

Definition at line 893 of file DeclSpec.h.

Constructor & Destructor Documentation

◆ UnqualifiedId()

clang::UnqualifiedId::UnqualifiedId ( )
inline

Definition at line 970 of file DeclSpec.h.

Member Function Documentation

◆ clear()

void clang::UnqualifiedId::clear ( )
inline

Clear out this unqualified-id, setting it to default (invalid) state.

Definition at line 974 of file DeclSpec.h.

Referenced by clang::Declarator::clear().

◆ getKind()

IdKind clang::UnqualifiedId::getKind ( ) const
inline

◆ getLocEnd()

SourceLocation clang::UnqualifiedId::getLocEnd ( ) const
inline

Definition at line 1110 of file DeclSpec.h.

◆ getLocStart()

SourceLocation clang::UnqualifiedId::getLocStart ( ) const
inline

Definition at line 1109 of file DeclSpec.h.

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

◆ getSourceRange()

SourceRange clang::UnqualifiedId::getSourceRange ( ) const
inline

Return the source range that covers this unqualified-id.

Definition at line 1106 of file DeclSpec.h.

Referenced by clang::Sema::ActOnMemberAccessExpr(), clang::Sema::CheckConversionDeclarator(), GetDeclSpecTypeForDeclarator(), and getMissingDeclaratorIdLoc().

◆ isInvalid()

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

Determine whether this unqualified-id refers to an invalid name.

Definition at line 985 of file DeclSpec.h.

References clang::CXXScopeSpec::isValid().

◆ isValid()

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

Determine whether this unqualified-id refers to a valid name.

Definition at line 982 of file DeclSpec.h.

References clang::SourceLocation::isValid().

Referenced by addConstexprToLambdaDeclSpecifier(), and clang::Declarator::isPastIdentifier().

◆ setConstructorName()

void clang::UnqualifiedId::setConstructorName ( ParsedType  ClassType,
SourceLocation  ClassNameLoc,
SourceLocation  EndLoc 
)
inline

Specify that this unqualified-id was parsed as a constructor name.

Parameters
ClassTypethe class type referred to by the constructor name.
ClassNameLocthe location of the class name.
EndLocthe location of the last token that makes up the type name.

Definition at line 1054 of file DeclSpec.h.

Referenced by clang::Parser::ParseUnqualifiedId().

◆ setConstructorTemplateId()

void UnqualifiedId::setConstructorTemplateId ( TemplateIdAnnotation TemplateId)

Specify that this unqualified-id was parsed as a template-id that names a constructor.

Parameters
TemplateIdthe template-id annotation that describes the parsed template-id. This UnqualifiedId instance will take ownership of the TemplateId and will free it on destruction.

Definition at line 39 of file DeclSpec.cpp.

References EndLocation, IK_ConstructorTemplateId, clang::TemplateIdAnnotation::RAngleLoc, StartLocation, TemplateId, and clang::TemplateIdAnnotation::TemplateNameLoc.

Referenced by clang::Parser::ParseUnqualifiedId().

◆ setConversionFunctionId()

void clang::UnqualifiedId::setConversionFunctionId ( SourceLocation  OperatorLoc,
ParsedType  Ty,
SourceLocation  EndLoc 
)
inline

Specify that this unqualified-id was parsed as a conversion-function-id.

Parameters
OperatorLocthe location of the 'operator' keyword.
Tythe type to which this conversion function is converting.
EndLocthe location of the last token that makes up the type name.

Definition at line 1022 of file DeclSpec.h.

◆ setDeductionGuideName()

void clang::UnqualifiedId::setDeductionGuideName ( ParsedTemplateTy  Template,
SourceLocation  TemplateLoc 
)
inline

Specify that this unqualified-id was parsed as a template-name for a deduction-guide.

Parameters
TemplateThe parsed template-name.
TemplateLocThe location of the parsed template-name.

Definition at line 1098 of file DeclSpec.h.

Referenced by clang::Parser::ParseUnqualifiedId().

◆ setDestructorName()

void clang::UnqualifiedId::setDestructorName ( SourceLocation  TildeLoc,
ParsedType  ClassType,
SourceLocation  EndLoc 
)
inline

Specify that this unqualified-id was parsed as a destructor name.

Parameters
TildeLocthe location of the '~' that introduces the destructor name.
ClassTypethe name of the class referred to by the destructor name.

Definition at line 1077 of file DeclSpec.h.

Referenced by clang::Parser::ParseUnqualifiedId().

◆ setIdentifier()

void clang::UnqualifiedId::setIdentifier ( const IdentifierInfo Id,
SourceLocation  IdLoc 
)
inline

Specify that this unqualified-id was parsed as an identifier.

Parameters
Idthe parsed identifier.
IdLocthe location of the parsed identifier.

Definition at line 995 of file DeclSpec.h.

References Id.

Referenced by addConstexprToLambdaDeclSpecifier(), clang::Parser::ParseUnqualifiedId(), clang::Declarator::SetIdentifier(), and clang::Parser::TryAnnotateTypeOrScopeTokenAfterScopeSpec().

◆ setKind()

void clang::UnqualifiedId::setKind ( IdKind  kind)
inline

Definition at line 989 of file DeclSpec.h.

◆ setLiteralOperatorId()

void clang::UnqualifiedId::setLiteralOperatorId ( const IdentifierInfo Id,
SourceLocation  OpLoc,
SourceLocation  IdLoc 
)
inline

Specific that this unqualified-id was parsed as a literal-operator-id.

Parameters
Idthe parsed identifier.
OpLocthe location of the 'operator' keyword.
IdLocthe location of the identifier.

Definition at line 1039 of file DeclSpec.h.

References Id.

◆ setOperatorFunctionId()

void UnqualifiedId::setOperatorFunctionId ( SourceLocation  OperatorLoc,
OverloadedOperatorKind  Op,
SourceLocation  SymbolLocations[3] 
)

Specify that this unqualified-id was parsed as an operator-function-id.

Parameters
OperatorLocthe location of the 'operator' keyword.
Opthe overloaded operator.
SymbolLocationsthe locations of the individual operator symbols in the operator.

Definition at line 1281 of file DeclSpec.cpp.

References EndLocation, IK_OperatorFunctionId, clang::UnqualifiedId::OFI::Operator, OperatorFunctionId, and StartLocation.

Referenced by ParseReductionId().

◆ setTemplateId()

void UnqualifiedId::setTemplateId ( TemplateIdAnnotation TemplateId)

Specify that this unqualified-id was parsed as a template-id.

Parameters
TemplateIdthe template-id annotation that describes the parsed template-id. This UnqualifiedId instance will take ownership of the TemplateId and will free it on destruction.

Definition at line 31 of file DeclSpec.cpp.

References EndLocation, IK_TemplateId, clang::TemplateIdAnnotation::RAngleLoc, StartLocation, TemplateId, and clang::TemplateIdAnnotation::TemplateNameLoc.

Referenced by addConstexprToLambdaDeclSpecifier(), and clang::Parser::ParseUnqualifiedId().

Member Data Documentation

◆ @197

union { ... }

Anonymous union that holds extra data associated with the parsed unqualified-id.

◆ ConstructorName

UnionParsedType clang::UnqualifiedId::ConstructorName

When Kind == IK_ConstructorName, the class-name of the type whose constructor is being referenced.

Definition at line 947 of file DeclSpec.h.

◆ ConversionFunctionId

UnionParsedType clang::UnqualifiedId::ConversionFunctionId

When Kind == IK_ConversionFunctionId, the type that the conversion function names.

Definition at line 943 of file DeclSpec.h.

Referenced by clang::Sema::CheckConversionDeclarator(), and GetDeclSpecTypeForDeclarator().

◆ DestructorName

UnionParsedType clang::UnqualifiedId::DestructorName

When Kind == IK_DestructorName, the type referred to by the class-name.

Definition at line 951 of file DeclSpec.h.

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

◆ EndLocation

SourceLocation clang::UnqualifiedId::EndLocation

The location of the last token that describes this unqualified-id.

Definition at line 968 of file DeclSpec.h.

Referenced by getMissingDeclaratorIdLoc(), setConstructorTemplateId(), setOperatorFunctionId(), and setTemplateId().

◆ Identifier

IdentifierInfo* clang::UnqualifiedId::Identifier

When Kind == IK_Identifier, the parsed identifier, or when Kind == IK_UserLiteralId, the identifier suffix.

Definition at line 935 of file DeclSpec.h.

Referenced by clang::Sema::ActOnPseudoDestructorExpr(), clang::Declarator::getIdentifier(), and clang::Declarator::hasName().

◆ Kind

enum clang::UnqualifiedId::IdKind clang::UnqualifiedId::Kind

◆ OperatorFunctionId

struct OFI clang::UnqualifiedId::OperatorFunctionId

When Kind == IK_OperatorFunctionId, the overloaded operator that we parsed.

Definition at line 939 of file DeclSpec.h.

Referenced by clang::Declarator::isStaticMember(), and setOperatorFunctionId().

◆ StartLocation

SourceLocation clang::UnqualifiedId::StartLocation

The location of the first token that describes this unqualified-id, which will be the location of the identifier, "operator" keyword, tilde (for a destructor), or the template name of a template-id.

Definition at line 965 of file DeclSpec.h.

Referenced by clang::Sema::ActOnPseudoDestructorExpr(), clang::Declarator::getIdentifierLoc(), getMissingDeclaratorIdLoc(), setConstructorTemplateId(), setOperatorFunctionId(), and setTemplateId().

◆ TemplateId

TemplateIdAnnotation* clang::UnqualifiedId::TemplateId

When Kind == IK_TemplateId or IK_ConstructorTemplateId, the template-id annotation that contains the template name and template arguments.

Definition at line 959 of file DeclSpec.h.

Referenced by clang::Sema::ActOnPseudoDestructorExpr(), clang::Sema::ActOnVarTemplateSpecialization(), setConstructorTemplateId(), and setTemplateId().

◆ TemplateName

UnionParsedTemplateTy clang::UnqualifiedId::TemplateName

When Kind == IK_DeductionGuideName, the parsed template-name.

Definition at line 954 of file DeclSpec.h.

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


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