mirror of
https://github.com/apple/swift.git
synced 2025-12-21 12:14:44 +01:00
AST: Introduce new SubstitutionList type to replace ArrayRef<Substitution>
SubstitutionList is going to be a more compact representation of a SubstitutionMap, suitable for inline allocation inside another object. For now, it's just a typedef for ArrayRef<Substitution>.
This commit is contained in:
@@ -104,7 +104,7 @@ struct MaterializeForSetEmitter {
|
||||
FuncDecl *Witness;
|
||||
AbstractStorageDecl *WitnessStorage;
|
||||
AbstractionPattern WitnessStoragePattern;
|
||||
ArrayRef<Substitution> WitnessSubs;
|
||||
SubstitutionList WitnessSubs;
|
||||
|
||||
CanGenericSignature GenericSig;
|
||||
GenericEnvironment *GenericEnv;
|
||||
@@ -127,7 +127,7 @@ struct MaterializeForSetEmitter {
|
||||
private:
|
||||
|
||||
MaterializeForSetEmitter(SILGenModule &SGM, SILLinkage linkage,
|
||||
FuncDecl *witness, ArrayRef<Substitution> subs,
|
||||
FuncDecl *witness, SubstitutionList subs,
|
||||
Type selfInterfaceType, Type selfType)
|
||||
: SGM(SGM),
|
||||
Linkage(linkage),
|
||||
@@ -173,7 +173,7 @@ public:
|
||||
Type selfInterfaceType, Type selfType,
|
||||
GenericEnvironment *genericEnv,
|
||||
FuncDecl *requirement, FuncDecl *witness,
|
||||
ArrayRef<Substitution> witnessSubs) {
|
||||
SubstitutionList witnessSubs) {
|
||||
MaterializeForSetEmitter emitter(SGM, linkage, witness, witnessSubs,
|
||||
selfInterfaceType, selfType);
|
||||
|
||||
@@ -207,7 +207,7 @@ public:
|
||||
static MaterializeForSetEmitter
|
||||
forConcreteImplementation(SILGenModule &SGM,
|
||||
FuncDecl *witness,
|
||||
ArrayRef<Substitution> witnessSubs) {
|
||||
SubstitutionList witnessSubs) {
|
||||
auto *dc = witness->getDeclContext();
|
||||
Type selfInterfaceType = dc->getSelfInterfaceType();
|
||||
Type selfType = witness->mapTypeIntoContext(selfInterfaceType);
|
||||
@@ -833,7 +833,7 @@ maybeEmitMaterializeForSetThunk(ProtocolConformance *conformance,
|
||||
GenericEnvironment *genericEnv,
|
||||
FuncDecl *requirement,
|
||||
FuncDecl *witness,
|
||||
ArrayRef<Substitution> witnessSubs) {
|
||||
SubstitutionList witnessSubs) {
|
||||
|
||||
MaterializeForSetEmitter emitter
|
||||
= MaterializeForSetEmitter::forWitnessThunk(
|
||||
|
||||
Reference in New Issue
Block a user