@@ -18,6 +18,7 @@ use flow_common::options::Format;
1818use flow_common:: options:: GcControl ;
1919use flow_common:: options:: LogSaving ;
2020use flow_common:: options:: Options ;
21+ use flow_common:: options:: SavedStateFetcher ;
2122use flow_common:: path_matcher:: PathMatcher ;
2223use flow_common_exit_status:: FlowExitStatus ;
2324use flow_data_structure_wrapper:: smol_str:: FlowSmolStr ;
@@ -72,13 +73,25 @@ fn make_includes(
7273 matcher
7374}
7475
76+ #[ derive( Clone , Copy , Debug , Default ) ]
77+ pub ( crate ) struct MakeOptionsOverrides {
78+ pub ( crate ) autoimports : Option < bool > ,
79+ pub ( crate ) lazy_mode : Option < bool > ,
80+ pub ( crate ) saved_state_fetcher : Option < SavedStateFetcher > ,
81+ pub ( crate ) saved_state_force_recheck : Option < bool > ,
82+ pub ( crate ) saved_state_no_fallback : Option < bool > ,
83+ pub ( crate ) saved_state_skip_version_check : Option < bool > ,
84+ pub ( crate ) saved_state_verify : Option < bool > ,
85+ }
86+
7587pub ( super ) fn make_options (
7688 flowconfig : FlowConfig ,
7789 flowconfig_hash : String ,
7890 flowconfig_name : String ,
7991 root : std:: path:: PathBuf ,
8092 temp_dir : String ,
8193 cli_no_flowlib : bool ,
94+ overrides : MakeOptionsOverrides ,
8295) -> Options {
8396 let FlowConfig {
8497 rollouts,
@@ -217,8 +230,18 @@ pub(super) fn make_options(
217230 version : _version,
218231 } = flowconfig;
219232
233+ let MakeOptionsOverrides {
234+ autoimports : autoimports_override,
235+ lazy_mode : lazy_mode_override,
236+ saved_state_fetcher : saved_state_fetcher_override,
237+ saved_state_force_recheck,
238+ saved_state_no_fallback,
239+ saved_state_skip_version_check : saved_state_skip_version_check_override,
240+ saved_state_verify,
241+ } = overrides;
242+
220243 let all = all. unwrap_or ( false ) ;
221- let autoimports = autoimports. unwrap_or ( true ) ;
244+ let autoimports = autoimports_override . unwrap_or ( autoimports. unwrap_or ( true ) ) ;
222245 let autoimports_min_characters = autoimports_min_characters. unwrap_or ( 0 ) as i32 ;
223246 let autoimports_ranked_by_usage_boost_exact_match_min_length =
224247 autoimports_ranked_by_usage_boost_exact_match_min_length as i32 ;
@@ -238,10 +261,10 @@ pub(super) fn make_options(
238261 let enable_records = records. unwrap_or ( false ) ;
239262 let estimate_recheck_time = estimate_recheck_time. unwrap_or ( true ) ;
240263 let exact_by_default = exact_by_default. unwrap_or ( true ) ;
241- let lazy_mode = matches ! (
264+ let lazy_mode = lazy_mode_override . unwrap_or ( matches ! (
242265 lazy_mode,
243266 Some ( LazyMode :: Lazy ) | Some ( LazyMode :: WatchmanDeprecated )
244- ) ;
267+ ) ) ;
245268 let max_files_checked_per_worker =
246269 max_files_checked_per_worker_rust_port. unwrap_or ( max_files_checked_per_worker) as i32 ;
247270 let max_header_tokens = max_header_tokens as i32 ;
@@ -609,11 +632,12 @@ pub(super) fn make_options(
609632 relay_integration_module_prefix_includes,
610633 root : Arc :: new ( root) ,
611634 root_name : root_name. map ( FlowSmolStr :: new) ,
612- saved_state_fetcher,
613- saved_state_force_recheck : false , // Not in flowconfig, set to false
614- saved_state_no_fallback : false , // Not in flowconfig, set to false
615- saved_state_skip_version_check,
616- saved_state_verify : false , // Not in flowconfig, set to false
635+ saved_state_fetcher : saved_state_fetcher_override. unwrap_or ( saved_state_fetcher) ,
636+ saved_state_force_recheck : saved_state_force_recheck. unwrap_or ( false ) ,
637+ saved_state_no_fallback : saved_state_no_fallback. unwrap_or ( false ) ,
638+ saved_state_skip_version_check : saved_state_skip_version_check_override. unwrap_or ( false )
639+ || saved_state_skip_version_check,
640+ saved_state_verify : saved_state_verify. unwrap_or ( false ) ,
617641 slow_to_check_logging : Default :: default ( ) , // Not in flowconfig, use default
618642 strict_es6_import_export,
619643 strict_mode,
0 commit comments