Lines Matching refs:TypeLoc
1 //===--- TypeLoc.cpp - Type Source Info Wrapper -----------------*- C++ -*-===//
10 // This file defines the TypeLoc subclasses implementations.
14 #include "clang/AST/TypeLoc.h"
25 // TypeLoc Implementation
32 #define TYPELOC(CLASS, PARENT) \
33 SourceRange Visit##CLASS##TypeLoc(CLASS##TypeLoc TyLoc) { \
40 SourceRange TypeLoc::getLocalSourceRangeImpl(TypeLoc TL) {
49 #define TYPELOC(CLASS, PARENT) \
50 unsigned Visit##CLASS##TypeLoc(CLASS##TypeLoc TyLoc) { \
58 unsigned TypeLoc::getLocalAlignmentForType(QualType Ty) {
60 return TypeAligner().Visit(TypeLoc(Ty, nullptr));
67 #define TYPELOC(CLASS, PARENT) \
68 unsigned Visit##CLASS##TypeLoc(CLASS##TypeLoc TyLoc) { \
76 unsigned TypeLoc::getFullDataSizeForType(QualType Ty) {
78 TypeLoc TyLoc(Ty, nullptr);
92 class NextLoc : public TypeLocVisitor<NextLoc, TypeLoc> {
95 #define TYPELOC(CLASS, PARENT) \
96 TypeLoc Visit##CLASS##TypeLoc(CLASS##TypeLoc TyLoc) { \
103 /// \brief Get the next TypeLoc pointed by this TypeLoc, e.g for "int*" the
104 /// TypeLoc is a PointerLoc and next TypeLoc is for "int".
105 TypeLoc TypeLoc::getNextTypeLocImpl(TypeLoc TL) {
112 void TypeLoc::initializeImpl(ASTContext &Context, TypeLoc TL,
117 #define TYPELOC(CLASS, PARENT) \
119 CLASS##TypeLoc TLCasted = TL.castAs<CLASS##TypeLoc>(); \
132 TypeLoc Source;
134 TypeLocCopier(TypeLoc source) : Source(source) { }
137 #define TYPELOC(CLASS, PARENT) \
138 void Visit##CLASS##TypeLoc(CLASS##TypeLoc dest) { \
139 dest.copyLocal(Source.castAs<CLASS##TypeLoc>()); \
146 void TypeLoc::copy(TypeLoc other) {
163 TypeLoc TL(getType(), Data);
170 SourceLocation TypeLoc::getBeginLoc() const {
171 TypeLoc Cur = *this;
172 TypeLoc LeftMost = Cur;
207 SourceLocation TypeLoc::getEndLoc() const {
208 TypeLoc Cur = *this;
209 TypeLoc Last;
226 Last = TypeLoc();
252 static bool isTypeSpec(TypeLoc _) { return false; }
255 #define TYPELOC(CLASS, PARENT) \
256 bool Visit##CLASS##TypeLoc(CLASS##TypeLoc TyLoc) { \
272 bool TypeSpecTypeLoc::isKind(const TypeLoc &TL) {
362 TypeLoc TypeLoc::IgnoreParensImpl(TypeLoc TL) {
368 SourceLocation TypeLoc::findNullabilityLoc() const {
379 TypeLoc TypeLoc::findExplicitQualifierLoc() const {
384 TypeLoc loc = IgnoreParens();
397 return TypeLoc();