[Frontend] Add a flag for experimental type inference from default expressions

This commit is contained in:
Pavel Yaskevich
2022-02-14 09:37:46 -08:00
parent 9297ba13d6
commit cd61b35e37
3 changed files with 11 additions and 0 deletions

View File

@@ -718,6 +718,10 @@ namespace swift {
/// closures. /// closures.
bool EnableMultiStatementClosureInference = false; bool EnableMultiStatementClosureInference = false;
/// Enable experimental support for generic parameter inference in
/// parameter positions from associated default expressions.
bool EnableTypeInferenceFromDefaultArguments = false;
/// See \ref FrontendOptions.PrintFullConvention /// See \ref FrontendOptions.PrintFullConvention
bool PrintFullConvention = false; bool PrintFullConvention = false;
}; };

View File

@@ -857,6 +857,10 @@ def experimental_multi_statement_closures :
Flag<["-"], "experimental-multi-statement-closures">, Flag<["-"], "experimental-multi-statement-closures">,
HelpText<"Enable experimental support for type inference in multi-statement closures">; HelpText<"Enable experimental support for type inference in multi-statement closures">;
def experimental_type_inference_from_defaults :
Flag<["-"], "enable-experimental-type-inference-from-defaults">,
HelpText<"Enable experimental support for generic parameter inference from default values">;
def prebuilt_module_cache_path : def prebuilt_module_cache_path :
Separate<["-"], "prebuilt-module-cache-path">, Separate<["-"], "prebuilt-module-cache-path">,
HelpText<"Directory of prebuilt modules for loading module interfaces">; HelpText<"Directory of prebuilt modules for loading module interfaces">;

View File

@@ -1051,6 +1051,9 @@ static bool ParseTypeCheckerArgs(TypeCheckerOptions &Opts, ArgList &Args,
Opts.EnableMultiStatementClosureInference |= Opts.EnableMultiStatementClosureInference |=
Args.hasArg(OPT_experimental_multi_statement_closures); Args.hasArg(OPT_experimental_multi_statement_closures);
Opts.EnableTypeInferenceFromDefaultArguments |=
Args.hasArg(OPT_experimental_type_inference_from_defaults);
Opts.PrintFullConvention |= Opts.PrintFullConvention |=
Args.hasArg(OPT_experimental_print_full_convention); Args.hasArg(OPT_experimental_print_full_convention);