diff --git a/cli/loader/src/lib.rs b/cli/loader/src/lib.rs index f785de29..3251e4b6 100644 --- a/cli/loader/src/lib.rs +++ b/cli/loader/src/lib.rs @@ -449,7 +449,7 @@ impl Loader { .join(format!("{name}.lock")) } else { dirs::cache_dir() - .ok_or(anyhow!("Cannot determine cache directory"))? + .ok_or_else(|| anyhow!("Cannot determine cache directory"))? .join("tree-sitter") .join("lock") .join(format!("{name}.lock")) diff --git a/cli/src/main.rs b/cli/src/main.rs index 4c87fb8a..966fda07 100644 --- a/cli/src/main.rs +++ b/cli/src/main.rs @@ -389,16 +389,16 @@ fn run() -> Result<()> { if generate_options.log { logger::init(); } - let abi_version = match generate_options.abi_version { - Some(ref version) => { + let abi_version = generate_options.abi_version.as_ref().map_or( + DEFAULT_GENERATE_ABI_VERSION, + |version| { if version == "latest" { tree_sitter::LANGUAGE_VERSION } else { version.parse().expect("invalid abi version flag") } - } - None => DEFAULT_GENERATE_ABI_VERSION, - }; + }, + ); generate::generate_parser_in_directory( ¤t_dir, generate_options.grammar_path.as_deref(), @@ -482,7 +482,10 @@ fn run() -> Result<()> { let opts = ParseFileOptions { language: language.clone(), path, - edits: &edits.iter().map(|s| s.as_str()).collect::>(), + edits: &edits + .iter() + .map(std::string::String::as_str) + .collect::>(), max_path_length, output, print_time: time, diff --git a/cli/src/test.rs b/cli/src/test.rs index bff853be..4418ae7d 100644 --- a/cli/src/test.rs +++ b/cli/src/test.rs @@ -721,7 +721,7 @@ abc (MISSING ")")) "# .trim() - ) + ); } #[test] diff --git a/cli/src/tests/detect_language.rs b/cli/src/tests/detect_language.rs index 425223ce..6ff02d63 100644 --- a/cli/src/tests/detect_language.rs +++ b/cli/src/tests/detect_language.rs @@ -34,24 +34,24 @@ fn detect_language_by_first_line_regex() { let file_name = strace_dir.path().join("strace.log"); std::fs::write(&file_name, "execve\nworld").unwrap(); assert_eq!( - get_lang_scope(&mut loader, &file_name), + get_lang_scope(&loader, &file_name), Some("source.strace".into()) ); let file_name = strace_dir.path().join("strace.log"); std::fs::write(&file_name, "447845 execve\nworld").unwrap(); assert_eq!( - get_lang_scope(&mut loader, &file_name), + get_lang_scope(&loader, &file_name), Some("source.strace".into()) ); let file_name = strace_dir.path().join("strace.log"); std::fs::write(&file_name, "hello\nexecve").unwrap(); - assert!(get_lang_scope(&mut loader, &file_name).is_none()); + assert!(get_lang_scope(&loader, &file_name).is_none()); let file_name = strace_dir.path().join("strace.log"); std::fs::write(&file_name, "").unwrap(); - assert!(get_lang_scope(&mut loader, &file_name).is_none()); + assert!(get_lang_scope(&loader, &file_name).is_none()); let dummy_dir = tree_sitter_dir( r#"{ @@ -77,7 +77,7 @@ fn detect_language_by_first_line_regex() { let file_name = dummy_dir.path().join("strace.dummy"); std::fs::write(&file_name, "execve").unwrap(); assert_eq!( - get_lang_scope(&mut loader, &file_name), + get_lang_scope(&loader, &file_name), Some("source.dummy".into()) ); } @@ -114,7 +114,7 @@ fn tree_sitter_dir(package_json: &str, name: &str) -> tempfile::TempDir { } // if we manage to get the language scope, it means we correctly detected the file-type -fn get_lang_scope(loader: &mut Loader, file_name: &Path) -> Option { +fn get_lang_scope(loader: &Loader, file_name: &Path) -> Option { loader .language_configuration_for_file_name(file_name) .ok()