Skip to content

Commit cd61b35

Browse files
committed
[Frontend] Add a flag for experimental type inference from default expressions
1 parent 9297ba1 commit cd61b35

File tree

3 files changed

+11
-0
lines changed

3 files changed

+11
-0
lines changed

include/swift/Basic/LangOptions.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -718,6 +718,10 @@ namespace swift {
718718
/// closures.
719719
bool EnableMultiStatementClosureInference = false;
720720

721+
/// Enable experimental support for generic parameter inference in
722+
/// parameter positions from associated default expressions.
723+
bool EnableTypeInferenceFromDefaultArguments = false;
724+
721725
/// See \ref FrontendOptions.PrintFullConvention
722726
bool PrintFullConvention = false;
723727
};

include/swift/Option/FrontendOptions.td

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -857,6 +857,10 @@ def experimental_multi_statement_closures :
857857
Flag<["-"], "experimental-multi-statement-closures">,
858858
HelpText<"Enable experimental support for type inference in multi-statement closures">;
859859

860+
def experimental_type_inference_from_defaults :
861+
Flag<["-"], "enable-experimental-type-inference-from-defaults">,
862+
HelpText<"Enable experimental support for generic parameter inference from default values">;
863+
860864
def prebuilt_module_cache_path :
861865
Separate<["-"], "prebuilt-module-cache-path">,
862866
HelpText<"Directory of prebuilt modules for loading module interfaces">;

lib/Frontend/CompilerInvocation.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1051,6 +1051,9 @@ static bool ParseTypeCheckerArgs(TypeCheckerOptions &Opts, ArgList &Args,
10511051
Opts.EnableMultiStatementClosureInference |=
10521052
Args.hasArg(OPT_experimental_multi_statement_closures);
10531053

1054+
Opts.EnableTypeInferenceFromDefaultArguments |=
1055+
Args.hasArg(OPT_experimental_type_inference_from_defaults);
1056+
10541057
Opts.PrintFullConvention |=
10551058
Args.hasArg(OPT_experimental_print_full_convention);
10561059

0 commit comments

Comments
 (0)