clang API Documentation
Represents a C++ unqualified-id that has been parsed. More...
#include <DeclSpec.h>

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 } |
| 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. | |
| bool | isValid () const |
| Determine whether this unqualified-id refers to a valid name. | |
| bool | isInvalid () const |
| Determine whether this unqualified-id refers to an invalid name. | |
| IdKind | getKind () const |
| Determine what kind of name we have. | |
| void | setKind (IdKind kind) |
| void | setIdentifier (const IdentifierInfo *Id, SourceLocation IdLoc) |
| Specify that this unqualified-id was parsed as an identifier. | |
| void | setOperatorFunctionId (SourceLocation OperatorLoc, OverloadedOperatorKind Op, SourceLocation SymbolLocations[3]) |
| Specify that this unqualified-id was parsed as an operator-function-id. | |
| void | setConversionFunctionId (SourceLocation OperatorLoc, ParsedType Ty, SourceLocation EndLoc) |
| Specify that this unqualified-id was parsed as a conversion-function-id. | |
| void | setLiteralOperatorId (const IdentifierInfo *Id, SourceLocation OpLoc, SourceLocation IdLoc) |
| Specific that this unqualified-id was parsed as a literal-operator-id. | |
| void | setConstructorName (ParsedType ClassType, SourceLocation ClassNameLoc, SourceLocation EndLoc) |
| Specify that this unqualified-id was parsed as a constructor name. | |
| void | setConstructorTemplateId (TemplateIdAnnotation *TemplateId) |
| Specify that this unqualified-id was parsed as a template-id that names a constructor. | |
| void | setDestructorName (SourceLocation TildeLoc, ParsedType ClassType, SourceLocation EndLoc) |
| Specify that this unqualified-id was parsed as a destructor name. | |
| void | setTemplateId (TemplateIdAnnotation *TemplateId) |
| Specify that this unqualified-id was parsed as a template-id. | |
| SourceRange | getSourceRange () const LLVM_READONLY |
| Return the source range that covers this unqualified-id. | |
| 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. | |
| struct OFI OperatorFunctionId | |
| When Kind == IK_OperatorFunctionId, the overloaded operator that we parsed. | |
| UnionParsedType ConversionFunctionId | |
| When Kind == IK_ConversionFunctionId, the type that the conversion function names. | |
| UnionParsedType ConstructorName | |
| When Kind == IK_ConstructorName, the class-name of the type whose constructor is being referenced. | |
| UnionParsedType DestructorName | |
| When Kind == IK_DestructorName, the type referred to by the class-name. | |
| TemplateIdAnnotation * TemplateId | |
| When Kind == IK_TemplateId or IK_ConstructorTemplateId, the template-id annotation that contains the template name and template arguments. | |
| }; | |
| Anonymous union that holds extra data associated with the parsed unqualified-id. | |
| 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. | |
| SourceLocation | EndLocation |
| The location of the last token that describes this unqualified-id. | |
Represents a C++ unqualified-id that has been parsed.
Definition at line 846 of file DeclSpec.h.
Describes the kind of unqualified-id parsed.
Definition at line 853 of file DeclSpec.h.
| clang::UnqualifiedId::UnqualifiedId | ( | ) | [inline] |
Definition at line 925 of file DeclSpec.h.
| void clang::UnqualifiedId::clear | ( | ) | [inline] |
Clear out this unqualified-id, setting it to default (invalid) state.
Definition at line 929 of file DeclSpec.h.
References EndLocation, Identifier, IK_Identifier, and StartLocation.
Referenced by clang::Declarator::clear().
| IdKind clang::UnqualifiedId::getKind | ( | ) | const [inline] |
Determine what kind of name we have.
Definition at line 943 of file DeclSpec.h.
References Kind.
Referenced by clang::Sema::ActOnDependentTemplateName(), clang::Sema::ActOnExplicitInstantiation(), clang::Sema::ActOnFriendFunctionDecl(), clang::Sema::ActOnFunctionDeclarator(), clang::Sema::ActOnIdExpression(), clang::Sema::ActOnMemberAccessExpr(), clang::Sema::ActOnPseudoDestructorExpr(), clang::Sema::ActOnUsingDeclaration(), clang::Sema::ActOnVariableDeclarator(), clang::Sema::ActOnVarTemplateSpecialization(), clang::Sema::checkLiteralOperatorId(), clang::Sema::DecomposeUnqualifiedId(), diagnoseRedundantReturnTypeQualifiers(), GetDeclSpecTypeForDeclarator(), GetFullTypeForDeclarator(), clang::Declarator::getIdentifier(), clang::Sema::GetNameFromUnqualifiedId(), clang::Declarator::hasName(), clang::Sema::isTemplateName(), clang::Declarator::mayBeFollowedByCXXDirectInit(), and clang::Parser::ParseUnqualifiedId().
| SourceLocation clang::UnqualifiedId::getLocEnd | ( | ) | const [inline] |
Definition at line 1053 of file DeclSpec.h.
References EndLocation.
| SourceLocation clang::UnqualifiedId::getLocStart | ( | ) | const [inline] |
Definition at line 1052 of file DeclSpec.h.
References StartLocation.
Referenced by clang::Sema::ActOnDependentTemplateName(), clang::Sema::ActOnMemberAccessExpr(), clang::Sema::ActOnUsingDeclaration(), clang::Sema::checkLiteralOperatorId(), clang::Sema::isTemplateName(), and clang::Sema::LookupInlineAsmIdentifier().
| SourceRange clang::UnqualifiedId::getSourceRange | ( | ) | const [inline] |
Return the source range that covers this unqualified-id.
Definition at line 1049 of file DeclSpec.h.
References EndLocation, and StartLocation.
Referenced by clang::Sema::ActOnDependentTemplateName(), clang::Sema::ActOnFunctionDeclarator(), clang::Sema::ActOnMemberAccessExpr(), clang::Sema::ActOnTypedefDeclarator(), clang::Sema::CheckConversionDeclarator(), and GetDeclSpecTypeForDeclarator().
| bool clang::UnqualifiedId::isInvalid | ( | ) | const [inline] |
Determine whether this unqualified-id refers to an invalid name.
Definition at line 940 of file DeclSpec.h.
References isValid().
| bool clang::UnqualifiedId::isValid | ( | ) | const [inline] |
Determine whether this unqualified-id refers to a valid name.
Definition at line 937 of file DeclSpec.h.
References clang::SourceLocation::isValid(), and StartLocation.
Referenced by isInvalid(), clang::Declarator::isPastIdentifier(), and setOperatorFunctionId().
| void clang::UnqualifiedId::setConstructorName | ( | ParsedType | ClassType, |
| SourceLocation | ClassNameLoc, | ||
| SourceLocation | EndLoc | ||
| ) | [inline] |
Specify that this unqualified-id was parsed as a constructor name.
| ClassType | the class type referred to by the constructor name. |
| ClassNameLoc | the location of the class name. |
| EndLoc | the location of the last token that makes up the type name. |
Definition at line 1009 of file DeclSpec.h.
References ConstructorName, EndLocation, IK_ConstructorName, and StartLocation.
Referenced by clang::Parser::ParseUnqualifiedId().
| void UnqualifiedId::setConstructorTemplateId | ( | TemplateIdAnnotation * | TemplateId | ) |
Specify that this unqualified-id was parsed as a template-id that names a constructor.
| TemplateId | the 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 49 of file DeclSpec.cpp.
References EndLocation, IK_ConstructorTemplateId, clang::TemplateIdAnnotation::RAngleLoc, StartLocation, TemplateId, and clang::TemplateIdAnnotation::TemplateNameLoc.
Referenced by clang::Parser::ParseUnqualifiedId().
| void clang::UnqualifiedId::setConversionFunctionId | ( | SourceLocation | OperatorLoc, |
| ParsedType | Ty, | ||
| SourceLocation | EndLoc | ||
| ) | [inline] |
Specify that this unqualified-id was parsed as a conversion-function-id.
| OperatorLoc | the location of the 'operator' keyword. |
| Ty | the type to which this conversion function is converting. |
| EndLoc | the location of the last token that makes up the type name. |
Definition at line 977 of file DeclSpec.h.
References ConversionFunctionId, EndLocation, IK_ConversionFunctionId, and StartLocation.
| void clang::UnqualifiedId::setDestructorName | ( | SourceLocation | TildeLoc, |
| ParsedType | ClassType, | ||
| SourceLocation | EndLoc | ||
| ) | [inline] |
Specify that this unqualified-id was parsed as a destructor name.
| TildeLoc | the location of the '~' that introduces the destructor name. |
| ClassType | the name of the class referred to by the destructor name. |
Definition at line 1032 of file DeclSpec.h.
References DestructorName, EndLocation, IK_DestructorName, and StartLocation.
Referenced by clang::Parser::ParseUnqualifiedId().
| void clang::UnqualifiedId::setIdentifier | ( | const IdentifierInfo * | Id, |
| SourceLocation | IdLoc | ||
| ) | [inline] |
Specify that this unqualified-id was parsed as an identifier.
| Id | the parsed identifier. |
| IdLoc | the location of the parsed identifier. |
Definition at line 950 of file DeclSpec.h.
References EndLocation, Identifier, IK_Identifier, and StartLocation.
Referenced by clang::Sema::DefaultVariadicArgumentPromotion(), clang::Sema::DiagnoseUnknownTypeName(), clang::Sema::getTypeName(), clang::Sema::LookupInObjCMethod(), clang::Parser::ParseUnqualifiedId(), clang::TreeTransform< Derived >::RebuildTemplateName(), clang::Declarator::SetIdentifier(), and clang::Parser::TryAnnotateTypeOrScopeTokenAfterScopeSpec().
| void clang::UnqualifiedId::setKind | ( | IdKind | kind | ) | [inline] |
Definition at line 944 of file DeclSpec.h.
Referenced by clang::Sema::LookupInObjCMethod().
| void clang::UnqualifiedId::setLiteralOperatorId | ( | const IdentifierInfo * | Id, |
| SourceLocation | OpLoc, | ||
| SourceLocation | IdLoc | ||
| ) | [inline] |
Specific that this unqualified-id was parsed as a literal-operator-id.
| Id | the parsed identifier. |
| OpLoc | the location of the 'operator' keyword. |
| IdLoc | the location of the identifier. |
Definition at line 994 of file DeclSpec.h.
References EndLocation, Identifier, IK_LiteralOperatorId, and StartLocation.
| void UnqualifiedId::setOperatorFunctionId | ( | SourceLocation | OperatorLoc, |
| OverloadedOperatorKind | Op, | ||
| SourceLocation | SymbolLocations[3] | ||
| ) |
Specify that this unqualified-id was parsed as an operator-function-id.
| OperatorLoc | the location of the 'operator' keyword. |
| Op | the overloaded operator. |
| SymbolLocations | the locations of the individual operator symbols in the operator. |
Definition at line 1199 of file DeclSpec.cpp.
References EndLocation, clang::SourceLocation::getRawEncoding(), IK_OperatorFunctionId, isValid(), clang::UnqualifiedId::OFI::Operator, OperatorFunctionId, StartLocation, and clang::UnqualifiedId::OFI::SymbolLocations.
Referenced by ParseReductionId(), and clang::TreeTransform< Derived >::RebuildTemplateName().
| void UnqualifiedId::setTemplateId | ( | TemplateIdAnnotation * | TemplateId | ) |
Specify that this unqualified-id was parsed as a template-id.
| TemplateId | the 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 41 of file DeclSpec.cpp.
References EndLocation, IK_TemplateId, clang::TemplateIdAnnotation::RAngleLoc, StartLocation, TemplateId, and clang::TemplateIdAnnotation::TemplateNameLoc.
Referenced by clang::Parser::ParseUnqualifiedId().
| union { ... } |
Anonymous union that holds extra data associated with the parsed unqualified-id.
When Kind == IK_ConstructorName, the class-name of the type whose constructor is being referenced.
Definition at line 905 of file DeclSpec.h.
Referenced by clang::Sema::GetNameFromUnqualifiedId(), and setConstructorName().
When Kind == IK_ConversionFunctionId, the type that the conversion function names.
Definition at line 901 of file DeclSpec.h.
Referenced by clang::Sema::CheckConversionDeclarator(), GetDeclSpecTypeForDeclarator(), clang::Sema::GetNameFromUnqualifiedId(), and setConversionFunctionId().
When Kind == IK_DestructorName, the type referred to by the class-name.
Definition at line 909 of file DeclSpec.h.
Referenced by clang::Sema::CheckDestructorDeclarator(), clang::Sema::GetNameFromUnqualifiedId(), and setDestructorName().
The location of the last token that describes this unqualified-id.
Definition at line 923 of file DeclSpec.h.
Referenced by clear(), getLocEnd(), getMissingDeclaratorIdLoc(), clang::Sema::GetNameFromUnqualifiedId(), getSourceRange(), setConstructorName(), setConstructorTemplateId(), setConversionFunctionId(), setDestructorName(), setIdentifier(), setLiteralOperatorId(), setOperatorFunctionId(), and setTemplateId().
When Kind == IK_Identifier, the parsed identifier, or when Kind == IK_UserLiteralId, the identifier suffix.
Definition at line 893 of file DeclSpec.h.
Referenced by clang::Sema::ActOnAliasDeclaration(), clang::Sema::ActOnDependentTemplateName(), clang::Sema::ActOnPseudoDestructorExpr(), clear(), clang::Declarator::getIdentifier(), clang::Sema::GetNameFromUnqualifiedId(), clang::Declarator::hasName(), clang::Sema::isTemplateName(), setIdentifier(), and setLiteralOperatorId().
Referenced by clang::Sema::ActOnAliasDeclaration(), clang::Sema::ActOnTypedefDeclarator(), and getKind().
When Kind == IK_OperatorFunctionId, the overloaded operator that we parsed.
Definition at line 897 of file DeclSpec.h.
Referenced by clang::Sema::ActOnDependentTemplateName(), clang::Sema::GetNameFromUnqualifiedId(), clang::Sema::isTemplateName(), and setOperatorFunctionId().
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 920 of file DeclSpec.h.
Referenced by clang::Sema::ActOnAliasDeclaration(), clang::Sema::ActOnPseudoDestructorExpr(), clang::Sema::ActOnTypedefDeclarator(), clear(), clang::Declarator::getIdentifierLoc(), getLocStart(), getMissingDeclaratorIdLoc(), clang::Sema::GetNameFromUnqualifiedId(), getSourceRange(), isValid(), setConstructorName(), setConstructorTemplateId(), setConversionFunctionId(), setDestructorName(), setIdentifier(), setLiteralOperatorId(), setOperatorFunctionId(), and setTemplateId().
When Kind == IK_TemplateId or IK_ConstructorTemplateId, the template-id annotation that contains the template name and template arguments.
Definition at line 914 of file DeclSpec.h.
Referenced by clang::Sema::ActOnExplicitInstantiation(), clang::Sema::ActOnFunctionDeclarator(), clang::Sema::ActOnIdExpression(), clang::Sema::ActOnPseudoDestructorExpr(), clang::Sema::ActOnUsingDeclaration(), clang::Sema::ActOnVariableDeclarator(), clang::Sema::ActOnVarTemplateSpecialization(), clang::Sema::DecomposeUnqualifiedId(), clang::Sema::GetNameFromUnqualifiedId(), setConstructorTemplateId(), and setTemplateId().