@@ -289,6 +289,9 @@ RequirementMachine::initWithProtocolSignatureRequirements(
289
289
RuleBuilder builder (Context, System.getReferencedProtocols ());
290
290
builder.initWithProtocolSignatureRequirements (protos);
291
291
292
+ // Remember if any of our upstream protocols failed to complete.
293
+ Failed = builder.Failed ;
294
+
292
295
// Add the initial set of rewrite rules to the rewrite system.
293
296
System.initialize (/* recordLoops=*/ false , protos,
294
297
std::move (builder.ImportedRules ),
@@ -337,6 +340,9 @@ RequirementMachine::initWithGenericSignature(GenericSignature sig) {
337
340
builder.initWithGenericSignature (sig.getGenericParams (),
338
341
sig.getRequirements ());
339
342
343
+ // Remember if any of our upstream protocols failed to complete.
344
+ Failed = builder.Failed ;
345
+
340
346
// Add the initial set of rewrite rules to the rewrite system.
341
347
System.initialize (/* recordLoops=*/ false ,
342
348
/* protos=*/ ArrayRef<const ProtocolDecl *>(),
@@ -390,6 +396,9 @@ RequirementMachine::initWithProtocolWrittenRequirements(
390
396
RuleBuilder builder (Context, System.getReferencedProtocols ());
391
397
builder.initWithProtocolWrittenRequirements (component, protos);
392
398
399
+ // Remember if any of our upstream protocols failed to complete.
400
+ Failed = builder.Failed ;
401
+
393
402
// Add the initial set of rewrite rules to the rewrite system.
394
403
System.initialize (/* recordLoops=*/ true , component,
395
404
std::move (builder.ImportedRules ),
@@ -437,6 +446,9 @@ RequirementMachine::initWithWrittenRequirements(
437
446
RuleBuilder builder (Context, System.getReferencedProtocols ());
438
447
builder.initWithWrittenRequirements (genericParams, requirements);
439
448
449
+ // Remember if any of our upstream protocols failed to complete.
450
+ Failed = builder.Failed ;
451
+
440
452
// Add the initial set of rewrite rules to the rewrite system.
441
453
System.initialize (/* recordLoops=*/ true ,
442
454
/* protos=*/ ArrayRef<const ProtocolDecl *>(),
@@ -553,10 +565,6 @@ ArrayRef<Rule> RequirementMachine::getLocalRules() const {
553
565
return System.getLocalRules ();
554
566
}
555
567
556
- bool RequirementMachine::isComplete () const {
557
- return Complete;
558
- }
559
-
560
568
GenericSignatureErrors RequirementMachine::getErrors () const {
561
569
// FIXME: Assert if we had errors but we didn't emit any diagnostics?
562
570
return System.getErrors ();
0 commit comments