mirror of
https://github.com/apple/swift.git
synced 2025-12-21 12:14:44 +01:00
Revert "[GSB] Hack the ordering of adding requirements for a signature."
I don't think this is necessary anymore.
This reverts commit 3e80a616c4.
This commit is contained in:
@@ -6226,24 +6226,10 @@ void GenericSignatureBuilder::addGenericSignature(GenericSignature *sig) {
|
|||||||
for (auto param : sig->getGenericParams())
|
for (auto param : sig->getGenericParams())
|
||||||
addGenericParameter(param);
|
addGenericParameter(param);
|
||||||
|
|
||||||
// Add the requirements, queuing up same-type requirements until the end.
|
for (auto &reqt : sig->getRequirements())
|
||||||
// FIXME: Queuing up same-type requirements is a hack that works around
|
|
||||||
// problems when referencing associated types. These issues primarily
|
|
||||||
// occur when building canonical generic environments
|
|
||||||
SmallVector<Requirement, 4> sameTypeRequirements;
|
|
||||||
for (auto &reqt : sig->getRequirements()) {
|
|
||||||
if (reqt.getKind() == RequirementKind::SameType)
|
|
||||||
sameTypeRequirements.push_back(reqt);
|
|
||||||
else
|
|
||||||
addRequirement(reqt, FloatingRequirementSource::forAbstract(), nullptr);
|
addRequirement(reqt, FloatingRequirementSource::forAbstract(), nullptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Handle same-type requirements.
|
|
||||||
for (auto &reqt : sameTypeRequirements) {
|
|
||||||
addRequirement(reqt, FloatingRequirementSource::forAbstract(), nullptr);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Collect the set of requirements placed on the given generic parameters and
|
/// Collect the set of requirements placed on the given generic parameters and
|
||||||
/// their associated types.
|
/// their associated types.
|
||||||
static void collectRequirements(GenericSignatureBuilder &builder,
|
static void collectRequirements(GenericSignatureBuilder &builder,
|
||||||
|
|||||||
Reference in New Issue
Block a user