@@ -1300,8 +1300,7 @@ GenericSignatureBuilder::resolveConcreteConformance(PotentialArchetype *pa,
1300
1300
1301
1301
// Lookup the conformance of the concrete type to this protocol.
1302
1302
auto conformance =
1303
- getLookupConformanceFn ()(pa->getDependentType ({ }, /* allowUnresolved=*/ true )
1304
- ->getCanonicalType (),
1303
+ getLookupConformanceFn ()(pa->getDependentType ({ })->getCanonicalType (),
1305
1304
concrete,
1306
1305
proto->getDeclaredInterfaceType ()
1307
1306
->castTo <ProtocolType>());
@@ -1331,8 +1330,7 @@ const RequirementSource *GenericSignatureBuilder::resolveSuperConformance(
1331
1330
1332
1331
// Lookup the conformance of the superclass to this protocol.
1333
1332
auto conformance =
1334
- getLookupConformanceFn ()(pa->getDependentType ({ }, /* allowUnresolved=*/ true )
1335
- ->getCanonicalType (),
1333
+ getLookupConformanceFn ()(pa->getDependentType ({ })->getCanonicalType (),
1336
1334
superclass,
1337
1335
proto->getDeclaredInterfaceType ()
1338
1336
->castTo <ProtocolType>());
@@ -1992,8 +1990,7 @@ PotentialArchetype *PotentialArchetype::updateNestedTypeForConformance(
1992
1990
// Substitute in the type of the current PotentialArchetype in
1993
1991
// place of 'Self' here.
1994
1992
auto subMap = SubstitutionMap::getProtocolSubstitutions (
1995
- proto, getDependentType (/* genericParams=*/ {},
1996
- /* allowUnresolved=*/ true ),
1993
+ proto, getDependentType (/* genericParams=*/ {}),
1997
1994
ProtocolConformanceRef (proto));
1998
1995
type = type.subst (subMap, SubstFlags::UseErrorType);
1999
1996
} else {
@@ -2058,8 +2055,7 @@ Type GenericSignatureBuilder::PotentialArchetype::getTypeInContext(
2058
2055
// If this has a recursive type, return an error type.
2059
2056
auto equivClass = representative->getEquivalenceClassIfPresent ();
2060
2057
if (equivClass->recursiveConcreteType ) {
2061
- return ErrorType::get (getDependentType (genericParams,
2062
- /* allowUnresolved=*/ true ));
2058
+ return ErrorType::get (getDependentType (genericParams));
2063
2059
}
2064
2060
2065
2061
return genericEnv->mapTypeIntoContext (concreteType,
@@ -2086,8 +2082,7 @@ Type GenericSignatureBuilder::PotentialArchetype::getTypeInContext(
2086
2082
// proper nested type.
2087
2083
auto parentTy = parent->getTypeInContext (builder, genericEnv);
2088
2084
if (!parentTy)
2089
- return ErrorType::get (getDependentType (genericParams,
2090
- /* allowUnresolved=*/ true ));
2085
+ return ErrorType::get (getDependentType (genericParams));
2091
2086
2092
2087
ParentArchetype = parentTy->getAs <ArchetypeType>();
2093
2088
if (!ParentArchetype) {
@@ -2096,7 +2091,7 @@ Type GenericSignatureBuilder::PotentialArchetype::getTypeInContext(
2096
2091
(void ) resolver;
2097
2092
2098
2093
// Resolve the member type.
2099
- auto type = getDependentType (genericParams, /* allowUnresolved= */ false );
2094
+ auto type = getDependentType (genericParams);
2100
2095
if (type->hasError ())
2101
2096
return type;
2102
2097
@@ -2175,8 +2170,7 @@ Type GenericSignatureBuilder::PotentialArchetype::getTypeInContext(
2175
2170
// If we were unable to resolve this as an associated type, produce an
2176
2171
// error type.
2177
2172
if (!assocType) {
2178
- return ErrorType::get (getDependentType (genericParams,
2179
- /* allowUnresolved=*/ true ));
2173
+ return ErrorType::get (getDependentType (genericParams));
2180
2174
}
2181
2175
2182
2176
// Create a nested archetype.
@@ -2221,23 +2215,16 @@ void ArchetypeType::resolveNestedType(
2221
2215
}
2222
2216
2223
2217
Type GenericSignatureBuilder::PotentialArchetype::getDependentType (
2224
- ArrayRef<GenericTypeParamType *> genericParams,
2225
- bool allowUnresolved) {
2218
+ ArrayRef<GenericTypeParamType *> genericParams){
2226
2219
if (auto parent = getParent ()) {
2227
- Type parentType = parent->getDependentType (genericParams,
2228
- allowUnresolved);
2220
+ Type parentType = parent->getDependentType (genericParams);
2229
2221
if (parentType->hasError ())
2230
2222
return parentType;
2231
2223
2232
2224
// If we've resolved to an associated type, use it.
2233
2225
if (auto assocType = getResolvedAssociatedType ())
2234
2226
return DependentMemberType::get (parentType, assocType);
2235
2227
2236
- // If we don't allow unresolved dependent member types, fail.
2237
- if (!allowUnresolved)
2238
- return ErrorType::get (getDependentType (genericParams,
2239
- /* allowUnresolved=*/ true ));
2240
-
2241
2228
return DependentMemberType::get (parentType, getNestedName ());
2242
2229
}
2243
2230
@@ -2525,7 +2512,7 @@ ConstraintResult GenericSignatureBuilder::addConformanceRequirement(
2525
2512
if (!PAT->addConformance (Proto, Source, *this ))
2526
2513
return ConstraintResult::Resolved;
2527
2514
2528
- auto concreteSelf = PAT->getDependentType ({}, /* allowUnresolved= */ true );
2515
+ auto concreteSelf = PAT->getDependentType ({});
2529
2516
auto protocolSubMap = SubstitutionMap::getProtocolSubstitutions (
2530
2517
Proto, concreteSelf, ProtocolConformanceRef (Proto));
2531
2518
@@ -2974,9 +2961,7 @@ ConstraintResult GenericSignatureBuilder::addTypeRequirement(
2974
2961
if (auto constraintPA = resolvedConstraint->getPotentialArchetype ()) {
2975
2962
// The constraint type isn't a statically-known constraint.
2976
2963
if (source.getLoc ().isValid ()) {
2977
- auto constraintType =
2978
- constraintPA->getDependentType (Impl->GenericParams ,
2979
- /* allowUnresolved=*/ true );
2964
+ auto constraintType = constraintPA->getDependentType (Impl->GenericParams );
2980
2965
Diags.diagnose (source.getLoc (), diag::requires_not_suitable_archetype,
2981
2966
1 , TypeLoc::withoutLoc (constraintType), 0 );
2982
2967
}
@@ -2993,8 +2978,7 @@ ConstraintResult GenericSignatureBuilder::addTypeRequirement(
2993
2978
auto subjectType = subject.dyn_cast <Type>();
2994
2979
if (!subjectType)
2995
2980
subjectType = subject.get <PotentialArchetype *>()
2996
- ->getDependentType (Impl->GenericParams ,
2997
- /* allowUnresolved=*/ true );
2981
+ ->getDependentType (Impl->GenericParams );
2998
2982
2999
2983
Diags.diagnose (source.getLoc (), diag::requires_conformance_nonprotocol,
3000
2984
TypeLoc::withoutLoc (subjectType),
@@ -3193,7 +3177,7 @@ GenericSignatureBuilder::addSameTypeRequirementBetweenArchetypes(
3193
3177
}
3194
3178
3195
3179
// Recursively merge the associated types of T2 into T1.
3196
- auto dependentT1 = T1->getDependentType ({ }, /* allowUnresolved= */ true );
3180
+ auto dependentT1 = T1->getDependentType ({ });
3197
3181
for (auto equivT2 : equivClass2Members) {
3198
3182
for (auto T2Nested : equivT2->NestedTypes ) {
3199
3183
// If T1 is concrete but T2 is not, concretize the nested types of T2.
@@ -3912,8 +3896,7 @@ GenericSignatureBuilder::finalize(SourceLoc loc,
3912
3896
equivClass->findAnyConcreteConstraintAsWritten ()) {
3913
3897
Diags.diagnose (constraint->source ->getLoc (),
3914
3898
diag::recursive_same_type_constraint,
3915
- archetype->getDependentType (genericParams,
3916
- /* allowUnresolved=*/ true ),
3899
+ archetype->getDependentType (genericParams),
3917
3900
constraint->value );
3918
3901
}
3919
3902
@@ -3929,9 +3912,7 @@ GenericSignatureBuilder::finalize(SourceLoc loc,
3929
3912
if (auto source = equivClass->findAnySuperclassConstraintAsWritten ()) {
3930
3913
Diags.diagnose (source->source ->getLoc (),
3931
3914
diag::recursive_superclass_constraint,
3932
- source->archetype ->getDependentType (
3933
- genericParams,
3934
- /* allowUnresolved=*/ true ),
3915
+ source->archetype ->getDependentType (genericParams),
3935
3916
equivClass->superclass );
3936
3917
}
3937
3918
@@ -3971,8 +3952,7 @@ GenericSignatureBuilder::finalize(SourceLoc loc,
3971
3952
if (auto constraint = equivClass->findAnyConcreteConstraintAsWritten ())
3972
3953
Diags.diagnose (constraint->source ->getLoc (),
3973
3954
diag::requires_generic_param_made_equal_to_concrete,
3974
- rep->getDependentType (genericParams,
3975
- /* allowUnresolved=*/ true ));
3955
+ rep->getDependentType (genericParams));
3976
3956
continue ;
3977
3957
}
3978
3958
@@ -4004,8 +3984,8 @@ GenericSignatureBuilder::finalize(SourceLoc loc,
4004
3984
if (repConstraint && repConstraint->source ->getLoc ().isValid ()) {
4005
3985
Diags.diagnose (repConstraint->source ->getLoc (),
4006
3986
diag::requires_generic_params_made_equal,
4007
- pa->getDependentType (genericParams, true ),
4008
- other->getDependentType (genericParams, true ));
3987
+ pa->getDependentType (genericParams),
3988
+ other->getDependentType (genericParams));
4009
3989
}
4010
3990
break ;
4011
3991
}
@@ -4173,7 +4153,7 @@ Constraint<T> GenericSignatureBuilder::checkConstraintList(
4173
4153
otherNoteDiag,
4174
4154
representativeConstraint->source ->classifyDiagKind (),
4175
4155
representativeConstraint->archetype ->
4176
- getDependentType (genericParams, /* allowUnresolved= */ true ),
4156
+ getDependentType (genericParams),
4177
4157
diagValue (representativeConstraint->value ));
4178
4158
};
4179
4159
@@ -4192,7 +4172,7 @@ Constraint<T> GenericSignatureBuilder::checkConstraintList(
4192
4172
// diagnostic.
4193
4173
auto getSubjectType =
4194
4174
[&](PotentialArchetype *pa) -> std::pair<unsigned , Type> {
4195
- auto subjectType = pa->getDependentType (genericParams, true );
4175
+ auto subjectType = pa->getDependentType (genericParams);
4196
4176
unsigned kind;
4197
4177
if (auto gp = subjectType->getAs <GenericTypeParamType>()) {
4198
4178
if (gp->getDecl () &&
@@ -4250,8 +4230,7 @@ Constraint<T> GenericSignatureBuilder::checkConstraintList(
4250
4230
constraint.source ->getLoc ().isValid ()) {
4251
4231
Diags.diagnose (constraint.source ->getLoc (),
4252
4232
redundancyDiag,
4253
- constraint.archetype ->getDependentType (
4254
- genericParams, /* allowUnresolved=*/ true ),
4233
+ constraint.archetype ->getDependentType (genericParams),
4255
4234
diagValue (constraint.value ));
4256
4235
4257
4236
noteRepresentativeConstraint ();
@@ -4556,10 +4535,8 @@ void GenericSignatureBuilder::checkSameTypeConstraints(
4556
4535
constraint.source ->getLoc ().isValid ()) {
4557
4536
Diags.diagnose (constraint.source ->getLoc (),
4558
4537
diag::redundant_same_type_constraint,
4559
- constraint.archetype ->getDependentType (
4560
- genericParams, true ),
4561
- constraint.value ->getDependentType (
4562
- genericParams, true ));
4538
+ constraint.archetype ->getDependentType (genericParams),
4539
+ constraint.value ->getDependentType (genericParams));
4563
4540
}
4564
4541
4565
4542
continue ;
@@ -4626,7 +4603,7 @@ void GenericSignatureBuilder::checkSameTypeConstraints(
4626
4603
diag::redundant_same_type_constraint,
4627
4604
diag::previous_same_type_constraint,
4628
4605
[&](PotentialArchetype *pa) {
4629
- return pa->getDependentType (genericParams, true );
4606
+ return pa->getDependentType (genericParams);
4630
4607
},
4631
4608
/* removeSelfDerived=*/ false );
4632
4609
}
@@ -4661,16 +4638,14 @@ void GenericSignatureBuilder::checkSameTypeConstraints(
4661
4638
Diags.diagnose (lhs.constraint .source ->getLoc (),
4662
4639
diag::redundant_same_type_constraint,
4663
4640
lhs.constraint .archetype ->getDependentType (
4664
- genericParams, true ),
4665
- lhs.constraint .value ->getDependentType (
4666
- genericParams, true ));
4641
+ genericParams),
4642
+ lhs.constraint .value ->getDependentType (genericParams));
4667
4643
Diags.diagnose (rhs.constraint .source ->getLoc (),
4668
4644
diag::previous_same_type_constraint,
4669
4645
rhs.constraint .source ->classifyDiagKind (),
4670
4646
rhs.constraint .archetype ->getDependentType (
4671
- genericParams, true ),
4672
- rhs.constraint .value ->getDependentType (
4673
- genericParams, true ));
4647
+ genericParams),
4648
+ rhs.constraint .value ->getDependentType (genericParams));
4674
4649
return true ;
4675
4650
}),
4676
4651
intercomponentEdges.end ());
@@ -4693,17 +4668,17 @@ void GenericSignatureBuilder::checkSameTypeConstraints(
4693
4668
Diags.diagnose (edge.constraint .source ->getLoc (),
4694
4669
diag::redundant_same_type_constraint,
4695
4670
edge.constraint .archetype ->getDependentType (
4696
- genericParams, true ),
4671
+ genericParams),
4697
4672
edge.constraint .value ->getDependentType (
4698
- genericParams, true ));
4673
+ genericParams));
4699
4674
4700
4675
Diags.diagnose (firstEdge.constraint .source ->getLoc (),
4701
4676
diag::previous_same_type_constraint,
4702
4677
firstEdge.constraint .source ->classifyDiagKind (),
4703
4678
firstEdge.constraint .archetype ->getDependentType (
4704
- genericParams, true ),
4679
+ genericParams),
4705
4680
firstEdge.constraint .value ->getDependentType (
4706
- genericParams, true ));
4681
+ genericParams));
4707
4682
}
4708
4683
4709
4684
continue ;
@@ -4730,7 +4705,7 @@ static Type resolveDependentMemberTypes(GenericSignatureBuilder &builder,
4730
4705
if (!pa)
4731
4706
return ErrorType::get (depTy);
4732
4707
4733
- return pa->getDependentType ({ }, /* allowUnresolved= */ false );
4708
+ return pa->getDependentType ({ });
4734
4709
}
4735
4710
4736
4711
return None;
@@ -4820,36 +4795,31 @@ void GenericSignatureBuilder::checkSuperclassConstraints(
4820
4795
representativeConstraint.archetype )) {
4821
4796
Diags.diagnose (existing->source ->getLoc (), diag::type_does_not_inherit,
4822
4797
existing->archetype ->getDependentType (
4823
- genericParams,
4824
- /* allowUnresolved=*/ true ),
4798
+ genericParams),
4825
4799
existing->value , equivClass->superclass );
4826
4800
4827
4801
// FIXME: Note the representative constraint.
4828
4802
} else if (representativeConstraint.source ->getLoc ().isValid ()) {
4829
4803
Diags.diagnose (representativeConstraint.source ->getLoc (),
4830
4804
diag::type_does_not_inherit,
4831
4805
representativeConstraint.archetype ->getDependentType (
4832
- genericParams,
4833
- /* allowUnresolved=*/ true ),
4806
+ genericParams),
4834
4807
equivClass->concreteType , equivClass->superclass );
4835
4808
}
4836
4809
} else if (representativeConstraint.source ->getLoc ().isValid ()) {
4837
4810
// It does fulfill the requirement; diagnose the redundancy.
4838
4811
Diags.diagnose (representativeConstraint.source ->getLoc (),
4839
4812
diag::redundant_superclass_constraint,
4840
4813
representativeConstraint.archetype ->getDependentType (
4841
- genericParams,
4842
- /* allowUnresolved=*/ true ),
4814
+ genericParams),
4843
4815
representativeConstraint.value );
4844
4816
4845
4817
if (auto existing = equivClass->findAnyConcreteConstraintAsWritten (
4846
4818
representativeConstraint.archetype )) {
4847
4819
Diags.diagnose (existing->source ->getLoc (),
4848
4820
diag::same_type_redundancy_here,
4849
4821
existing->source ->classifyDiagKind (),
4850
- existing->archetype ->getDependentType (
4851
- genericParams,
4852
- /* allowUnresolved=*/ true ),
4822
+ existing->archetype ->getDependentType (genericParams),
4853
4823
existing->value );
4854
4824
}
4855
4825
}
@@ -5180,8 +5150,7 @@ static void collectRequirements(GenericSignatureBuilder &builder,
5180
5150
type.is <Type>()))
5181
5151
return ;
5182
5152
5183
- auto depTy = archetype->getDependentType (params,
5184
- /* allowUnresolved=*/ false );
5153
+ auto depTy = archetype->getDependentType (params);
5185
5154
5186
5155
if (depTy->hasError ())
5187
5156
return ;
@@ -5201,7 +5170,7 @@ static void collectRequirements(GenericSignatureBuilder &builder,
5201
5170
} else {
5202
5171
// ...or to a dependent type.
5203
5172
repTy = type.get <GenericSignatureBuilder::PotentialArchetype *>()
5204
- ->getDependentType (params, /* allowUnresolved= */ false );
5173
+ ->getDependentType (params);
5205
5174
}
5206
5175
5207
5176
if (repTy->hasError ())
0 commit comments