13
13
#ifndef SWIFT_SIL_UTILS_GENERICSPECIALIZATIONMANGLER_H
14
14
#define SWIFT_SIL_UTILS_GENERICSPECIALIZATIONMANGLER_H
15
15
16
+ #include " swift/AST/ASTContext.h"
16
17
#include " swift/AST/ASTMangler.h"
17
18
#include " swift/AST/Effects.h"
18
19
#include " swift/Basic/NullablePtr.h"
@@ -50,14 +51,14 @@ class SpecializationMangler : public Mangle::ASTMangler {
50
51
PossibleEffects RemovedEffects;
51
52
52
53
protected:
53
- SpecializationMangler (SpecializationPass P, swift::SerializedKind_t Serialized,
54
+ SpecializationMangler (ASTContext &Ctx, SpecializationPass P, swift::SerializedKind_t Serialized,
54
55
SILFunction *F)
55
- : Pass(P), Serialized(Serialized), Function(F),
56
+ : ASTMangler(Ctx), Pass(P), Serialized(Serialized), Function(F),
56
57
ArgOpBuffer (ArgOpStorage) {}
57
58
58
- SpecializationMangler (SpecializationPass P, swift::SerializedKind_t Serialized,
59
+ SpecializationMangler (ASTContext &Ctx, SpecializationPass P, swift::SerializedKind_t Serialized,
59
60
std::string functionName)
60
- : Pass(P), Serialized(Serialized), Function(nullptr ),
61
+ : ASTMangler(Ctx), Pass(P), Serialized(Serialized), Function(nullptr ),
61
62
FunctionName(functionName), ArgOpBuffer(ArgOpStorage) {}
62
63
63
64
void beginMangling ();
@@ -73,8 +74,8 @@ class SpecializationMangler : public Mangle::ASTMangler {
73
74
// The mangler for specialized generic functions.
74
75
class GenericSpecializationMangler : public SpecializationMangler {
75
76
76
- GenericSpecializationMangler (std::string origFuncName)
77
- : SpecializationMangler(SpecializationPass::GenericSpecializer,
77
+ GenericSpecializationMangler (ASTContext &Ctx, std::string origFuncName)
78
+ : SpecializationMangler(Ctx, SpecializationPass::GenericSpecializer,
78
79
IsNotSerialized, origFuncName) {}
79
80
80
81
GenericSignature getGenericSignature () {
@@ -90,8 +91,8 @@ class GenericSpecializationMangler : public SpecializationMangler {
90
91
void appendRemovedParams (const SmallBitVector ¶msRemoved);
91
92
92
93
public:
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,
95
96
Serialized, F) {}
96
97
97
98
std::string mangleNotReabstracted (SubstitutionMap subs,
@@ -118,7 +119,7 @@ class GenericSpecializationMangler : public SpecializationMangler {
118
119
return manglePrespecialized (getGenericSignature (), subs);
119
120
}
120
121
121
- static std::string manglePrespecialization (std::string unspecializedName,
122
+ static std::string manglePrespecialization (ASTContext &Ctx, std::string unspecializedName,
122
123
GenericSignature genericSig,
123
124
GenericSignature specializedSig);
124
125
};
0 commit comments