mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
RequirementMachine: Add -requirement-machine-protocol-signatures= flag
There are three settings, on, off and verify. Not hooked up quite yet.
This commit is contained in:
@@ -831,13 +831,12 @@ static bool ParseLangArgs(LangOptions &Opts, ArgList &Args,
|
||||
}
|
||||
}
|
||||
|
||||
if (auto A =
|
||||
Args.getLastArg(OPT_requirement_machine_EQ)) {
|
||||
if (auto A = Args.getLastArg(OPT_requirement_machine_EQ)) {
|
||||
auto value = llvm::StringSwitch<Optional<RequirementMachineMode>>(A->getValue())
|
||||
.Case("off", RequirementMachineMode::Disabled)
|
||||
.Case("on", RequirementMachineMode::Enabled)
|
||||
.Case("verify", RequirementMachineMode::Verify)
|
||||
.Default(None);
|
||||
.Case("off", RequirementMachineMode::Disabled)
|
||||
.Case("on", RequirementMachineMode::Enabled)
|
||||
.Case("verify", RequirementMachineMode::Verify)
|
||||
.Default(None);
|
||||
|
||||
if (value)
|
||||
Opts.EnableRequirementMachine = *value;
|
||||
@@ -846,6 +845,20 @@ static bool ParseLangArgs(LangOptions &Opts, ArgList &Args,
|
||||
A->getAsString(Args), A->getValue());
|
||||
}
|
||||
|
||||
if (auto A = Args.getLastArg(OPT_requirement_machine_protocol_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.RequirementMachineProtocolSignatures = *value;
|
||||
else
|
||||
Diags.diagnose(SourceLoc(), diag::error_invalid_arg_value,
|
||||
A->getAsString(Args), A->getValue());
|
||||
}
|
||||
|
||||
Opts.DumpRequirementMachine = Args.hasArg(
|
||||
OPT_dump_requirement_machine);
|
||||
Opts.AnalyzeRequirementMachine = Args.hasArg(
|
||||
|
||||
Reference in New Issue
Block a user