1313#ifndef SWIFT_SIL_UTILS_GENERICSPECIALIZATIONMANGLER_H
1414#define SWIFT_SIL_UTILS_GENERICSPECIALIZATIONMANGLER_H
1515
16+ #include " swift/AST/ASTContext.h"
1617#include " swift/AST/ASTMangler.h"
1718#include " swift/AST/Effects.h"
1819#include " swift/Basic/NullablePtr.h"
@@ -50,14 +51,14 @@ class SpecializationMangler : public Mangle::ASTMangler {
5051 PossibleEffects RemovedEffects;
5152
5253protected:
53- SpecializationMangler (SpecializationPass P, swift::SerializedKind_t Serialized,
54+ SpecializationMangler (ASTContext &Ctx, SpecializationPass P, swift::SerializedKind_t Serialized,
5455 SILFunction *F)
55- : Pass(P), Serialized(Serialized), Function(F),
56+ : ASTMangler(Ctx), Pass(P), Serialized(Serialized), Function(F),
5657 ArgOpBuffer (ArgOpStorage) {}
5758
58- SpecializationMangler (SpecializationPass P, swift::SerializedKind_t Serialized,
59+ SpecializationMangler (ASTContext &Ctx, SpecializationPass P, swift::SerializedKind_t Serialized,
5960 std::string functionName)
60- : Pass(P), Serialized(Serialized), Function(nullptr ),
61+ : ASTMangler(Ctx), Pass(P), Serialized(Serialized), Function(nullptr ),
6162 FunctionName(functionName), ArgOpBuffer(ArgOpStorage) {}
6263
6364 void beginMangling ();
@@ -73,8 +74,8 @@ class SpecializationMangler : public Mangle::ASTMangler {
7374// The mangler for specialized generic functions.
7475class GenericSpecializationMangler : public SpecializationMangler {
7576
76- GenericSpecializationMangler (std::string origFuncName)
77- : SpecializationMangler(SpecializationPass::GenericSpecializer,
77+ GenericSpecializationMangler (ASTContext &Ctx, std::string origFuncName)
78+ : SpecializationMangler(Ctx, SpecializationPass::GenericSpecializer,
7879 IsNotSerialized, origFuncName) {}
7980
8081 GenericSignature getGenericSignature () {
@@ -90,8 +91,8 @@ class GenericSpecializationMangler : public SpecializationMangler {
9091 void appendRemovedParams (const SmallBitVector ¶msRemoved);
9192
9293public:
93- GenericSpecializationMangler (SILFunction *F, swift::SerializedKind_t Serialized)
94- : SpecializationMangler(SpecializationPass::GenericSpecializer,
94+ GenericSpecializationMangler (ASTContext &Ctx, SILFunction *F, swift::SerializedKind_t Serialized)
95+ : SpecializationMangler(Ctx, SpecializationPass::GenericSpecializer,
9596 Serialized, F) {}
9697
9798 std::string mangleNotReabstracted (SubstitutionMap subs,
@@ -118,7 +119,7 @@ class GenericSpecializationMangler : public SpecializationMangler {
118119 return manglePrespecialized (getGenericSignature (), subs);
119120 }
120121
121- static std::string manglePrespecialization (std::string unspecializedName,
122+ static std::string manglePrespecialization (ASTContext &Ctx, std::string unspecializedName,
122123 GenericSignature genericSig,
123124 GenericSignature specializedSig);
124125};
0 commit comments