Skip to content

Commit 3378ff9

Browse files
committed
GSB: Store explicit same-type requirements as ExplicitRequirements also
1 parent 45dabb1 commit 3378ff9

File tree

1 file changed

+5
-6
lines changed

1 file changed

+5
-6
lines changed

lib/AST/GenericSignatureBuilder.cpp

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -667,7 +667,7 @@ struct GenericSignatureBuilder::Implementation {
667667
SmallSetVector<ExplicitRequirement, 2> ExplicitRequirements;
668668

669669
/// All explicit same-type requirements that were added to the builder.
670-
SmallVector<Requirement, 2> ExplicitSameTypeRequirements;
670+
SmallVector<ExplicitRequirement, 2> ExplicitSameTypeRequirements;
671671

672672
/// A mapping of redundant explicit requirements to the best root requirement
673673
/// that implies them. Built by computeRedundantRequirements().
@@ -4915,7 +4915,7 @@ GenericSignatureBuilder::addSameTypeRequirementBetweenTypeParameters(
49154915

49164916
if (!source->isDerivedRequirement()) {
49174917
Impl->ExplicitSameTypeRequirements.emplace_back(RequirementKind::SameType,
4918-
depType1, depType2);
4918+
source, depType1);
49194919
}
49204920

49214921
// Record the same-type constraint, and bail out if it was already known.
@@ -5142,8 +5142,7 @@ ConstraintResult GenericSignatureBuilder::addSameTypeRequirementToConcrete(
51425142
const RequirementSource *source) {
51435143
if (!source->isDerivedRequirement()) {
51445144
Impl->ExplicitSameTypeRequirements.emplace_back(RequirementKind::SameType,
5145-
type.getDependentType(*this),
5146-
concrete);
5145+
source, concrete);
51475146
}
51485147

51495148
auto equivClass = type.getEquivalenceClass(*this);
@@ -8472,8 +8471,8 @@ GenericSignature GenericSignatureBuilder::rebuildSignatureWithoutRedundantRequir
84728471
}
84738472
};
84748473

8475-
auto subjectType = resolveType(req.getFirstType());
8476-
auto constraintType = resolveType(req.getSecondType());
8474+
auto subjectType = resolveType(req.getSubjectType());
8475+
auto constraintType = resolveType(req.getRHS().get<Type>());
84778476

84788477
auto newReq = stripBoundDependentMemberTypes(
84798478
Requirement(RequirementKind::SameType,

0 commit comments

Comments
 (0)