@@ -2912,47 +2912,6 @@ TypeConverter::computeLoweredRValueType(TypeExpansionContext forExpansion,
2912
2912
MetatypeRepresentation::Thick);
2913
2913
}
2914
2914
2915
- CanType visitExistentialType (CanExistentialType substExistType) {
2916
- // Try to avoid walking into the constraint type if we can help it
2917
- if (!substExistType->hasTypeParameter () &&
2918
- !substExistType->hasArchetype () &&
2919
- !substExistType->hasOpaqueArchetype ()) {
2920
- return substExistType;
2921
- }
2922
-
2923
- return CanExistentialType::get (visit (substExistType.getConstraintType ()));
2924
- }
2925
-
2926
- CanType
2927
- visitParameterizedProtocolType (CanParameterizedProtocolType substPPT) {
2928
- bool changed = false ;
2929
- SmallVector<Type, 4 > loweredSubstArgs;
2930
- loweredSubstArgs.reserve (substPPT.getArgs ().size ());
2931
-
2932
- auto origConstraint = origType.getExistentialConstraintType ();
2933
- auto origPPT = origConstraint.getAs <ParameterizedProtocolType>();
2934
- if (!origPPT)
2935
- return substPPT;
2936
-
2937
- for (auto i : indices (substPPT.getArgs ())) {
2938
- auto origArgTy = AbstractionPattern (
2939
- origConstraint.getGenericSignatureOrNull (), origPPT.getArgs ()[i]);
2940
- auto substArgType = substPPT.getArgs ()[i];
2941
-
2942
- CanType loweredSubstEltType =
2943
- TC.getLoweredRValueType (forExpansion, origArgTy, substArgType);
2944
- changed = changed || substArgType != loweredSubstEltType;
2945
-
2946
- loweredSubstArgs.push_back (loweredSubstEltType);
2947
- }
2948
-
2949
- if (!changed)
2950
- return substPPT;
2951
-
2952
- return CanParameterizedProtocolType::get (
2953
- TC.Context , substPPT->getBaseType (), loweredSubstArgs);
2954
- }
2955
-
2956
2915
// Lower pack element types.
2957
2916
CanType visitPackType (CanPackType substPackType) {
2958
2917
return computeLoweredPackType (TC, forExpansion, origType,
0 commit comments