@@ -580,6 +580,10 @@ class GenericSignatureBuilder::ExplicitRequirement {
580
580
return sourceAndKind.getInt ();
581
581
}
582
582
583
+ Type getSubjectType () const {
584
+ return getSource ()->getStoredType ();
585
+ }
586
+
583
587
const RequirementSource *getSource () const {
584
588
return sourceAndKind.getPointer ();
585
589
}
@@ -7179,7 +7183,7 @@ void GenericSignatureBuilder::diagnoseRedundantRequirements() const {
7179
7183
}))
7180
7184
continue ;
7181
7185
7182
- auto subjectType = getSugaredDependentType (source-> getStoredType (),
7186
+ auto subjectType = getSugaredDependentType (req. getSubjectType (),
7183
7187
getGenericParams ());
7184
7188
7185
7189
switch (req.getKind ()) {
@@ -7321,7 +7325,7 @@ void GenericSignatureBuilder::diagnoseConflictingConcreteTypeRequirements() cons
7321
7325
if (loc.isInvalid () && otherLoc.isInvalid ())
7322
7326
continue ;
7323
7327
7324
- auto subjectType = pair.concreteTypeRequirement .getSource ()-> getStoredType ();
7328
+ auto subjectType = pair.concreteTypeRequirement .getSubjectType ();
7325
7329
SourceLoc subjectLoc = (loc.isInvalid () ? otherLoc : loc);
7326
7330
7327
7331
Impl->HadAnyError = true ;
@@ -8292,7 +8296,7 @@ void GenericSignatureBuilder::enumerateRequirements(
8292
8296
continue ;
8293
8297
8294
8298
auto depTy = getCanonicalTypeInContext (
8295
- req.getSource ()-> getStoredType (), { });
8299
+ req.getSubjectType (), { });
8296
8300
8297
8301
// FIXME: This should be an assert once we ensure that concrete
8298
8302
// same-type requirements always mark other requirements on the
@@ -8561,7 +8565,7 @@ GenericSignature GenericSignatureBuilder::rebuildSignatureWithoutRedundantRequir
8561
8565
Impl->ExplicitConformancesImpliedByConcrete .count (req))
8562
8566
continue ;
8563
8567
8564
- auto subjectType = req.getSource ()-> getStoredType ();
8568
+ auto subjectType = req.getSubjectType ();
8565
8569
subjectType = stripBoundDependentMemberTypes (subjectType);
8566
8570
auto resolvedSubjectType =
8567
8571
resolveDependentMemberTypes (*this , subjectType,
0 commit comments