Skip to content

Commit 1dddd9c

Browse files
committed
[RequirementMachine] Move gating emitting diagnostics on the requirement
macine flags to callers. Callers gate this decision on different flags; InferredGenericSignatureRequestRQM needs RequirementMachineInferredSignatures to be enabled, and the other callsites need RequirementMachineProtocolSignatures to be enabled.
1 parent 04a91fe commit 1dddd9c

File tree

2 files changed

+13
-9
lines changed

2 files changed

+13
-9
lines changed

lib/AST/RequirementMachine/RequirementLowering.cpp

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -532,9 +532,7 @@ void swift::rewriting::realizeInheritedRequirements(
532532

533533
/// Emit diagnostics for the given \c RequirementErrors.
534534
///
535-
/// \param ctx The AST context, which is used to determine whether
536-
/// requirement machine protocol signatures are enabled. If not,
537-
/// diagnostics will not be emitted.
535+
/// \param ctx The AST context in which to emit diagnostics.
538536
/// \param errors The set of requirement diagnostics to be emitted.
539537
/// \param allowConcreteGenericParams Whether concrete type parameters
540538
/// are permitted in the generic signature. If true, diagnostics will
@@ -547,9 +545,6 @@ bool swift::rewriting::diagnoseRequirementErrors(
547545
ASTContext &ctx, SmallVectorImpl<RequirementError> &errors,
548546
bool allowConcreteGenericParams) {
549547
bool diagnosedError = false;
550-
if (ctx.LangOpts.RequirementMachineProtocolSignatures !=
551-
RequirementMachineMode::Enabled)
552-
return diagnosedError;
553548

554549
for (auto error : errors) {
555550
SourceLoc loc = error.loc;
@@ -740,7 +735,10 @@ StructuralRequirementsRequest::evaluate(Evaluator &evaluator,
740735
}
741736
}
742737

743-
diagnoseRequirementErrors(ctx, errors, /*allowConcreteGenericParams=*/false);
738+
if (ctx.LangOpts.RequirementMachineProtocolSignatures ==
739+
RequirementMachineMode::Enabled) {
740+
diagnoseRequirementErrors(ctx, errors, /*allowConcreteGenericParams=*/false);
741+
}
744742

745743
return ctx.AllocateCopy(result);
746744
}
@@ -996,7 +994,10 @@ TypeAliasRequirementsRequest::evaluate(Evaluator &evaluator,
996994
}
997995
}
998996

999-
diagnoseRequirementErrors(ctx, errors, /*allowConcreteGenericParams=*/false);
997+
if (ctx.LangOpts.RequirementMachineProtocolSignatures ==
998+
RequirementMachineMode::Enabled) {
999+
diagnoseRequirementErrors(ctx, errors, /*allowConcreteGenericParams=*/false);
1000+
}
10001001

10011002
return ctx.AllocateCopy(result);
10021003
}

lib/AST/RequirementMachine/RequirementMachineRequests.cpp

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -633,7 +633,10 @@ InferredGenericSignatureRequestRQM::evaluate(
633633
auto result = GenericSignature::get(genericParams, minimalRequirements);
634634
bool hadError = machine->hadError();
635635

636-
hadError |= diagnoseRequirementErrors(ctx, errors, allowConcreteGenericParams);
636+
if (ctx.LangOpts.RequirementMachineInferredSignatures ==
637+
RequirementMachineMode::Enabled) {
638+
hadError |= diagnoseRequirementErrors(ctx, errors, allowConcreteGenericParams);
639+
}
637640

638641
// FIXME: Handle allowConcreteGenericParams
639642

0 commit comments

Comments
 (0)