@@ -5298,12 +5298,8 @@ class GenericSignatureBuilder::InferRequirementsWalker : public TypeWalker {
52985298 // Infer from generic typealiases.
52995299 if (auto TypeAlias = dyn_cast<TypeAliasType>(ty.getPointer ())) {
53005300 auto decl = TypeAlias->getDecl ();
5301- auto genericSig = decl->getGenericSignature ();
5302- if (!genericSig)
5303- return Action::Continue;
5304-
53055301 auto subMap = TypeAlias->getSubstitutionMap ();
5306- for (const auto &rawReq : genericSig .getRequirements ()) {
5302+ for (const auto &rawReq : decl-> getGenericSignature () .getRequirements ()) {
53075303 if (auto req = rawReq.subst (subMap))
53085304 Builder.addRequirement (*req, source, nullptr );
53095305 }
@@ -8078,8 +8074,6 @@ void GenericSignatureBuilder::dump(llvm::raw_ostream &out) {
80788074}
80798075
80808076void GenericSignatureBuilder::addGenericSignature (GenericSignature sig) {
8081- if (!sig) return ;
8082-
80838077 for (auto param : sig.getGenericParams ())
80848078 addGenericParameter (param);
80858079
@@ -8605,15 +8599,12 @@ AbstractGenericSignatureRequest::evaluate(
86058599 // If there are no added requirements, we can form the signature directly
86068600 // with the added parameters.
86078601 if (addedRequirements.empty ()) {
8608- ArrayRef<Requirement> requirements;
8609- if (baseSignature) {
8610- addedParameters.insert (addedParameters.begin (),
8611- baseSignature.getGenericParams ().begin (),
8612- baseSignature.getGenericParams ().end ());
8613- requirements = baseSignature.getRequirements ();
8614- }
8602+ addedParameters.insert (addedParameters.begin (),
8603+ baseSignature.getGenericParams ().begin (),
8604+ baseSignature.getGenericParams ().end ());
86158605
8616- return GenericSignature::get (addedParameters, requirements);
8606+ return GenericSignature::get (addedParameters,
8607+ baseSignature.getRequirements ());
86178608 }
86188609
86198610 // If the request is non-canonical, we won't need to build our own
0 commit comments