Lines Matching defs:TL
341 QualType TransformType(TypeLocBuilder &TLB, TypeLoc TL);
669 TemplateTypeParmTypeLoc TL,
673 SubstTemplateTypeParmPackTypeLoc TL,
678 FunctionProtoTypeLoc TL,
684 QualType TransformAttributedType(TypeLocBuilder &TLB, AttributedTypeLoc TL,
696 TemplateSpecializationTypeLoc TL,
701 DependentTemplateSpecializationTypeLoc TL,
706 TypeLocBuilder &TLB, DependentTemplateSpecializationTypeLoc TL,
781 QualType TransformReferenceType(TypeLocBuilder &TLB, ReferenceTypeLoc TL);
832 QualType RebuildQualifiedType(QualType T, QualifiedTypeLoc TL);
4057 TypeLoc TransformTypeInObjectScope(TypeLoc TL,
4067 TypeSourceInfo *TransformTSIInObjectScope(TypeLoc TL, QualType ObjectType,
4072 DependentNameTypeLoc TL,
4446 TypeLoc TL = TransformTypeInObjectScope(Q.getTypeLoc(), ObjectType,
4449 if (!TL)
4452 QualType T = TL.getType();
4456 SemaRef.Diag(TL.getBeginLoc(),
4459 if (const auto ETL = TL.getAs<ElaboratedTypeLoc>()) {
4461 TL = ETL.getNamedTypeLoc();
4464 SS.Extend(SemaRef.Context, TL.getTemplateKeywordLoc(), TL,
4470 TypedefTypeLoc TTL = TL.getAsAdjusted<TypedefTypeLoc>();
4472 SemaRef.Diag(TL.getBeginLoc(), diag::err_nested_name_spec_non_tag)
4975 TypeLoc TL = DI->getTypeLoc();
4976 TLB.reserve(TL.getFullDataSize());
4978 QualType Result = getDerived().TransformType(TLB, TL);
5027 TypeLoc TL = DI->getTypeLoc();
5028 TLB.reserve(TL.getFullDataSize());
5030 auto QTL = TL.getAs<QualifiedTypeLoc>();
5032 TL = QTL.getUnqualifiedLoc();
5034 auto DNTL = TL.castAs<DependentNameTypeLoc>();
5087 QualifiedTypeLoc TL) {
5089 SourceLocation Loc = TL.getBeginLoc();
5090 Qualifiers Quals = TL.getType().getLocalQualifiers();
5096 << TL.getType() << T;
5158 TreeTransform<Derived>::TransformTypeInObjectScope(TypeLoc TL,
5162 if (getDerived().AlreadyTransformed(TL.getType()))
5163 return TL;
5166 TransformTSIInObjectScope(TL, ObjectType, UnqualLookup, SS);
5187 TypeLoc TL, QualType ObjectType, NamedDecl *UnqualLookup,
5189 QualType T = TL.getType();
5197 TL.castAs<TemplateSpecializationTypeLoc>();
5209 TL.castAs<DependentTemplateSpecializationTypeLoc>();
5227 Result = getDerived().TransformType(TLB, TL);
5262 AdjustedTypeLoc TL) {
5264 return getDerived().TransformType(TLB, TL.getOriginalLoc());
5269 DecayedTypeLoc TL) {
5270 QualType OriginalType = getDerived().TransformType(TLB, TL.getOriginalLoc());
5274 QualType Result = TL.getType();
5276 OriginalType != TL.getOriginalLoc().getType())
5286 ArrayParameterTypeLoc TL) {
5287 QualType OriginalType = getDerived().TransformType(TLB, TL.getElementLoc());
5291 QualType Result = TL.getType();
5293 OriginalType != TL.getElementLoc().getType())
5302 PointerTypeLoc TL) {
5304 = getDerived().TransformType(TLB, TL.getPointeeLoc());
5308 QualType Result = TL.getType();
5317 NewT.setStarLoc(TL.getStarLoc());
5322 PointeeType != TL.getPointeeLoc().getType()) {
5323 Result = getDerived().RebuildPointerType(PointeeType, TL.getSigilLoc());
5333 NewT.setSigilLoc(TL.getSigilLoc());
5340 BlockPointerTypeLoc TL) {
5342 = getDerived().TransformType(TLB, TL.getPointeeLoc());
5346 QualType Result = TL.getType();
5348 PointeeType != TL.getPointeeLoc().getType()) {
5350 TL.getSigilLoc());
5356 NewT.setSigilLoc(TL.getSigilLoc());
5367 ReferenceTypeLoc TL) {
5368 const ReferenceType *T = TL.getTypePtr();
5371 QualType PointeeType = getDerived().TransformType(TLB, TL.getPointeeLoc());
5375 QualType Result = TL.getType();
5380 TL.getSigilLoc());
5396 NewTL.setSigilLoc(TL.getSigilLoc());
5404 LValueReferenceTypeLoc TL) {
5405 return TransformReferenceType(TLB, TL);
5411 RValueReferenceTypeLoc TL) {
5412 return TransformReferenceType(TLB, TL);
5418 MemberPointerTypeLoc TL) {
5419 QualType PointeeType = getDerived().TransformType(TLB, TL.getPointeeLoc());
5423 TypeSourceInfo* OldClsTInfo = TL.getClassTInfo();
5431 const MemberPointerType *T = TL.getTypePtr();
5442 QualType Result = TL.getType();
5447 TL.getStarLoc());
5461 NewTL.setSigilLoc(TL.getSigilLoc());
5470 ConstantArrayTypeLoc TL) {
5471 const ConstantArrayType *T = TL.getTypePtr();
5472 QualType ElementType = getDerived().TransformType(TLB, TL.getElementLoc());
5477 Expr *OldSize = TL.getSizeExpr();
5488 QualType Result = TL.getType();
5496 TL.getBracketsRange());
5506 NewTL.setLBracketLoc(TL.getLBracketLoc());
5507 NewTL.setRBracketLoc(TL.getRBracketLoc());
5516 IncompleteArrayTypeLoc TL) {
5517 const IncompleteArrayType *T = TL.getTypePtr();
5518 QualType ElementType = getDerived().TransformType(TLB, TL.getElementLoc());
5522 QualType Result = TL.getType();
5528 TL.getBracketsRange());
5534 NewTL.setLBracketLoc(TL.getLBracketLoc());
5535 NewTL.setRBracketLoc(TL.getRBracketLoc());
5544 VariableArrayTypeLoc TL) {
5545 const VariableArrayType *T = TL.getTypePtr();
5546 QualType ElementType = getDerived().TransformType(TLB, TL.getElementLoc());
5565 QualType Result = TL.getType();
5573 TL.getBracketsRange());
5581 NewTL.setLBracketLoc(TL.getLBracketLoc());
5582 NewTL.setRBracketLoc(TL.getRBracketLoc());
5591 DependentSizedArrayTypeLoc TL) {
5592 const DependentSizedArrayType *T = TL.getTypePtr();
5593 QualType ElementType = getDerived().TransformType(TLB, TL.getElementLoc());
5605 Expr *origSize = TL.getSizeExpr();
5616 QualType Result = TL.getType();
5624 TL.getBracketsRange());
5632 NewTL.setLBracketLoc(TL.getLBracketLoc());
5633 NewTL.setRBracketLoc(TL.getRBracketLoc());
5641 TypeLocBuilder &TLB, DependentVectorTypeLoc TL) {
5642 const DependentVectorType *T = TL.getTypePtr();
5643 QualType ElementType = getDerived().TransformType(TLB, TL.getElementLoc());
5655 QualType Result = TL.getType();
5668 NewTL.setNameLoc(TL.getNameLoc());
5671 NewTL.setNameLoc(TL.getNameLoc());
5680 DependentSizedExtVectorTypeLoc TL) {
5681 const DependentSizedExtVectorType *T = TL.getTypePtr();
5684 QualType ElementType = getDerived().TransformType(TLB, TL.getElementLoc());
5697 QualType Result = TL.getType();
5712 NewTL.setNameLoc(TL.getNameLoc());
5715 NewTL.setNameLoc(TL.getNameLoc());
5724 ConstantMatrixTypeLoc TL) {
5725 const ConstantMatrixType *T = TL.getTypePtr();
5730 QualType Result = TL.getType();
5739 NewTL.setAttrNameLoc(TL.getAttrNameLoc());
5740 NewTL.setAttrOperandParensRange(TL.getAttrOperandParensRange());
5741 NewTL.setAttrRowOperand(TL.getAttrRowOperand());
5742 NewTL.setAttrColumnOperand(TL.getAttrColumnOperand());
5749 TypeLocBuilder &TLB, DependentSizedMatrixTypeLoc TL) {
5750 const DependentSizedMatrixType *T = TL.getTypePtr();
5761 Expr *origRows = TL.getAttrRowOperand();
5764 Expr *origColumns = TL.getAttrColumnOperand();
5781 QualType Result = TL.getType();
5794 NewTL.setAttrNameLoc(TL.getAttrNameLoc());
5795 NewTL.setAttrOperandParensRange(TL.getAttrOperandParensRange());
5803 TypeLocBuilder &TLB, DependentAddressSpaceTypeLoc TL) {
5804 const DependentAddressSpaceType *T = TL.getTypePtr();
5820 QualType Result = TL.getType();
5834 NewTL.setAttrOperandParensRange(TL.getAttrOperandParensRange());
5835 NewTL.setAttrExprOperand(TL.getAttrExprOperand());
5836 NewTL.setAttrNameLoc(TL.getAttrNameLoc());
5849 VectorTypeLoc TL) {
5850 const VectorType *T = TL.getTypePtr();
5851 QualType ElementType = getDerived().TransformType(TLB, TL.getElementLoc());
5855 QualType Result = TL.getType();
5865 NewTL.setNameLoc(TL.getNameLoc());
5872 ExtVectorTypeLoc TL) {
5873 const VectorType *T = TL.getTypePtr();
5874 QualType ElementType = getDerived().TransformType(TLB, TL.getElementLoc());
5878 QualType Result = TL.getType();
5889 NewTL.setNameLoc(TL.getNameLoc());
5975 TypeLoc TL = OldParm->getTypeSourceInfo()->getTypeLoc();
5976 PackExpansionTypeLoc ExpansionTL = TL.castAs<PackExpansionTypeLoc>();
6187 FunctionProtoTypeLoc TL) {
6190 TLB, TL, nullptr, Qualifiers(),
6192 return getDerived().TransformExceptionSpec(TL.getBeginLoc(), ESI,
6199 TypeLocBuilder &TLB, FunctionProtoTypeLoc TL, CXXRecordDecl *ThisContext,
6212 const FunctionProtoType *T = TL.getTypePtr();
6218 TL.getBeginLoc(), TL.getParams(),
6219 TL.getTypePtr()->param_type_begin(),
6235 ResultType = getDerived().TransformType(TLB, TL.getReturnLoc());
6241 ResultType = getDerived().TransformType(TLB, TL.getReturnLoc());
6246 TL.getBeginLoc(), TL.getParams(),
6247 TL.getTypePtr()->param_type_begin(),
6263 llvm::ArrayRef(EPI.ExtParameterInfos, TL.getNumParams()) !=
6312 TL.getBeginLoc())) {
6322 QualType Result = TL.getType();
6331 NewTL.setLocalRangeBegin(TL.getLocalRangeBegin());
6332 NewTL.setLParenLoc(TL.getLParenLoc());
6333 NewTL.setRParenLoc(TL.getRParenLoc());
6334 NewTL.setExceptionSpecRange(TL.getExceptionSpecRange());
6335 NewTL.setLocalRangeEnd(TL.getLocalRangeEnd());
6448 FunctionNoProtoTypeLoc TL) {
6449 const FunctionNoProtoType *T = TL.getTypePtr();
6450 QualType ResultType = getDerived().TransformType(TLB, TL.getReturnLoc());
6454 QualType Result = TL.getType();
6459 NewTL.setLocalRangeBegin(TL.getLocalRangeBegin());
6460 NewTL.setLParenLoc(TL.getLParenLoc());
6461 NewTL.setRParenLoc(TL.getRParenLoc());
6462 NewTL.setLocalRangeEnd(TL.getLocalRangeEnd());
6469 TypeLocBuilder &TLB, UnresolvedUsingTypeLoc TL) {
6470 const UnresolvedUsingType *T = TL.getTypePtr();
6471 Decl *D = getDerived().TransformDecl(TL.getNameLoc(), T->getDecl());
6475 QualType Result = TL.getType();
6477 Result = getDerived().RebuildUnresolvedUsingType(TL.getNameLoc(), D);
6485 NewTL.setNameLoc(TL.getNameLoc());
6492 UsingTypeLoc TL) {
6493 const UsingType *T = TL.getTypePtr();
6496 TL.getLocalSourceRange().getBegin(), T->getFoundDecl()));
6504 QualType Result = TL.getType();
6512 TLB.pushTypeSpec(Result).setNameLoc(TL.getNameLoc());
6518 TypedefTypeLoc TL) {
6519 const TypedefType *T = TL.getTypePtr();
6521 = cast_or_null<TypedefNameDecl>(getDerived().TransformDecl(TL.getNameLoc(),
6526 QualType Result = TL.getType();
6535 NewTL.setNameLoc(TL.getNameLoc());
6542 TypeOfExprTypeLoc TL) {
6548 ExprResult E = getDerived().TransformExpr(TL.getUnderlyingExpr());
6556 QualType Result = TL.getType();
6558 if (getDerived().AlwaysRebuild() || E.get() != TL.getUnderlyingExpr()) {
6560 getDerived().RebuildTypeOfExprType(E.get(), TL.getTypeofLoc(), Kind);
6566 NewTL.setTypeofLoc(TL.getTypeofLoc());
6567 NewTL.setLParenLoc(TL.getLParenLoc());
6568 NewTL.setRParenLoc(TL.getRParenLoc());
6575 TypeOfTypeLoc TL) {
6576 TypeSourceInfo* Old_Under_TI = TL.getUnmodifiedTInfo();
6581 QualType Result = TL.getType();
6590 NewTL.setTypeofLoc(TL.getTypeofLoc());
6591 NewTL.setLParenLoc(TL.getLParenLoc());
6592 NewTL.setRParenLoc(TL.getRParenLoc());
6600 DecltypeTypeLoc TL) {
6601 const DecltypeType *T = TL.getTypePtr();
6616 QualType Result = TL.getType();
6619 Result = getDerived().RebuildDecltypeType(E.get(), TL.getDecltypeLoc());
6626 NewTL.setDecltypeLoc(TL.getDecltypeLoc());
6627 NewTL.setRParenLoc(TL.getRParenLoc());
6634 PackIndexingTypeLoc TL) {
6636 ExprResult IndexExpr = getDerived().TransformExpr(TL.getIndexExpr());
6639 QualType Pattern = TL.getPattern();
6641 const PackIndexingType *PIT = TL.getTypePtr();
6669 if (getDerived().TryExpandParameterPacks(TL.getEllipsisLoc(), SourceRange(),
6678 SemaRef.getASTContext().getTrivialTypeSourceInfo(T, TL.getBeginLoc());
6685 Pack, IndexExpr.get(), SourceLocation(), TL.getEllipsisLoc(),
6691 Loc.setEllipsisLoc(TL.getEllipsisLoc());
6720 QualType Result = getDerived().TransformType(TLB, TL.getPatternLoc());
6723 Result, IndexExpr.get(), SourceLocation(), TL.getEllipsisLoc(),
6729 Loc.setEllipsisLoc(TL.getEllipsisLoc());
6736 UnaryTransformTypeLoc TL) {
6737 QualType Result = TL.getType();
6739 const UnaryTransformType *T = TL.getTypePtr();
6742 getDerived().TransformType(TL.getUnderlyingTInfo());
6749 TL.getKWLoc());
6755 NewTL.setKWLoc(TL.getKWLoc());
6756 NewTL.setParensRange(TL.getParensRange());
6757 NewTL.setUnderlyingTInfo(TL.getUnderlyingTInfo());
6763 TypeLocBuilder &TLB, DeducedTemplateSpecializationTypeLoc TL) {
6764 const DeducedTemplateSpecializationType *T = TL.getTypePtr();
6768 SS, T->getTemplateName(), TL.getTemplateNameLoc());
6787 NewTL.setTemplateNameLoc(TL.getTemplateNameLoc());
6794 RecordTypeLoc TL) {
6795 const RecordType *T = TL.getTypePtr();
6797 = cast_or_null<RecordDecl>(getDerived().TransformDecl(TL.getNameLoc(),
6802 QualType Result = TL.getType();
6811 NewTL.setNameLoc(TL.getNameLoc());
6818 EnumTypeLoc TL) {
6819 const EnumType *T = TL.getTypePtr();
6821 = cast_or_null<EnumDecl>(getDerived().TransformDecl(TL.getNameLoc(),
6826 QualType Result = TL.getType();
6835 NewTL.setNameLoc(TL.getNameLoc());
6843 InjectedClassNameTypeLoc TL) {
6844 Decl *D = getDerived().TransformDecl(TL.getNameLoc(),
6845 TL.getTypePtr()->getDecl());
6849 TLB.pushTypeSpec(T).setNameLoc(TL.getNameLoc());
6856 TemplateTypeParmTypeLoc TL) {
6858 TLB, TL,
6864 TypeLocBuilder &TLB, TemplateTypeParmTypeLoc TL, bool) {
6865 return TransformTypeSpecType(TLB, TL);
6871 SubstTemplateTypeParmTypeLoc TL) {
6872 const SubstTemplateTypeParmType *T = TL.getTypePtr();
6875 getDerived().TransformDecl(TL.getNameLoc(), T->getAssociatedDecl());
6880 TemporaryBase Rebase(*this, TL.getNameLoc(), DeclarationName());
6891 NewTL.setNameLoc(TL.getNameLoc());
6899 SubstTemplateTypeParmPackTypeLoc TL) {
6901 TLB, TL, /*SuppressObjCLifetime=*/false);
6906 TypeLocBuilder &TLB, SubstTemplateTypeParmPackTypeLoc TL, bool) {
6907 return TransformTypeSpecType(TLB, TL);
6913 TemplateSpecializationTypeLoc TL) {
6914 const TemplateSpecializationType *T = TL.getTypePtr();
6921 TL.getTemplateNameLoc());
6925 return getDerived().TransformTemplateSpecializationType(TLB, TL, Template);
6930 AtomicTypeLoc TL) {
6931 QualType ValueType = getDerived().TransformType(TLB, TL.getValueLoc());
6935 QualType Result = TL.getType();
6937 ValueType != TL.getValueLoc().getType()) {
6938 Result = getDerived().RebuildAtomicType(ValueType, TL.getKWLoc());
6944 NewTL.setKWLoc(TL.getKWLoc());
6945 NewTL.setLParenLoc(TL.getLParenLoc());
6946 NewTL.setRParenLoc(TL.getRParenLoc());
6953 PipeTypeLoc TL) {
6954 QualType ValueType = getDerived().TransformType(TLB, TL.getValueLoc());
6958 QualType Result = TL.getType();
6959 if (getDerived().AlwaysRebuild() || ValueType != TL.getValueLoc().getType()) {
6962 Result = getDerived().RebuildPipeType(ValueType, TL.getKWLoc(), isReadPipe);
6968 NewTL.setKWLoc(TL.getKWLoc());
6975 BitIntTypeLoc TL) {
6976 const BitIntType *EIT = TL.getTypePtr();
6977 QualType Result = TL.getType();
6981 EIT->getNumBits(), TL.getNameLoc());
6987 NewTL.setNameLoc(TL.getNameLoc());
6993 TypeLocBuilder &TLB, DependentBitIntTypeLoc TL) {
6994 const DependentBitIntType *EIT = TL.getTypePtr();
7004 QualType Result = TL.getType();
7008 EIT->isUnsigned(), BitsExpr.get(), TL.getNameLoc());
7016 NewTL.setNameLoc(TL.getNameLoc());
7019 NewTL.setNameLoc(TL.getNameLoc());
7090 AutoTypeLoc TL) {
7091 const AutoType *T = TL.getTypePtr();
7104 assert(TL.getConceptReference());
7106 TL.getConceptNameLoc(), T->getTypeConstraintConcept()));
7108 NewTemplateArgs.setLAngleLoc(TL.getLAngleLoc());
7109 NewTemplateArgs.setRAngleLoc(TL.getRAngleLoc());
7112 ArgIterator(TL, 0), ArgIterator(TL, TL.getNumArgs()),
7116 if (TL.getNestedNameSpecifierLoc()) {
7119 TL.getNestedNameSpecifierLoc());
7125 QualType Result = TL.getType();
7140 NewTL.setNameLoc(TL.getNameLoc());
7141 NewTL.setRParenLoc(TL.getRParenLoc());
7146 TL.getTypePtr()->getTypeConstraintConcept()->getDeclName(),
7147 TL.getConceptNameLoc(),
7148 TL.getTypePtr()->getTypeConstraintConcept()->getDeclName());
7150 SemaRef.Context, NewNestedNameSpec, TL.getTemplateKWLoc(), DNI,
7151 TL.getFoundDecl(), TL.getTypePtr()->getTypeConstraintConcept(),
7162 TemplateSpecializationTypeLoc TL,
7165 NewTemplateArgs.setLAngleLoc(TL.getLAngleLoc());
7166 NewTemplateArgs.setRAngleLoc(TL.getRAngleLoc());
7169 if (getDerived().TransformTemplateArguments(ArgIterator(TL, 0),
7170 ArgIterator(TL, TL.getNumArgs()),
7178 TL.getTemplateNameLoc(),
7191 NewTL.setTemplateKeywordLoc(TL.getTemplateKeywordLoc());
7192 NewTL.setTemplateNameLoc(TL.getTemplateNameLoc());
7193 NewTL.setLAngleLoc(TL.getLAngleLoc());
7194 NewTL.setRAngleLoc(TL.getRAngleLoc());
7202 NewTL.setTemplateKeywordLoc(TL.getTemplateKeywordLoc());
7203 NewTL.setTemplateNameLoc(TL.getTemplateNameLoc());
7204 NewTL.setLAngleLoc(TL.getLAngleLoc());
7205 NewTL.setRAngleLoc(TL.getRAngleLoc());
7216 DependentTemplateSpecializationTypeLoc TL,
7220 NewTemplateArgs.setLAngleLoc(TL.getLAngleLoc());
7221 NewTemplateArgs.setRAngleLoc(TL.getRAngleLoc());
7224 if (getDerived().TransformTemplateArguments(ArgIterator(TL, 0),
7225 ArgIterator(TL, TL.getNumArgs()),
7233 TL.getTypePtr()->getKeyword(), DTN->getQualifier(),
7238 NewTL.setElaboratedKeywordLoc(TL.getElaboratedKeywordLoc());
7240 NewTL.setTemplateKeywordLoc(TL.getTemplateKeywordLoc());
7241 NewTL.setTemplateNameLoc(TL.getTemplateNameLoc());
7242 NewTL.setLAngleLoc(TL.getLAngleLoc());
7243 NewTL.setRAngleLoc(TL.getRAngleLoc());
7251 TL.getTemplateNameLoc(),
7258 NewTL.setTemplateKeywordLoc(TL.getTemplateKeywordLoc());
7259 NewTL.setTemplateNameLoc(TL.getTemplateNameLoc());
7260 NewTL.setLAngleLoc(TL.getLAngleLoc());
7261 NewTL.setRAngleLoc(TL.getRAngleLoc());
7272 ElaboratedTypeLoc TL) {
7273 const ElaboratedType *T = TL.getTypePtr();
7277 if (TL.getQualifierLoc()) {
7279 = getDerived().TransformNestedNameSpecifierLoc(TL.getQualifierLoc());
7284 QualType NamedT = getDerived().TransformType(TLB, TL.getNamedTypeLoc());
7299 SemaRef.Diag(TL.getNamedTypeLoc().getBeginLoc(),
7309 QualType Result = TL.getType();
7311 QualifierLoc != TL.getQualifierLoc() ||
7313 Result = getDerived().RebuildElaboratedType(TL.getElaboratedKeywordLoc(),
7321 NewTL.setElaboratedKeywordLoc(TL.getElaboratedKeywordLoc());
7329 TypeLocBuilder &TLB, AttributedTypeLoc TL, Fn TransformModifiedTypeFn) {
7330 const AttributedType *oldType = TL.getTypePtr();
7331 QualType modifiedType = TransformModifiedTypeFn(TLB, TL.getModifiedLoc());
7336 const Attr *oldAttr = TL.getAttr();
7341 QualType result = TL.getType();
7347 AuxiliaryTLB.reserve(TL.getFullDataSize());
7349 getDerived().TransformType(AuxiliaryTLB, TL.getEquivalentTypeLoc());
7357 SemaRef.Diag((TL.getAttr() ? TL.getAttr()->getLocation()
7358 : TL.getModifiedLoc().getBeginLoc()),
7365 result = SemaRef.Context.getAttributedType(TL.getAttrKind(),
7377 AttributedTypeLoc TL) {
7379 TLB, TL, [&](TypeLocBuilder &TLB, TypeLoc ModifiedLoc) -> QualType {
7386 TypeLocBuilder &TLB, CountAttributedTypeLoc TL) {
7387 const CountAttributedType *OldTy = TL.getTypePtr();
7388 QualType InnerTy = getDerived().TransformType(TLB, TL.getInnerLoc());
7392 Expr *OldCount = TL.getCountExpr();
7401 QualType Result = TL.getType();
7415 TypeLocBuilder &TLB, BTFTagAttributedTypeLoc TL) {
7423 ParenTypeLoc TL) {
7424 QualType Inner = getDerived().TransformType(TLB, TL.getInnerLoc());
7428 QualType Result = TL.getType();
7430 Inner != TL.getInnerLoc().getType()) {
7437 NewTL.setLParenLoc(TL.getLParenLoc());
7438 NewTL.setRParenLoc(TL.getRParenLoc());
7445 MacroQualifiedTypeLoc TL) {
7446 QualType Inner = getDerived().TransformType(TLB, TL.getInnerLoc());
7450 QualType Result = TL.getType();
7451 if (getDerived().AlwaysRebuild() || Inner != TL.getInnerLoc().getType()) {
7453 getDerived().RebuildMacroQualifiedType(Inner, TL.getMacroIdentifier());
7459 NewTL.setExpansionLoc(TL.getExpansionLoc());
7465 TypeLocBuilder &TLB, DependentNameTypeLoc TL) {
7466 return TransformDependentNameType(TLB, TL, false);
7471 TypeLocBuilder &TLB, DependentNameTypeLoc TL, bool DeducedTSTContext) {
7472 const DependentNameType *T = TL.getTypePtr();
7475 = getDerived().TransformNestedNameSpecifierLoc(TL.getQualifierLoc());
7481 TL.getElaboratedKeywordLoc(),
7484 TL.getNameLoc(),
7491 TLB.pushTypeSpec(NamedT).setNameLoc(TL.getNameLoc());
7494 NewTL.setElaboratedKeywordLoc(TL.getElaboratedKeywordLoc());
7498 NewTL.setElaboratedKeywordLoc(TL.getElaboratedKeywordLoc());
7500 NewTL.setNameLoc(TL.getNameLoc());
7508 DependentTemplateSpecializationTypeLoc TL) {
7510 if (TL.getQualifierLoc()) {
7512 = getDerived().TransformNestedNameSpecifierLoc(TL.getQualifierLoc());
7518 .TransformDependentTemplateSpecializationType(TLB, TL, QualifierLoc);
7524 DependentTemplateSpecializationTypeLoc TL,
7526 const DependentTemplateSpecializationType *T = TL.getTypePtr();
7529 NewTemplateArgs.setLAngleLoc(TL.getLAngleLoc());
7530 NewTemplateArgs.setRAngleLoc(TL.getRAngleLoc());
7534 if (getDerived().TransformTemplateArguments(ArgIterator(TL, 0),
7535 ArgIterator(TL, TL.getNumArgs()),
7540 T->getKeyword(), QualifierLoc, TL.getTemplateKeywordLoc(),
7541 T->getIdentifier(), TL.getTemplateNameLoc(), NewTemplateArgs,
7552 NamedTL.setTemplateKeywordLoc(TL.getTemplateKeywordLoc());
7553 NamedTL.setTemplateNameLoc(TL.getTemplateNameLoc());
7554 NamedTL.setLAngleLoc(TL.getLAngleLoc());
7555 NamedTL.setRAngleLoc(TL.getRAngleLoc());
7561 NewTL.setElaboratedKeywordLoc(TL.getElaboratedKeywordLoc());
7566 SpecTL.setElaboratedKeywordLoc(TL.getElaboratedKeywordLoc());
7568 SpecTL.setTemplateKeywordLoc(TL.getTemplateKeywordLoc());
7569 SpecTL.setTemplateNameLoc(TL.getTemplateNameLoc());
7570 SpecTL.setLAngleLoc(TL.getLAngleLoc());
7571 SpecTL.setRAngleLoc(TL.getRAngleLoc());
7577 SpecTL.setTemplateKeywordLoc(TL.getTemplateKeywordLoc());
7578 SpecTL.setTemplateNameLoc(TL.getTemplateNameLoc());
7579 SpecTL.setLAngleLoc(TL.getLAngleLoc());
7580 SpecTL.setRAngleLoc(TL.getRAngleLoc());
7589 PackExpansionTypeLoc TL) {
7591 = getDerived().TransformType(TLB, TL.getPatternLoc());
7595 QualType Result = TL.getType();
7597 Pattern != TL.getPatternLoc().getType()) {
7599 TL.getPatternLoc().getSourceRange(),
7600 TL.getEllipsisLoc(),
7601 TL.getTypePtr()->getNumExpansions());
7607 NewT.setEllipsisLoc(TL.getEllipsisLoc());
7614 ObjCInterfaceTypeLoc TL) {
7616 TLB.pushFullCopy(TL);
7617 return TL.getType();
7623 ObjCTypeParamTypeLoc TL) {
7624 const ObjCTypeParamType *T = TL.getTypePtr();
7630 QualType Result = TL.getType();
7634 OTP, TL.getProtocolLAngleLoc(),
7635 llvm::ArrayRef(TL.getTypePtr()->qual_begin(), TL.getNumProtocols()),
7636 TL.getProtocolLocs(), TL.getProtocolRAngleLoc());
7642 if (TL.getNumProtocols()) {
7643 NewTL.setProtocolLAngleLoc(TL.getProtocolLAngleLoc());
7644 for (unsigned i = 0, n = TL.getNumProtocols(); i != n; ++i)
7645 NewTL.setProtocolLoc(i, TL.getProtocolLoc(i));
7646 NewTL.setProtocolRAngleLoc(TL.getProtocolRAngleLoc());
7654 ObjCObjectTypeLoc TL) {
7656 QualType BaseType = getDerived().TransformType(TLB, TL.getBaseLoc());
7660 bool AnyChanged = BaseType != TL.getBaseLoc().getType();
7664 for (unsigned i = 0, n = TL.getNumTypeArgs(); i != n; ++i) {
7665 TypeSourceInfo *TypeArgInfo = TL.getTypeArgTInfo(i);
7750 QualType Result = TL.getType();
7754 BaseType, TL.getBeginLoc(), TL.getTypeArgsLAngleLoc(), NewTypeArgInfos,
7755 TL.getTypeArgsRAngleLoc(), TL.getProtocolLAngleLoc(),
7756 llvm::ArrayRef(TL.getTypePtr()->qual_begin(), TL.getNumProtocols()),
7757 TL.getProtocolLocs(), TL.getProtocolRAngleLoc());
7765 NewT.setTypeArgsLAngleLoc(TL.getTypeArgsLAngleLoc());
7766 for (unsigned i = 0, n = TL.getNumTypeArgs(); i != n; ++i)
7768 NewT.setTypeArgsRAngleLoc(TL.getTypeArgsRAngleLoc());
7769 NewT.setProtocolLAngleLoc(TL.getProtocolLAngleLoc());
7770 for (unsigned i = 0, n = TL.getNumProtocols(); i != n; ++i)
7771 NewT.setProtocolLoc(i, TL.getProtocolLoc(i));
7772 NewT.setProtocolRAngleLoc(TL.getProtocolRAngleLoc());
7779 ObjCObjectPointerTypeLoc TL) {
7780 QualType PointeeType = getDerived().TransformType(TLB, TL.getPointeeLoc());
7784 QualType Result = TL.getType();
7786 PointeeType != TL.getPointeeLoc().getType()) {
7788 TL.getStarLoc());
7794 NewT.setStarLoc(TL.getStarLoc());
14581 [&](TypeLocBuilder &TLB, TypeLoc TL) -> QualType {
14583 TLB, TL.castAs<FunctionProtoTypeLoc>());