mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
Teach the frontend how to parse TypeCheckerOptions
This commit is contained in:
@@ -90,15 +90,6 @@ bool ArgsToFrontendOptionsConverter::convert(
|
||||
computeDebugTimeOptions();
|
||||
computeTBDOptions();
|
||||
|
||||
setUnsignedIntegerArgument(OPT_warn_long_function_bodies, 10,
|
||||
Opts.WarnLongFunctionBodies);
|
||||
setUnsignedIntegerArgument(OPT_warn_long_expression_type_checking, 10,
|
||||
Opts.WarnLongExpressionTypeChecking);
|
||||
setUnsignedIntegerArgument(OPT_solver_expression_time_threshold_EQ, 10,
|
||||
Opts.SolverExpressionTimeThreshold);
|
||||
setUnsignedIntegerArgument(OPT_switch_checking_invocation_threshold_EQ, 10,
|
||||
Opts.SwitchCheckingInvocationThreshold);
|
||||
|
||||
Opts.CheckOnoneSupportCompleteness = Args.hasArg(OPT_check_onone_completeness);
|
||||
|
||||
Opts.DebuggerTestingTransform = Args.hasArg(OPT_debugger_testing_transform);
|
||||
@@ -163,7 +154,7 @@ bool ArgsToFrontendOptionsConverter::convert(
|
||||
return true;
|
||||
|
||||
if (FrontendOptions::doesActionGenerateIR(Opts.RequestedAction)
|
||||
&& Opts.SkipNonInlinableFunctionBodies) {
|
||||
&& Args.hasArg(OPT_experimental_skip_non_inlinable_function_bodies)) {
|
||||
Diags.diagnose(SourceLoc(), diag::cannot_emit_ir_skipping_function_bodies);
|
||||
return true;
|
||||
}
|
||||
@@ -222,17 +213,7 @@ void ArgsToFrontendOptionsConverter::computePrintStatsOptions() {
|
||||
|
||||
void ArgsToFrontendOptionsConverter::computeDebugTimeOptions() {
|
||||
using namespace options;
|
||||
Opts.DebugTimeFunctionBodies |= Args.hasArg(OPT_debug_time_function_bodies);
|
||||
Opts.DebugTimeExpressionTypeChecking |=
|
||||
Args.hasArg(OPT_debug_time_expression_type_checking);
|
||||
Opts.DebugTimeCompilation |= Args.hasArg(OPT_debug_time_compilation);
|
||||
Opts.SkipNonInlinableFunctionBodies |=
|
||||
Args.hasArg(OPT_experimental_skip_non_inlinable_function_bodies);
|
||||
|
||||
// If asked to perform InstallAPI, go ahead and enable non-inlinable function
|
||||
// body skipping.
|
||||
Opts.SkipNonInlinableFunctionBodies |=
|
||||
Args.hasArg(OPT_tbd_is_installapi);
|
||||
|
||||
if (const Arg *A = Args.getLastArg(OPT_stats_output_dir)) {
|
||||
Opts.StatsOutputDir = A->getValue();
|
||||
@@ -266,19 +247,6 @@ void ArgsToFrontendOptionsConverter::computeTBDOptions() {
|
||||
}
|
||||
}
|
||||
|
||||
void ArgsToFrontendOptionsConverter::setUnsignedIntegerArgument(
|
||||
options::ID optionID, unsigned radix, unsigned &valueToSet) {
|
||||
if (const Arg *A = Args.getLastArg(optionID)) {
|
||||
unsigned attempt;
|
||||
if (StringRef(A->getValue()).getAsInteger(radix, attempt)) {
|
||||
Diags.diagnose(SourceLoc(), diag::error_invalid_arg_value,
|
||||
A->getAsString(Args), A->getValue());
|
||||
} else {
|
||||
valueToSet = attempt;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void ArgsToFrontendOptionsConverter::computePlaygroundOptions() {
|
||||
using namespace options;
|
||||
Opts.PlaygroundTransform |= Args.hasArg(OPT_playground);
|
||||
|
||||
Reference in New Issue
Block a user