diff options
Diffstat (limited to 'cli/flags.rs')
-rw-r--r-- | cli/flags.rs | 105 |
1 files changed, 42 insertions, 63 deletions
diff --git a/cli/flags.rs b/cli/flags.rs index cc051f7a7..c32398da8 100644 --- a/cli/flags.rs +++ b/cli/flags.rs @@ -64,7 +64,6 @@ pub struct CacheFlags { #[derive(Clone, Debug, PartialEq, Deserialize, Serialize)] pub struct CheckFlags { pub files: Vec<String>, - pub remote: bool, } #[derive(Clone, Debug, PartialEq, Deserialize, Serialize)] @@ -235,42 +234,19 @@ impl Default for DenoSubcommand { #[derive(Debug, Clone, PartialEq)] pub enum TypeCheckMode { - /// Type check all modules. The default value. + /// Type check all modules. All, - /// Skip type checking of all modules. Represents `--no-check` on the command - /// line. + /// Skip type checking of all modules. The default value for "deno run" and + /// several other subcommands. None, - /// Only type check local modules. Represents `--no-check=remote` on the - /// command line. + /// Only type check local modules. The default value for "deno test" and + /// several other subcommands. Local, } impl Default for TypeCheckMode { fn default() -> Self { - // TODO(bartlomieju): in v1.22 we switched to `Local` instead of `All` and - // in v1.23 we will switch to `None` by default. - Self::Local - } -} - -// TODO(bartlomieju): remove once type checking is skipped by default (probably -// in 1.23) -#[derive(Debug, Clone, PartialEq)] -pub enum FutureTypeCheckMode { - /// Type check all modules. Represents `--check=all` on the command line. - All, - /// Skip type checking of all modules. The default value. - None, - /// Only type check local modules. Represents `--check` on the - /// command line. - Local, -} - -impl Default for FutureTypeCheckMode { - fn default() -> Self { - // TODO(bartlomieju): in v1.22 we switched to `Local` instead of `All` and - // in v1.23 we will switch to `None` by default. - Self::Local + Self::None } } @@ -310,12 +286,6 @@ pub struct Flags { pub cache_path: Option<PathBuf>, pub cached_only: bool, pub type_check_mode: TypeCheckMode, - // TODO(bartlomieju): to be removed in v1.23. - pub has_no_check_flag: bool, - // TODO(bartlomieju): to be removed in v1.23. - pub has_check_flag: bool, - // TODO(bartlomieju): to be removed in v1.23. - pub future_type_check_mode: FutureTypeCheckMode, pub config_flag: ConfigFlag, pub coverage_dir: Option<String>, pub enable_testing_features: bool, @@ -508,9 +478,6 @@ static ENV_VARIABLES_HELP: &str = r#"ENVIRONMENT VARIABLES: (defaults to $HOME/.deno/bin) DENO_NO_PROMPT Set to disable permission prompts on access (alternative to passing --no-prompt on invocation) - DENO_FUTURE_CHECK Opt-in to the upcoming behavior of the `deno run` - subcommand that doesn't perform type-checking by - default. DENO_WEBGPU_TRACE Directory to use for wgpu traces HTTP_PROXY Proxy address for HTTP requests (module downloads, fetch) @@ -2162,6 +2129,8 @@ fn unsafely_ignore_certificate_errors_arg<'a>() -> Arg<'a> { } fn bench_parse(flags: &mut Flags, matches: &clap::ArgMatches) { + flags.type_check_mode = TypeCheckMode::Local; + runtime_args_parse(flags, matches, true, false); // NOTE: `deno bench` always uses `--no-prompt`, tests shouldn't ever do @@ -2207,6 +2176,8 @@ fn bench_parse(flags: &mut Flags, matches: &clap::ArgMatches) { } fn bundle_parse(flags: &mut Flags, matches: &clap::ArgMatches) { + flags.type_check_mode = TypeCheckMode::Local; + compile_args_parse(flags, matches); let source_file = matches.value_of("source_file").unwrap().to_string(); @@ -2237,17 +2208,21 @@ fn cache_parse(flags: &mut Flags, matches: &clap::ArgMatches) { } fn check_parse(flags: &mut Flags, matches: &clap::ArgMatches) { + flags.type_check_mode = TypeCheckMode::Local; compile_args_without_no_check_parse(flags, matches); let files = matches .values_of("file") .unwrap() .map(String::from) .collect(); - let remote = matches.is_present("remote"); - flags.subcommand = DenoSubcommand::Check(CheckFlags { files, remote }); + if matches.is_present("remote") { + flags.type_check_mode = TypeCheckMode::All; + } + flags.subcommand = DenoSubcommand::Check(CheckFlags { files }); } fn compile_parse(flags: &mut Flags, matches: &clap::ArgMatches) { + flags.type_check_mode = TypeCheckMode::Local; runtime_args_parse(flags, matches, true, false); let mut script: Vec<String> = matches @@ -2533,8 +2508,6 @@ fn lint_parse(flags: &mut Flags, matches: &clap::ArgMatches) { } fn repl_parse(flags: &mut Flags, matches: &clap::ArgMatches) { - // Use no-check by default for the REPL - flags.type_check_mode = TypeCheckMode::None; runtime_args_parse(flags, matches, false, true); unsafely_ignore_certificate_errors_parse(flags, matches); @@ -2553,7 +2526,6 @@ fn repl_parse(flags: &mut Flags, matches: &clap::ArgMatches) { fn run_parse(flags: &mut Flags, matches: &clap::ArgMatches) { runtime_args_parse(flags, matches, true, true); - check_arg_parse(flags, matches); let mut script: Vec<String> = matches .values_of("script_arg") @@ -2629,6 +2601,7 @@ fn task_parse( } fn test_parse(flags: &mut Flags, matches: &clap::ArgMatches) { + flags.type_check_mode = TypeCheckMode::Local; runtime_args_parse(flags, matches, true, true); // NOTE: `deno test` always uses `--no-prompt`, tests shouldn't ever do // interactive prompts, unless done by user code @@ -2767,6 +2740,7 @@ fn compile_args_parse(flags: &mut Flags, matches: &clap::ArgMatches) { no_remote_arg_parse(flags, matches); config_args_parse(flags, matches); no_check_arg_parse(flags, matches); + check_arg_parse(flags, matches); reload_arg_parse(flags, matches); lock_args_parse(flags, matches); ca_file_arg_parse(flags, matches); @@ -2970,7 +2944,6 @@ fn compat_arg_parse(flags: &mut Flags, matches: &ArgMatches) { } fn no_check_arg_parse(flags: &mut Flags, matches: &clap::ArgMatches) { - flags.has_no_check_flag = matches.is_present("no-check"); if let Some(cache_type) = matches.value_of("no-check") { match cache_type { "remote" => flags.type_check_mode = TypeCheckMode::Local, @@ -2985,17 +2958,16 @@ fn no_check_arg_parse(flags: &mut Flags, matches: &clap::ArgMatches) { } fn check_arg_parse(flags: &mut Flags, matches: &clap::ArgMatches) { - flags.has_check_flag = matches.is_present("check"); if let Some(cache_type) = matches.value_of("check") { match cache_type { - "all" => flags.future_type_check_mode = FutureTypeCheckMode::All, + "all" => flags.type_check_mode = TypeCheckMode::All, _ => debug!( "invalid value for 'check' of '{}' using default", cache_type ), } } else if matches.is_present("check") { - flags.future_type_check_mode = FutureTypeCheckMode::Local; + flags.type_check_mode = TypeCheckMode::Local; } } @@ -3783,8 +3755,8 @@ mod tests { Flags { subcommand: DenoSubcommand::Check(CheckFlags { files: svec!["script.ts"], - remote: false, }), + type_check_mode: TypeCheckMode::Local, ..Flags::default() } ); @@ -3795,8 +3767,8 @@ mod tests { Flags { subcommand: DenoSubcommand::Check(CheckFlags { files: svec!["script.ts"], - remote: true, }), + type_check_mode: TypeCheckMode::All, ..Flags::default() } ); @@ -3980,7 +3952,6 @@ mod tests { import_map_path: Some("import_map.json".to_string()), no_remote: true, config_flag: ConfigFlag::Path("tsconfig.json".to_owned()), - has_no_check_flag: true, type_check_mode: TypeCheckMode::None, reload: true, lock: Some(PathBuf::from("lock.json")), @@ -4073,7 +4044,6 @@ mod tests { no_remote: true, config_flag: ConfigFlag::Path("tsconfig.json".to_owned()), type_check_mode: TypeCheckMode::None, - has_no_check_flag: true, reload: true, lock: Some(PathBuf::from("lock.json")), lock_write: true, @@ -4277,6 +4247,7 @@ mod tests { source_file: "source.ts".to_string(), out_file: None, }), + type_check_mode: TypeCheckMode::Local, ..Flags::default() } ); @@ -4302,6 +4273,7 @@ mod tests { }), allow_write: Some(vec![]), no_remote: true, + type_check_mode: TypeCheckMode::Local, config_flag: ConfigFlag::Path("tsconfig.json".to_owned()), ..Flags::default() } @@ -4318,6 +4290,7 @@ mod tests { source_file: "source.ts".to_string(), out_file: Some(PathBuf::from("bundle.js")), }), + type_check_mode: TypeCheckMode::Local, allow_write: Some(vec![]), ..Flags::default() } @@ -4340,6 +4313,7 @@ mod tests { source_file: "source.ts".to_string(), out_file: None, }), + type_check_mode: TypeCheckMode::Local, lock_write: true, lock: Some(PathBuf::from("lock.json")), ..Flags::default() @@ -4358,6 +4332,7 @@ mod tests { source_file: "source.ts".to_string(), out_file: None, }), + type_check_mode: TypeCheckMode::Local, ..Flags::default() } ); @@ -4374,7 +4349,6 @@ mod tests { source_file: "script.ts".to_string(), out_file: None, }), - has_no_check_flag: true, type_check_mode: TypeCheckMode::None, ..Flags::default() } @@ -4391,6 +4365,7 @@ mod tests { source_file: "source.ts".to_string(), out_file: None, }), + type_check_mode: TypeCheckMode::Local, watch: Some(vec![]), ..Flags::default() } @@ -4413,6 +4388,7 @@ mod tests { source_file: "source.ts".to_string(), out_file: None, }), + type_check_mode: TypeCheckMode::Local, watch: Some(vec![]), no_clear_screen: true, ..Flags::default() @@ -4597,7 +4573,6 @@ mod tests { import_map_path: Some("import_map.json".to_string()), no_remote: true, config_flag: ConfigFlag::Path("tsconfig.json".to_owned()), - has_no_check_flag: true, type_check_mode: TypeCheckMode::None, reload: true, lock: Some(PathBuf::from("lock.json")), @@ -4749,7 +4724,6 @@ mod tests { subcommand: DenoSubcommand::Run(RunFlags { script: "script.ts".to_string(), }), - has_no_check_flag: true, type_check_mode: TypeCheckMode::None, ..Flags::default() } @@ -4766,7 +4740,6 @@ mod tests { subcommand: DenoSubcommand::Run(RunFlags { script: "script.ts".to_string(), }), - has_no_check_flag: true, type_check_mode: TypeCheckMode::Local, ..Flags::default() } @@ -5020,6 +4993,7 @@ mod tests { no_prompt: true, coverage_dir: Some("cov".to_string()), location: Some(Url::parse("https://foo/").unwrap()), + type_check_mode: TypeCheckMode::Local, allow_net: Some(vec![]), argv: svec!["arg1", "arg2"], ..Flags::default() @@ -5086,6 +5060,7 @@ mod tests { concurrent_jobs: NonZeroUsize::new(4).unwrap(), trace_ops: false, }), + type_check_mode: TypeCheckMode::Local, no_prompt: true, ..Flags::default() } @@ -5113,6 +5088,7 @@ mod tests { concurrent_jobs: NonZeroUsize::new(1).unwrap(), trace_ops: false, }), + type_check_mode: TypeCheckMode::Local, no_prompt: true, ..Flags::default() } @@ -5145,6 +5121,7 @@ mod tests { trace_ops: false, }), no_prompt: true, + type_check_mode: TypeCheckMode::Local, enable_testing_features: true, ..Flags::default() } @@ -5171,6 +5148,7 @@ mod tests { }), no_prompt: true, watch: None, + type_check_mode: TypeCheckMode::Local, ..Flags::default() } ); @@ -5195,6 +5173,7 @@ mod tests { trace_ops: false, }), no_prompt: true, + type_check_mode: TypeCheckMode::Local, watch: Some(vec![]), ..Flags::default() } @@ -5221,6 +5200,7 @@ mod tests { trace_ops: false, }), watch: Some(vec![]), + type_check_mode: TypeCheckMode::Local, no_clear_screen: true, no_prompt: true, ..Flags::default() @@ -5244,6 +5224,7 @@ mod tests { source_file: "source.ts".to_string(), out_file: None, }), + type_check_mode: TypeCheckMode::Local, ca_file: Some("example.crt".to_owned()), ..Flags::default() } @@ -5424,6 +5405,7 @@ mod tests { args: vec![], target: None, }), + type_check_mode: TypeCheckMode::Local, ..Flags::default() } ); @@ -5445,7 +5427,6 @@ mod tests { import_map_path: Some("import_map.json".to_string()), no_remote: true, config_flag: ConfigFlag::Path("tsconfig.json".to_owned()), - has_no_check_flag: true, type_check_mode: TypeCheckMode::None, reload: true, lock: Some(PathBuf::from("lock.json")), @@ -5829,6 +5810,7 @@ mod tests { ignore: vec![], }), unstable: true, + type_check_mode: TypeCheckMode::Local, location: Some(Url::parse("https://foo/").unwrap()), allow_net: Some(vec![]), no_prompt: true, @@ -5847,8 +5829,7 @@ mod tests { subcommand: DenoSubcommand::Run(RunFlags { script: "script.ts".to_string(), }), - has_check_flag: true, - future_type_check_mode: FutureTypeCheckMode::Local, + type_check_mode: TypeCheckMode::Local, ..Flags::default() } ); @@ -5860,8 +5841,7 @@ mod tests { subcommand: DenoSubcommand::Run(RunFlags { script: "script.ts".to_string(), }), - has_check_flag: true, - future_type_check_mode: FutureTypeCheckMode::All, + type_check_mode: TypeCheckMode::All, ..Flags::default() } ); @@ -5873,8 +5853,7 @@ mod tests { subcommand: DenoSubcommand::Run(RunFlags { script: "script.ts".to_string(), }), - has_check_flag: true, - future_type_check_mode: FutureTypeCheckMode::Local, + type_check_mode: TypeCheckMode::None, ..Flags::default() } ); |