@@ -289,6 +289,9 @@ RequirementMachine::initWithProtocolSignatureRequirements(
289289 RuleBuilder builder (Context, System.getReferencedProtocols ());
290290 builder.initWithProtocolSignatureRequirements (protos);
291291
292+ // Remember if any of our upstream protocols failed to complete.
293+ Failed = builder.Failed ;
294+
292295 // Add the initial set of rewrite rules to the rewrite system.
293296 System.initialize (/* recordLoops=*/ false , protos,
294297 std::move (builder.ImportedRules ),
@@ -337,6 +340,9 @@ RequirementMachine::initWithGenericSignature(GenericSignature sig) {
337340 builder.initWithGenericSignature (sig.getGenericParams (),
338341 sig.getRequirements ());
339342
343+ // Remember if any of our upstream protocols failed to complete.
344+ Failed = builder.Failed ;
345+
340346 // Add the initial set of rewrite rules to the rewrite system.
341347 System.initialize (/* recordLoops=*/ false ,
342348 /* protos=*/ ArrayRef<const ProtocolDecl *>(),
@@ -390,6 +396,9 @@ RequirementMachine::initWithProtocolWrittenRequirements(
390396 RuleBuilder builder (Context, System.getReferencedProtocols ());
391397 builder.initWithProtocolWrittenRequirements (component, protos);
392398
399+ // Remember if any of our upstream protocols failed to complete.
400+ Failed = builder.Failed ;
401+
393402 // Add the initial set of rewrite rules to the rewrite system.
394403 System.initialize (/* recordLoops=*/ true , component,
395404 std::move (builder.ImportedRules ),
@@ -437,6 +446,9 @@ RequirementMachine::initWithWrittenRequirements(
437446 RuleBuilder builder (Context, System.getReferencedProtocols ());
438447 builder.initWithWrittenRequirements (genericParams, requirements);
439448
449+ // Remember if any of our upstream protocols failed to complete.
450+ Failed = builder.Failed ;
451+
440452 // Add the initial set of rewrite rules to the rewrite system.
441453 System.initialize (/* recordLoops=*/ true ,
442454 /* protos=*/ ArrayRef<const ProtocolDecl *>(),
@@ -553,10 +565,6 @@ ArrayRef<Rule> RequirementMachine::getLocalRules() const {
553565 return System.getLocalRules ();
554566}
555567
556- bool RequirementMachine::isComplete () const {
557- return Complete;
558- }
559-
560568GenericSignatureErrors RequirementMachine::getErrors () const {
561569 // FIXME: Assert if we had errors but we didn't emit any diagnostics?
562570 return System.getErrors ();
0 commit comments