RequirementMachine: Split up -requirement-machine-generic-signatures flag into -requirement-machine-{abstract,inferred}-signatures

This commit is contained in:
Slava Pestov
2021-11-19 16:05:13 -05:00
parent af9ea678ed
commit 163293e6f9
4 changed files with 30 additions and 6 deletions

View File

@@ -864,7 +864,7 @@ static bool ParseLangArgs(LangOptions &Opts, ArgList &Args,
A->getAsString(Args), A->getValue());
}
if (auto A = Args.getLastArg(OPT_requirement_machine_generic_signatures_EQ)) {
if (auto A = Args.getLastArg(OPT_requirement_machine_abstract_signatures_EQ)) {
auto value = llvm::StringSwitch<Optional<RequirementMachineMode>>(A->getValue())
.Case("off", RequirementMachineMode::Disabled)
.Case("on", RequirementMachineMode::Enabled)
@@ -872,7 +872,21 @@ static bool ParseLangArgs(LangOptions &Opts, ArgList &Args,
.Default(None);
if (value)
Opts.RequirementMachineGenericSignatures = *value;
Opts.RequirementMachineAbstractSignatures = *value;
else
Diags.diagnose(SourceLoc(), diag::error_invalid_arg_value,
A->getAsString(Args), A->getValue());
}
if (auto A = Args.getLastArg(OPT_requirement_machine_inferred_signatures_EQ)) {
auto value = llvm::StringSwitch<Optional<RequirementMachineMode>>(A->getValue())
.Case("off", RequirementMachineMode::Disabled)
.Case("on", RequirementMachineMode::Enabled)
.Case("verify", RequirementMachineMode::Verify)
.Default(None);
if (value)
Opts.RequirementMachineInferredSignatures = *value;
else
Diags.diagnose(SourceLoc(), diag::error_invalid_arg_value,
A->getAsString(Args), A->getValue());