Lines Matching refs:SemaRef
124 getEnclosingTypeAliasTemplateDecl(Sema &SemaRef) { in getEnclosingTypeAliasTemplateDecl() argument
125 for (auto &CSC : llvm::reverse(SemaRef.CodeSynthesisContexts)) { in getEnclosingTypeAliasTemplateDecl()
269 Response HandleFunction(Sema &SemaRef, const FunctionDecl *Function, in HandleFunction() argument
383 Response HandleRecordDecl(Sema &SemaRef, const CXXRecordDecl *Rec, in HandleRecordDecl() argument
420 if (auto TypeAlias = getEnclosingTypeAliasTemplateDecl(SemaRef); in HandleRecordDecl()
582 Sema &SemaRef, CodeSynthesisContext::SynthesisKind Kind, in InstantiatingTemplate() argument
586 : SemaRef(SemaRef) { in InstantiatingTemplate()
590 if (SemaRef.Diags.hasFatalErrorOccurred() && in InstantiatingTemplate()
591 SemaRef.hasUncompilableErrorOccurred()) { in InstantiatingTemplate()
606 SemaRef.pushCodeSynthesisContext(Inst); in InstantiatingTemplate()
609 !SemaRef.InstantiatingSpecializations in InstantiatingTemplate()
612 atTemplateBegin(SemaRef.TemplateInstCallbacks, SemaRef, Inst); in InstantiatingTemplate()
617 Sema &SemaRef, SourceLocation PointOfInstantiation, Decl *Entity, in InstantiatingTemplate() argument
619 : InstantiatingTemplate(SemaRef, in InstantiatingTemplate()
624 Sema &SemaRef, SourceLocation PointOfInstantiation, FunctionDecl *Entity, in InstantiatingTemplate() argument
627 SemaRef, CodeSynthesisContext::ExceptionSpecInstantiation, in InstantiatingTemplate()
631 Sema &SemaRef, SourceLocation PointOfInstantiation, TemplateParameter Param, in InstantiatingTemplate() argument
635 SemaRef, in InstantiatingTemplate()
641 Sema &SemaRef, SourceLocation PointOfInstantiation, in InstantiatingTemplate() argument
646 : InstantiatingTemplate(SemaRef, Kind, PointOfInstantiation, in InstantiatingTemplate()
655 Sema &SemaRef, SourceLocation PointOfInstantiation, in InstantiatingTemplate() argument
660 SemaRef, in InstantiatingTemplate()
666 Sema &SemaRef, SourceLocation PointOfInstantiation, in InstantiatingTemplate() argument
671 SemaRef, in InstantiatingTemplate()
677 Sema &SemaRef, SourceLocation PointOfInstantiation, in InstantiatingTemplate() argument
682 SemaRef, in InstantiatingTemplate()
688 Sema &SemaRef, SourceLocation PointOfInstantiation, ParmVarDecl *Param, in InstantiatingTemplate() argument
691 SemaRef, in InstantiatingTemplate()
697 Sema &SemaRef, SourceLocation PointOfInstantiation, NamedDecl *Template, in InstantiatingTemplate() argument
701 SemaRef, in InstantiatingTemplate()
707 Sema &SemaRef, SourceLocation PointOfInstantiation, NamedDecl *Template, in InstantiatingTemplate() argument
711 SemaRef, in InstantiatingTemplate()
717 Sema &SemaRef, SourceLocation PointOfInstantiation, in InstantiatingTemplate() argument
721 SemaRef, CodeSynthesisContext::TypeAliasTemplateInstantiation, in InstantiatingTemplate()
726 Sema &SemaRef, SourceLocation PointOfInstantiation, TemplateDecl *Template, in InstantiatingTemplate() argument
730 SemaRef, CodeSynthesisContext::DefaultTemplateArgumentChecking, in InstantiatingTemplate()
735 Sema &SemaRef, SourceLocation PointOfInstantiation, in InstantiatingTemplate() argument
739 SemaRef, CodeSynthesisContext::RequirementInstantiation, in InstantiatingTemplate()
745 Sema &SemaRef, SourceLocation PointOfInstantiation, in InstantiatingTemplate() argument
749 SemaRef, CodeSynthesisContext::NestedRequirementConstraintsCheck, in InstantiatingTemplate()
754 Sema &SemaRef, SourceLocation PointOfInstantiation, const RequiresExpr *RE, in InstantiatingTemplate() argument
757 SemaRef, CodeSynthesisContext::RequirementParameterInstantiation, in InstantiatingTemplate()
763 Sema &SemaRef, SourceLocation PointOfInstantiation, in InstantiatingTemplate() argument
767 SemaRef, CodeSynthesisContext::ConstraintsCheck, in InstantiatingTemplate()
772 Sema &SemaRef, SourceLocation PointOfInstantiation, in InstantiatingTemplate() argument
776 SemaRef, CodeSynthesisContext::ConstraintSubstitution, in InstantiatingTemplate()
781 Sema &SemaRef, SourceLocation PointOfInstantiation, in InstantiatingTemplate() argument
785 SemaRef, CodeSynthesisContext::ConstraintNormalization, in InstantiatingTemplate()
789 Sema &SemaRef, SourceLocation PointOfInstantiation, in InstantiatingTemplate() argument
793 SemaRef, CodeSynthesisContext::ParameterMappingSubstitution, in InstantiatingTemplate()
797 Sema &SemaRef, SourceLocation PointOfInstantiation, TemplateDecl *Entity, in InstantiatingTemplate() argument
800 SemaRef, CodeSynthesisContext::BuildingDeductionGuides, in InstantiatingTemplate()
851 auto &Active = SemaRef.CodeSynthesisContexts.back(); in Clear()
853 SemaRef.InstantiatingSpecializations.erase( in Clear()
857 atTemplateEnd(SemaRef.TemplateInstCallbacks, SemaRef, in Clear()
858 SemaRef.CodeSynthesisContexts.back()); in Clear()
860 SemaRef.popCodeSynthesisContext(); in Clear()
881 assert(SemaRef.NonInstantiationEntries <= in CheckInstantiationDepth()
882 SemaRef.CodeSynthesisContexts.size()); in CheckInstantiationDepth()
883 if ((SemaRef.CodeSynthesisContexts.size() - in CheckInstantiationDepth()
884 SemaRef.NonInstantiationEntries) in CheckInstantiationDepth()
885 <= SemaRef.getLangOpts().InstantiationDepth) in CheckInstantiationDepth()
888 SemaRef.Diag(PointOfInstantiation, in CheckInstantiationDepth()
890 << SemaRef.getLangOpts().InstantiationDepth in CheckInstantiationDepth()
892 SemaRef.Diag(PointOfInstantiation, diag::note_template_recursion_depth) in CheckInstantiationDepth()
893 << SemaRef.getLangOpts().InstantiationDepth; in CheckInstantiationDepth()
1347 TemplateInstantiator(Sema &SemaRef, in TemplateInstantiator() argument
1350 : inherited(SemaRef), TemplateArgs(TemplateArgs), Loc(Loc), in TemplateInstantiator()
1405 SemaRef.CurrentInstantiationScope->MakeInstantiatedLocalArgPack(Pack); in ExpandingFunctionParameterPack()
1411 = SemaRef.CurrentInstantiationScope->getPartiallySubstitutedPack()){ in ForgetPartiallySubstitutedPack()
1430 = SemaRef.CurrentInstantiationScope->getPartiallySubstitutedPack()){ in RememberPartiallySubstitutedPack()
1444 SemaRef.InstantiateAttrs(TemplateArgs, Old, New); in transformAttrs()
1449 SemaRef.CurrentInstantiationScope->MakeInstantiatedLocalArgPack(Old); in transformedLocalDecl()
1451 SemaRef.CurrentInstantiationScope->InstantiatedLocalPackArg( in transformedLocalDecl()
1474 SemaRef.CurrentInstantiationScope->InstantiatedLocal(Old, New); in transformedLocalDecl()
1480 SemaRef.PerformDependentDiagnostics(DC, TemplateArgs); in transformedLocalDecl()
1566 SemaRef.CodeSynthesisContexts.back().Kind == in TransformInjectedClassNameType()
1573 TLB.pushTrivial(SemaRef.Context, Type, TL.getNameLoc()); in TransformInjectedClassNameType()
1591 TemplateArgumentLoc Input = SemaRef.getTrivialTemplateArgumentLoc( in TransformTemplateArgument()
1594 if (SemaRef.SubstTemplateArgument(Input, TemplateArgs, Output)) in TransformTemplateArgument()
1598 Output = SemaRef.getTrivialTemplateArgumentLoc( in TransformTemplateArgument()
1599 TemplateArgument(llvm::ArrayRef(TArgs).copy(SemaRef.Context)), in TransformTemplateArgument()
1659 LocalInstantiationScope Scope(SemaRef, /*CombineWithOuterScope=*/true); in TransformLambdaExpr()
1674 if (SemaRef.SubstDefaultArgument(EqualLoc, PVD, TemplateArgs)) { in TransformLambdaExpr()
1678 ExprResult ErrorResult = SemaRef.CreateRecoveryExpr( in TransformLambdaExpr()
1707 LocalInstantiationScope Scope(SemaRef, /*CombineWithOuterScope=*/true); in TransformRequiresExpr()
1715 Sema::SFINAETrap Trap(SemaRef); in TransformRequiresExpr()
1718 SemaRef.PerformDependentDiagnostics(E->getBody(), TemplateArgs); in TransformRequiresExpr()
1842 return SemaRef.FindInstantiatedDecl(Loc, cast<NamedDecl>(D), TemplateArgs); in TransformDecl()
1942 if (!SemaRef.isAcceptableTagRedeclaration(TD, Kind, /*isDefinition*/false, in RebuildElaboratedType()
1944 SemaRef.Diag(TagLocation, diag::err_use_with_wrong_tag) in RebuildElaboratedType()
1948 SemaRef.Diag(TD->getLocation(), diag::note_previous_use); in RebuildElaboratedType()
2081 QualType TargetType = SemaRef.SubstType(NTTP->getType(), TemplateArgs, in TransformTemplateParmRefExpr()
2087 QualType ExprType = TargetType.getNonLValueExprType(SemaRef.Context); in TransformTemplateParmRefExpr()
2091 return new (SemaRef.Context) SubstNonTypeTemplateParmPackExpr( in TransformTemplateParmRefExpr()
2179 T = parm->getExpansionType(SemaRef.ArgumentPackSubstitutionIndex); in transformNonTypeTemplateParmRef()
2184 return SemaRef.SubstType(T, TemplateArgs, loc, parm->getDeclName()); in transformNonTypeTemplateParmRef()
2222 result = SemaRef.BuildExpressionFromDeclTemplateArgument(arg, paramType, loc); in transformNonTypeTemplateParmRef()
2226 result = SemaRef.BuildExpressionFromNonTypeTemplateArgument(arg, loc); in transformNonTypeTemplateParmRef()
2229 SemaRef.Context.hasSameType(result.get()->getType(), in transformNonTypeTemplateParmRef()
2238 return new (SemaRef.Context) SubstNonTypeTemplateParmExpr( in transformNonTypeTemplateParmRef()
2291 if (SemaRef in TransformSubstNonTypeTemplateParmExpr()
2400 return SemaRef.BuildCXXDefaultArgExpr( in TransformCXXDefaultArgExpr()
2412 LocalInstantiationScope Scope(SemaRef, /*CombineWithOuterScope=*/true); in TransformFunctionProtoType()
2420 auto NewParm = SemaRef.SubstParmVarDecl( in TransformFunctionTypeParam()
2423 if (NewParm && SemaRef.getLangOpts().OpenCL) in TransformFunctionTypeParam()
2424 SemaRef.deduceOpenCLAddressSpace(NewParm); in TransformFunctionTypeParam()
2441 SemaRef.Context.getQualifiedType(Replacement.getUnqualifiedType(), RQs); in BuildSubstTemplateTypeParmType()
2445 TLB.pushTrivial(SemaRef.Context, Replacement, NameLoc); in BuildSubstTemplateTypeParmType()
2490 TLB.pushTrivial(SemaRef.Context, NewT, TL.getNameLoc()); in TransformTemplateTypeParmType()
2610 Sema::InstantiatingTemplate TypeInst(SemaRef, KWLoc, in TransformRequiresTypeParams()
2613 Sema::SFINAETrap Trap(SemaRef); in TransformRequiresTypeParams()
2625 SemaRef, Info, [&](llvm::raw_ostream &OS) { OS << *FailedDecl; }))); in TransformRequiresTypeParams()
2645 Sema::SFINAETrap Trap(SemaRef); in TransformTypeRequirement()
2647 Sema::InstantiatingTemplate TypeInst(SemaRef, in TransformTypeRequirement()
2654 return RebuildTypeRequirement(createSubstDiag(SemaRef, Info, in TransformTypeRequirement()
2656 Req->getType()->getType().print(OS, SemaRef.getPrintingPolicy()); in TransformTypeRequirement()
2666 Sema::SFINAETrap Trap(SemaRef); in TransformExprRequirement()
2675 Sema::InstantiatingTemplate ExprInst(SemaRef, E->getBeginLoc(), Req, Info, in TransformExprRequirement()
2682 TransExprRes = SemaRef.CheckPlaceholderExpr(TransExprRes.get()); in TransformExprRequirement()
2684 TransExpr = createSubstDiag(SemaRef, Info, [&](llvm::raw_ostream &OS) { in TransformExprRequirement()
2685 E->printPretty(OS, nullptr, SemaRef.getPrintingPolicy()); in TransformExprRequirement()
2701 Sema::InstantiatingTemplate TPLInst(SemaRef, OrigTPL->getTemplateLoc(), in TransformExprRequirement()
2707 TransRetReq.emplace(createSubstDiag(SemaRef, Info, in TransformExprRequirement()
2710 ->printPretty(OS, nullptr, SemaRef.getPrintingPolicy()); in TransformExprRequirement()
2737 Sema::InstantiatingTemplate ReqInst(SemaRef, in TransformNestedRequirement()
2746 return new (SemaRef.Context) in TransformNestedRequirement()
2749 return new (SemaRef.Context) concepts::NestedRequirement( in TransformNestedRequirement()
2750 SemaRef.Context, TransConstraint.get(), Satisfaction); in TransformNestedRequirement()
2758 SemaRef, Sema::ExpressionEvaluationContext::ConstantEvaluated); in TransformNestedRequirement()
2759 Sema::SFINAETrap Trap(SemaRef); in TransformNestedRequirement()
2760 Sema::InstantiatingTemplate ConstrInst(SemaRef, in TransformNestedRequirement()
2766 if (!SemaRef.CheckConstraintSatisfaction( in TransformNestedRequirement()
2774 ASTContext &C = SemaRef.Context; in TransformNestedRequirement()
2783 SemaRef.getPrintingPolicy()); in TransformNestedRequirement()
2785 SemaRef.Context, C.backupStr(Entity), Satisfaction); in TransformNestedRequirement()