From 2b51554ff59d1e5cbf8dd2db65d278b0202a9102 Mon Sep 17 00:00:00 2001 From: nsfisis Date: Sat, 27 Jun 2026 03:52:05 +0900 Subject: refactor: fix compiler warnings and clippy warnings --- crates/shirabe/src/command/about_command.rs | 8 -- crates/shirabe/src/command/archive_command.rs | 4 +- crates/shirabe/src/command/audit_command.rs | 11 +- crates/shirabe/src/command/base_command.rs | 6 +- crates/shirabe/src/command/base_config_command.rs | 2 +- .../shirabe/src/command/base_dependency_command.rs | 137 +++++++++++---------- crates/shirabe/src/command/bump_command.rs | 11 +- .../src/command/check_platform_reqs_command.rs | 7 +- crates/shirabe/src/command/clear_cache_command.rs | 1 - crates/shirabe/src/command/config_command.rs | 52 ++++---- .../shirabe/src/command/create_project_command.rs | 67 +++++----- crates/shirabe/src/command/depends_command.rs | 7 -- crates/shirabe/src/command/diagnose_command.rs | 37 +++--- .../shirabe/src/command/dump_autoload_command.rs | 6 - crates/shirabe/src/command/exec_command.rs | 6 - crates/shirabe/src/command/fund_command.rs | 13 +- crates/shirabe/src/command/global_command.rs | 12 +- crates/shirabe/src/command/home_command.rs | 9 -- crates/shirabe/src/command/init_command.rs | 18 +-- crates/shirabe/src/command/install_command.rs | 8 +- crates/shirabe/src/command/licenses_command.rs | 13 +- crates/shirabe/src/command/outdated_command.rs | 5 - .../shirabe/src/command/package_discovery_trait.rs | 19 ++- crates/shirabe/src/command/prohibits_command.rs | 7 -- crates/shirabe/src/command/reinstall_command.rs | 10 -- crates/shirabe/src/command/remove_command.rs | 14 +-- crates/shirabe/src/command/repository_command.rs | 5 - crates/shirabe/src/command/require_command.rs | 31 ++--- crates/shirabe/src/command/run_script_command.rs | 5 - crates/shirabe/src/command/script_alias_command.rs | 6 - crates/shirabe/src/command/search_command.rs | 5 - crates/shirabe/src/command/self_update_command.rs | 6 - crates/shirabe/src/command/show_command.rs | 44 +++---- crates/shirabe/src/command/status_command.rs | 8 +- crates/shirabe/src/command/suggests_command.rs | 7 +- crates/shirabe/src/command/update_command.rs | 15 +-- crates/shirabe/src/command/validate_command.rs | 8 +- 37 files changed, 211 insertions(+), 419 deletions(-) (limited to 'crates/shirabe/src/command') diff --git a/crates/shirabe/src/command/about_command.rs b/crates/shirabe/src/command/about_command.rs index 5306b89..6aae55d 100644 --- a/crates/shirabe/src/command/about_command.rs +++ b/crates/shirabe/src/command/about_command.rs @@ -1,24 +1,16 @@ //! ref: composer/src/Composer/Command/AboutCommand.php use anyhow::Result; -use indexmap::IndexMap; use shirabe_external_packages::symfony::console::command::command::Command; use shirabe_external_packages::symfony::console::input::InputInterface; use shirabe_external_packages::symfony::console::output::OutputInterface; -use shirabe_php_shim::PhpMixed; use std::cell::RefCell; use std::rc::Rc; -use crate::advisory::AuditConfig; use crate::command::BaseCommand; use crate::command::BaseCommandData; use crate::command::base_command::base_command_initialize; use crate::composer; -use crate::composer::PartialComposerHandle; -use crate::config::Config; -use crate::filter::platform_requirement_filter::PlatformRequirementFilterInterface; -use crate::io::IOInterface; -use crate::io::IOInterfaceImmutable; #[derive(Debug)] pub struct AboutCommand { diff --git a/crates/shirabe/src/command/archive_command.rs b/crates/shirabe/src/command/archive_command.rs index 7355d63..3b27b4c 100644 --- a/crates/shirabe/src/command/archive_command.rs +++ b/crates/shirabe/src/command/archive_command.rs @@ -6,11 +6,10 @@ use shirabe_external_packages::composer::pcre::{CaptureKey, Preg}; use shirabe_external_packages::symfony::console::command::command::Command; use shirabe_external_packages::symfony::console::input::InputInterface; use shirabe_external_packages::symfony::console::output::OutputInterface; -use shirabe_php_shim::{LogicException, PhpMixed, get_debug_type}; +use shirabe_php_shim::{LogicException, get_debug_type}; use std::cell::RefCell; use std::rc::Rc; -use crate::advisory::AuditConfig; use crate::command::base_command::base_command_initialize; use crate::command::{BaseCommand, BaseCommandData}; use crate::composer::PartialComposerHandle; @@ -18,7 +17,6 @@ use crate::config::Config; use crate::console::input::InputArgument; use crate::console::input::InputOption; use crate::factory::Factory; -use crate::filter::platform_requirement_filter::PlatformRequirementFilterInterface; use crate::io::IOInterface; use crate::io::IOInterfaceImmutable; use crate::package::archiver::ArchiveManager; diff --git a/crates/shirabe/src/command/audit_command.rs b/crates/shirabe/src/command/audit_command.rs index 2a4f8a7..e5dc231 100644 --- a/crates/shirabe/src/command/audit_command.rs +++ b/crates/shirabe/src/command/audit_command.rs @@ -1,13 +1,11 @@ //! ref: composer/src/Composer/Command/AuditCommand.php use anyhow::Result; -use indexmap::IndexMap; use shirabe_external_packages::symfony::console::command::command::Command; use shirabe_external_packages::symfony::console::input::InputInterface; use shirabe_external_packages::symfony::console::output::OutputInterface; use shirabe_php_shim::{ - InvalidArgumentException, PhpMixed, UnexpectedValueException, array_fill_keys, array_merge, - implode, in_array, + InvalidArgumentException, PhpMixed, UnexpectedValueException, implode, in_array, }; use std::cell::RefCell; use std::rc::Rc; @@ -18,14 +16,9 @@ use crate::command::BaseCommand; use crate::command::BaseCommandData; use crate::command::base_command::base_command_initialize; use crate::composer::PartialComposerHandle; -use crate::config::Config; use crate::console::input::InputOption; -use crate::filter::platform_requirement_filter::PlatformRequirementFilterInterface; -use crate::io::IOInterface; use crate::io::IOInterfaceImmutable; use crate::repository::CanonicalPackagesTrait; -use crate::repository::InstalledRepository; -use crate::repository::RepositoryInterface; use crate::repository::RepositorySet; use crate::repository::RepositoryUtils; @@ -252,7 +245,7 @@ impl AuditCommand { composer: &PartialComposerHandle, input: std::rc::Rc>, ) -> Result> { - let mut composer = crate::command::composer_full_mut(composer); + let composer = crate::command::composer_full_mut(composer); if input .borrow() .get_option("locked")? diff --git a/crates/shirabe/src/command/base_command.rs b/crates/shirabe/src/command/base_command.rs index f3c88e5..149dc09 100644 --- a/crates/shirabe/src/command/base_command.rs +++ b/crates/shirabe/src/command/base_command.rs @@ -12,8 +12,8 @@ use shirabe_external_packages::symfony::console::helper::TableSeparator; use shirabe_external_packages::symfony::console::input::InputInterface; use shirabe_external_packages::symfony::console::output::OutputInterface; use shirabe_php_shim::{ - AsAny, InvalidArgumentException, LogicException, PhpMixed, RuntimeException, - UnexpectedValueException, count, explode, in_array, is_string, + InvalidArgumentException, LogicException, PhpMixed, RuntimeException, UnexpectedValueException, + count, explode, in_array, is_string, }; use std::cell::RefCell; use std::rc::Rc; @@ -23,9 +23,7 @@ use crate::advisory::Auditor; use crate::composer::PartialComposerHandle; use crate::config::Config; use crate::console::Application; -use crate::console::input::InputArgument; use crate::console::input::InputDefinitionItem; -use crate::console::input::InputOption; use crate::factory::Factory; use crate::filter::platform_requirement_filter::PlatformRequirementFilterFactory; use crate::filter::platform_requirement_filter::PlatformRequirementFilterInterface; diff --git a/crates/shirabe/src/command/base_config_command.rs b/crates/shirabe/src/command/base_config_command.rs index fa14197..b218961 100644 --- a/crates/shirabe/src/command/base_config_command.rs +++ b/crates/shirabe/src/command/base_config_command.rs @@ -1,6 +1,6 @@ //! ref: composer/src/Composer/Command/BaseConfigCommand.php -use crate::command::{BaseCommand, BaseCommandData}; +use crate::command::BaseCommand; use crate::config::Config; use crate::config::JsonConfigSource; use crate::factory::Factory; diff --git a/crates/shirabe/src/command/base_dependency_command.rs b/crates/shirabe/src/command/base_dependency_command.rs index 7bedf7d..ccae039 100644 --- a/crates/shirabe/src/command/base_dependency_command.rs +++ b/crates/shirabe/src/command/base_dependency_command.rs @@ -9,11 +9,8 @@ use shirabe_php_shim::{InvalidArgumentException, PhpMixed, UnexpectedValueExcept use shirabe_semver::constraint::AnyConstraint; use shirabe_semver::constraint::Bound; -use crate::command::{BaseCommand, BaseCommandData}; -use crate::io::IOInterface; +use crate::command::BaseCommand; use crate::io::IOInterfaceImmutable; -use crate::package::CompletePackageInterface; -use crate::package::Link; use crate::package::Package; use crate::package::RootPackage; use crate::package::version::VersionParser; @@ -47,7 +44,7 @@ pub trait BaseDependencyCommand: BaseCommand { inverted: bool, ) -> anyhow::Result { let composer = self.require_composer(None, None)?; - let mut composer = crate::command::composer_full_mut(&composer); + let composer = crate::command::composer_full_mut(&composer); // TODO(plugin): dispatch CommandEvent(PluginEvents::COMMAND, self.get_name(), input, output) via composer.get_event_dispatcher() let mut repos: Vec = @@ -148,79 +145,85 @@ pub trait BaseDependencyCommand: BaseCommand { &needle, FindPackageConstraint::String(text_constraint.clone()), )?; - if matched_package.is_none() { - let rm = composer.get_repository_manager(); - let mut default_repos = CompositeRepository::new( - RepositoryFactory::default_repos( - Some(self.get_io()), - Some(composer.get_config()), - Some(&mut rm.borrow_mut()), - )? - .into_values() - .collect(), - ); - if let Some(r#match) = default_repos.find_package( - &needle, - FindPackageConstraint::String(text_constraint.clone()), - )? { - installed_repo.add_repository(crate::repository::RepositoryInterfaceHandle::new( - InstalledArrayRepository::new_with_packages(vec![ - crate::package::PackageInterfaceHandle::dup(&r#match), - ])?, - )); - } else if PlatformRepository::is_platform_package(&needle) { - let parser = VersionParser::new(); - let platform_constraint = parser.parse_constraints(&text_constraint)?; - if platform_constraint.get_lower_bound() != Bound::zero() { - let version = platform_constraint - .get_lower_bound() - .get_version() - .to_string(); - let temp_platform_pkg = Package::new(needle.clone(), version.clone(), version); + match &matched_package { + None => { + let rm = composer.get_repository_manager(); + let mut default_repos = CompositeRepository::new( + RepositoryFactory::default_repos( + Some(self.get_io()), + Some(composer.get_config()), + Some(&mut rm.borrow_mut()), + )? + .into_values() + .collect(), + ); + if let Some(r#match) = default_repos.find_package( + &needle, + FindPackageConstraint::String(text_constraint.clone()), + )? { installed_repo.add_repository( crate::repository::RepositoryInterfaceHandle::new( InstalledArrayRepository::new_with_packages(vec![ - crate::package::PackageHandle::from_package(temp_platform_pkg) - .into(), + crate::package::PackageInterfaceHandle::dup(&r#match), ])?, ), ); + } else if PlatformRepository::is_platform_package(&needle) { + let parser = VersionParser::new(); + let platform_constraint = parser.parse_constraints(&text_constraint)?; + if platform_constraint.get_lower_bound() != Bound::zero() { + let version = platform_constraint + .get_lower_bound() + .get_version() + .to_string(); + let temp_platform_pkg = + Package::new(needle.clone(), version.clone(), version); + installed_repo.add_repository( + crate::repository::RepositoryInterfaceHandle::new( + InstalledArrayRepository::new_with_packages(vec![ + crate::package::PackageHandle::from_package(temp_platform_pkg) + .into(), + ])?, + ), + ); + } + } else { + self.get_io().write_error(&format!( + "Package \"{}\" could not be found with constraint \"{}\", results below will most likely be incomplete.", + needle, text_constraint + )); } - } else { + } + Some(matched) if PlatformRepository::is_platform_package(&needle) => { + let extra_notice = if matched + .get_extra() + .get("config.platform") + .and_then(|v| v.as_bool()) + .unwrap_or(false) + { + " (version provided by config.platform)" + } else { + "" + }; self.get_io().write_error(&format!( - "Package \"{}\" could not be found with constraint \"{}\", results below will most likely be incomplete.", - needle, text_constraint + "Package \"{} {}\" found in version \"{}\"{}.", + needle, + text_constraint, + matched.get_pretty_version(), + extra_notice )); } - } else if PlatformRepository::is_platform_package(&needle) { - let matched = matched_package.as_ref().unwrap(); - let extra_notice = if matched - .get_extra() - .get("config.platform") - .and_then(|v| v.as_bool()) - .unwrap_or(false) - { - " (version provided by config.platform)" - } else { - "" - }; - self.get_io().write_error(&format!( - "Package \"{} {}\" found in version \"{}\"{}.", - needle, - text_constraint, - matched.get_pretty_version(), - extra_notice - )); - } else if inverted { - let matched = matched_package.as_ref().unwrap(); - self.get_io().write(&format!( - "Package \"{}\" {} is already installed! To find out why, run `composer why {}`", - needle, - matched.get_pretty_version(), - needle - )); + Some(matched) if inverted => { + self.get_io().write(&format!( + "Package \"{}\" {} is already installed! To find out why, run `composer why {}`", + needle, + matched.get_pretty_version(), + needle + )); - return Ok(0); + return Ok(0); + } + Some(_) => {} } let mut needles = vec![needle.clone()]; diff --git a/crates/shirabe/src/command/bump_command.rs b/crates/shirabe/src/command/bump_command.rs index b80e41c..90947ef 100644 --- a/crates/shirabe/src/command/bump_command.rs +++ b/crates/shirabe/src/command/bump_command.rs @@ -3,7 +3,6 @@ use crate::io::io_interface; use crate::package::base_package; use anyhow::Result; -use indexmap::IndexMap; use shirabe_external_packages::composer::pcre::Preg; use shirabe_external_packages::symfony::console::command::command::Command; use shirabe_external_packages::symfony::console::input::InputInterface; @@ -12,21 +11,15 @@ use shirabe_php_shim::{PhpMixed, file_get_contents, file_put_contents, is_writab use std::cell::RefCell; use std::rc::Rc; -use crate::advisory::AuditConfig; use crate::command::base_command::base_command_initialize; use crate::command::{BaseCommand, BaseCommandData}; -use crate::composer::PartialComposerHandle; -use crate::config::Config; use crate::console::input::InputArgument; use crate::console::input::InputOption; use crate::factory::Factory; -use crate::filter::platform_requirement_filter::PlatformRequirementFilterInterface; use crate::io::IOInterface; use crate::io::IOInterfaceImmutable; use crate::json::JsonFile; use crate::json::JsonManipulator; -use crate::package::AliasPackage; -use crate::package::BasePackage; use crate::package::version::VersionBumper; use crate::repository::PlatformRepository; use crate::util::Filesystem; @@ -107,7 +100,7 @@ impl BumpCommand { } let composer = self.require_composer(None, None)?; - let mut composer = crate::command::composer_full_mut(&composer); + let composer = crate::command::composer_full_mut(&composer); let has_lock_file_disabled = !composer.get_config().borrow().has("lock") || composer .get_config() @@ -184,7 +177,7 @@ impl BumpCommand { .iter() .map(|constraint| Preg::replace(r"{[:= ].+}", "", constraint)) .collect(); - let mut unique_lower: Vec = packages_filter + let unique_lower: Vec = packages_filter .iter() .map(|s| strtolower(s)) .collect::>() diff --git a/crates/shirabe/src/command/check_platform_reqs_command.rs b/crates/shirabe/src/command/check_platform_reqs_command.rs index a7f5d9c..d3e8adc 100644 --- a/crates/shirabe/src/command/check_platform_reqs_command.rs +++ b/crates/shirabe/src/command/check_platform_reqs_command.rs @@ -11,14 +11,9 @@ use shirabe_semver::constraint::SimpleConstraint; use std::cell::RefCell; use std::rc::Rc; -use crate::advisory::AuditConfig; use crate::command::base_command::base_command_initialize; use crate::command::{BaseCommand, BaseCommandData}; -use crate::composer::PartialComposerHandle; -use crate::config::Config; use crate::console::input::InputOption; -use crate::filter::platform_requirement_filter::PlatformRequirementFilterInterface; -use crate::io::IOInterface; use crate::io::IOInterfaceImmutable; use crate::json::JsonFile; use crate::package::Link; @@ -200,7 +195,7 @@ impl Command for CheckPlatformReqsCommand { _output: Rc>, ) -> anyhow::Result { let composer = self.require_composer(None, None)?; - let mut composer = crate::command::composer_full_mut(&composer); + let composer = crate::command::composer_full_mut(&composer); let io = self.get_io(); let no_dev = input diff --git a/crates/shirabe/src/command/clear_cache_command.rs b/crates/shirabe/src/command/clear_cache_command.rs index c3d1eb5..abe72ec 100644 --- a/crates/shirabe/src/command/clear_cache_command.rs +++ b/crates/shirabe/src/command/clear_cache_command.rs @@ -15,7 +15,6 @@ use crate::command::base_command::base_command_initialize; use crate::config::Config; use crate::console::input::InputOption; use crate::factory::Factory; -use crate::io::IOInterface; use crate::io::IOInterfaceImmutable; #[derive(Debug)] diff --git a/crates/shirabe/src/command/config_command.rs b/crates/shirabe/src/command/config_command.rs index 308d557..7bf7d1b 100644 --- a/crates/shirabe/src/command/config_command.rs +++ b/crates/shirabe/src/command/config_command.rs @@ -10,31 +10,23 @@ use shirabe_external_packages::symfony::console::command::command::Command; use shirabe_external_packages::symfony::console::input::InputInterface; use shirabe_external_packages::symfony::console::output::OutputInterface; use shirabe_php_shim::{ - InvalidArgumentException, JsonObject, PhpMixed, RuntimeException, array_filter, - array_filter_use_key, array_is_list, array_map, array_merge, array_unique, count, + InvalidArgumentException, PhpMixed, RuntimeException, array_is_list, array_merge, escapeshellcmd, exec, explode, file_exists, file_get_contents, implode, in_array, is_array, - is_bool, is_dir, is_numeric, is_object, is_string, json_encode, sort, sprintf, str_replace, - str_starts_with, strpos, strtolower, system, touch, var_export, + is_bool, is_dir, is_numeric, is_object, is_string, json_encode, str_replace, strpos, + strtolower, system, touch, var_export, }; -use std::cell::RefCell; -use std::rc::Rc; -use crate::advisory::AuditConfig; use crate::advisory::Auditor; use crate::command::BaseConfigCommand; use crate::command::{BaseCommand, BaseCommandData}; -use crate::composer::PartialComposerHandle; use crate::config::Config; use crate::config::ConfigSourceInterface; use crate::config::JsonConfigSource; use crate::console::input::InputArgument; -use crate::factory::Factory; -use crate::filter::platform_requirement_filter::PlatformRequirementFilterInterface; -use crate::io::IOInterface; use crate::io::IOInterfaceImmutable; use crate::json::JsonEncodeOptions; use crate::json::JsonFile; -use crate::package::base_package::{self, BasePackage}; +use crate::package::base_package::{self}; use crate::util::Filesystem; use crate::util::Platform; use crate::util::Silencer; @@ -355,7 +347,7 @@ impl Command for ConfigCommand { properties_defaults.insert("suggest".to_string(), PhpMixed::List(vec![])); properties_defaults.insert("extra".to_string(), PhpMixed::List(vec![])); let raw_data = config_file.borrow_mut().read()?; - let mut data = config.borrow_mut().all(0)?; + let data = config.borrow_mut().all(0)?; let mut source = config.borrow_mut().get_source_of_value(&setting_key); let mut value: PhpMixed; @@ -443,7 +435,7 @@ impl Command for ConfigCommand { if value.as_array().map(|a| a.is_empty()).unwrap_or(false) { let schema = JsonFile::parse_json( Some( - &file_get_contents(&JsonFile::composer_schema_path()) + &file_get_contents(JsonFile::composer_schema_path()) .unwrap_or_default(), ), Some("composer.schema.json"), @@ -1468,24 +1460,24 @@ impl ConfigCommand { String::new() }; - let link: String; - if k.is_some() && strpos(k.as_ref().unwrap(), "repositories") == Some(0) { - link = "https://getcomposer.org/doc/05-repositories.md".to_string(); - } else { - let id_source = if k.as_deref() == Some("") || k.is_none() { - key.clone() + let link: String = + if k.is_some() && strpos(k.as_ref().unwrap(), "repositories") == Some(0) { + "https://getcomposer.org/doc/05-repositories.md".to_string() } else { - k.clone().unwrap() + let id_source = if k.as_deref() == Some("") || k.is_none() { + key.clone() + } else { + k.clone().unwrap() + }; + let id = Preg::replace("{\\..*$}", "", &id_source); + let id = Preg::replace( + "{[^a-z0-9]}i", + "-", + &strtolower(&shirabe_php_shim::trim(&id, Some(" \t\n\r\0\u{0B}"))), + ); + let id = Preg::replace("{-+}", "-", &id); + format!("https://getcomposer.org/doc/06-config.md#{}", id) }; - let id = Preg::replace("{\\..*$}", "", &id_source); - let id = Preg::replace( - "{[^a-z0-9]}i", - "-", - &strtolower(&shirabe_php_shim::trim(&id, Some(" \t\n\r\0\u{0B}"))), - ); - let id = Preg::replace("{-+}", "-", &id); - link = format!("https://getcomposer.org/doc/06-config.md#{}", id); - } if is_string(&raw_val) && raw_val .as_string() diff --git a/crates/shirabe/src/command/create_project_command.rs b/crates/shirabe/src/command/create_project_command.rs index 9969cf5..dbc98dd 100644 --- a/crates/shirabe/src/command/create_project_command.rs +++ b/crates/shirabe/src/command/create_project_command.rs @@ -17,11 +17,9 @@ use std::cell::RefCell; use std::path::PathBuf; use std::rc::Rc; -use crate::advisory::AuditConfig; use crate::advisory::Auditor; use crate::command::base_command::base_command_initialize; use crate::command::{BaseCommand, BaseCommandData}; -use crate::composer::PartialComposerHandle; use crate::config::Config; use crate::config::ConfigSourceInterface; use crate::config::JsonConfigSource; @@ -428,7 +426,7 @@ impl CreateProjectCommand { } } - let mut composer = crate::command::composer_full_mut(&composer_handle); + let composer = crate::command::composer_full_mut(&composer_handle); let process = composer .get_loop() @@ -741,37 +739,40 @@ impl CreateProjectCommand { if stability.is_none() { if package_version.is_none() { stability = Some("stable".to_string()); - } else if { - let mut matched: IndexMap = IndexMap::new(); - let ok = Preg::is_match3( - &format!( - "{{^[^,\\s]*?@({})$}}i", - implode( - "|", - &STABILITIES - .keys() - .map(|k| k.to_string()) - .collect::>() - ) - ), - package_version.as_deref().unwrap_or(""), - Some(&mut matched), - ); - if ok { - stability = Some( - matched - .get(&CaptureKey::ByIndex(1)) - .cloned() - .unwrap_or_default(), + } else { + let ok = { + let mut matched: IndexMap = IndexMap::new(); + let ok = Preg::is_match3( + &format!( + "{{^[^,\\s]*?@({})$}}i", + implode( + "|", + &STABILITIES + .keys() + .map(|k| k.to_string()) + .collect::>() + ) + ), + package_version.as_deref().unwrap_or(""), + Some(&mut matched), ); + if ok { + stability = Some( + matched + .get(&CaptureKey::ByIndex(1)) + .cloned() + .unwrap_or_default(), + ); + } + ok + }; + if ok { + // stability already set above + } else { + stability = Some(VersionParser::parse_stability( + package_version.as_deref().unwrap_or(""), + )); } - ok - } { - // stability already set above - } else { - stability = Some(VersionParser::parse_stability( - package_version.as_deref().unwrap_or(""), - )); } } @@ -1032,7 +1033,7 @@ impl CreateProjectCommand { // ensure that the env var being set does not interfere with create-project // as it is probably not meant to be used here, so we do not use it if a composer.json can be found // in the project - if file_exists(&format!("{}/composer.json", directory)) + if file_exists(format!("{}/composer.json", directory)) && Platform::get_env("COMPOSER").is_some() { Platform::clear_env("COMPOSER"); diff --git a/crates/shirabe/src/command/depends_command.rs b/crates/shirabe/src/command/depends_command.rs index f7d57db..fa60a42 100644 --- a/crates/shirabe/src/command/depends_command.rs +++ b/crates/shirabe/src/command/depends_command.rs @@ -1,25 +1,18 @@ //! ref: composer/src/Composer/Command/DependsCommand.php use anyhow::Result; -use indexmap::IndexMap; use shirabe_external_packages::symfony::console::command::command::Command; use shirabe_external_packages::symfony::console::input::InputInterface; use shirabe_external_packages::symfony::console::output::OutputInterface; -use shirabe_php_shim::PhpMixed; use std::cell::RefCell; use std::rc::Rc; -use crate::advisory::AuditConfig; use crate::command::BaseCommand; use crate::command::BaseCommandData; use crate::command::BaseDependencyCommand; use crate::command::base_command::base_command_initialize; -use crate::composer::PartialComposerHandle; -use crate::config::Config; use crate::console::input::InputArgument; use crate::console::input::InputOption; -use crate::filter::platform_requirement_filter::PlatformRequirementFilterInterface; -use crate::io::IOInterface; #[derive(Debug)] pub struct DependsCommand { diff --git a/crates/shirabe/src/command/diagnose_command.rs b/crates/shirabe/src/command/diagnose_command.rs index 99118cd..514671a 100644 --- a/crates/shirabe/src/command/diagnose_command.rs +++ b/crates/shirabe/src/command/diagnose_command.rs @@ -10,35 +10,30 @@ use shirabe_external_packages::symfony::console::input::InputInterface; use shirabe_external_packages::symfony::console::output::OutputInterface; use shirabe_external_packages::symfony::process::ExecutableFinder; use shirabe_php_shim::{ - CURL_HTTP_VERSION_2_0, CURL_VERSION_HTTP2, CURL_VERSION_HTTP3, CURL_VERSION_ZSTD, INFO_GENERAL, + CURL_VERSION_HTTP2, CURL_VERSION_HTTP3, CURL_VERSION_ZSTD, INFO_GENERAL, InvalidArgumentException, OPENSSL_VERSION_NUMBER, OPENSSL_VERSION_TEXT, PHP_BINARY, PHP_EOL, - PHP_VERSION, PHP_VERSION_ID, PHP_WINDOWS_VERSION_BUILD, PhpMixed, RuntimeException, count, - curl_version, defined, disk_free_space, extension_loaded, file_exists, filter_var_boolean, - function_exists, get_class, get_class_err, hash, implode, ini_get, ioncube_loader_iversion, - ioncube_loader_version, is_array, is_string, ob_get_clean, ob_start, phpinfo, rtrim, sprintf, - str_contains, str_replace, str_starts_with, strpos, strstr, strtolower, trim, version_compare, + PHP_VERSION, PHP_VERSION_ID, PHP_WINDOWS_VERSION_BUILD, PhpMixed, curl_version, defined, + disk_free_space, extension_loaded, file_exists, filter_var_boolean, function_exists, + get_class_err, hash, implode, ini_get, ioncube_loader_iversion, ioncube_loader_version, + is_array, is_string, ob_get_clean, ob_start, phpinfo, rtrim, str_contains, str_replace, + str_starts_with, strpos, strstr, strtolower, trim, version_compare, }; use std::cell::RefCell; use std::rc::Rc; -use crate::advisory::AuditConfig; use crate::advisory::Auditor; use crate::command::base_command::base_command_initialize; use crate::command::{BaseCommand, BaseCommandData}; use crate::composer; -use crate::composer::ComposerHandle; -use crate::composer::PartialComposerHandle; use crate::config::Config; use crate::downloader::TransportException; use crate::factory::Factory; -use crate::filter::platform_requirement_filter::PlatformRequirementFilterInterface; use crate::io::BufferIO; use crate::io::IOInterface; use crate::io::IOInterfaceImmutable; use crate::io::NullIO; use crate::json::JsonFile; use crate::json::JsonValidationException; -use crate::package::CompletePackageInterface; use crate::package::Locker; use crate::package::RootPackage; use crate::package::version::VersionParser; @@ -149,7 +144,7 @@ impl Command for DiagnoseCommand { config_inner.insert("secure-http".to_string(), PhpMixed::Bool(false)); let mut secure_http_wrap: IndexMap = IndexMap::new(); secure_http_wrap.insert("config".to_string(), PhpMixed::Array(config_inner)); - let mut config = config; + let config = config; config .borrow_mut() .merge(&secure_http_wrap, Config::SOURCE_COMMAND); @@ -272,7 +267,7 @@ impl Command for DiagnoseCommand { )); if let Some(ref mut c) = composer { - let mut c = crate::command::composer_full_mut(c); + let c = crate::command::composer_full_mut(c); io.write(&format!( "Active plugins: {}", implode( @@ -692,12 +687,12 @@ impl DiagnoseCommand { let first = provider_includes_arr .values() .next() - .map(|v| v.clone()) + .cloned() .unwrap_or(PhpMixed::Null); let hash_val = first .as_array() .and_then(|a| a.get("sha256")) - .map(|v| v.clone()) + .cloned() .unwrap_or(PhpMixed::Null); let path = str_replace( "%hash%", @@ -828,7 +823,7 @@ impl DiagnoseCommand { .and_then(|a| a.get("resources")) .and_then(|v| v.as_array()) .and_then(|a| a.get("core")) - .map(|v| v.clone()) + .cloned() .unwrap_or(PhpMixed::Null)) } @@ -863,13 +858,13 @@ impl DiagnoseCommand { let mut errors: Vec = vec![]; let io = self.get_io(); - if file_exists(&format!("{}/keys.tags.pub", home)) - && file_exists(&format!("{}/keys.dev.pub", home)) + if file_exists(format!("{}/keys.tags.pub", home)) + && file_exists(format!("{}/keys.dev.pub", home)) { io.write(""); } - if file_exists(&format!("{}/keys.tags.pub", home)) { + if file_exists(format!("{}/keys.tags.pub", home)) { io.write(&format!( "Tags Public Key Fingerprint: {}", Keys::fingerprint(&format!("{}/keys.tags.pub", home))? @@ -880,7 +875,7 @@ impl DiagnoseCommand { )); } - if file_exists(&format!("{}/keys.dev.pub", home)) { + if file_exists(format!("{}/keys.dev.pub", home)) { io.write(&format!( "Dev Public Key Fingerprint: {}", Keys::fingerprint(&format!("{}/keys.dev.pub", home))? @@ -1278,7 +1273,7 @@ impl DiagnoseCommand { warnings.insert("uopz".to_string(), PhpMixed::Bool(true)); } - let mut out_fn = |msg: &str, style: &str, output: &mut String| { + let out_fn = |msg: &str, style: &str, output: &mut String| { output.push_str(&format!("<{}>{}{}", style, msg, style, PHP_EOL)); }; diff --git a/crates/shirabe/src/command/dump_autoload_command.rs b/crates/shirabe/src/command/dump_autoload_command.rs index fae4d76..d697e79 100644 --- a/crates/shirabe/src/command/dump_autoload_command.rs +++ b/crates/shirabe/src/command/dump_autoload_command.rs @@ -1,7 +1,6 @@ //! ref: composer/src/Composer/Command/DumpAutoloadCommand.php use anyhow::Result; -use indexmap::IndexMap; use shirabe_external_packages::symfony::console::command::command::Command; use shirabe_external_packages::symfony::console::input::InputInterface; use shirabe_external_packages::symfony::console::output::OutputInterface; @@ -9,15 +8,10 @@ use shirabe_php_shim::{InvalidArgumentException, PhpMixed, file_exists}; use std::cell::RefCell; use std::rc::Rc; -use crate::advisory::AuditConfig; use crate::command::BaseCommand; use crate::command::BaseCommandData; use crate::command::base_command::base_command_initialize; -use crate::composer::PartialComposerHandle; -use crate::config::Config; use crate::console::input::InputOption; -use crate::filter::platform_requirement_filter::PlatformRequirementFilterInterface; -use crate::io::IOInterface; use crate::io::IOInterfaceImmutable; use crate::plugin::CommandEvent; use crate::plugin::PluginEvents; diff --git a/crates/shirabe/src/command/exec_command.rs b/crates/shirabe/src/command/exec_command.rs index db91012..2fc23f0 100644 --- a/crates/shirabe/src/command/exec_command.rs +++ b/crates/shirabe/src/command/exec_command.rs @@ -1,7 +1,6 @@ //! ref: composer/src/Composer/Command/ExecCommand.php use anyhow::Result; -use indexmap::IndexMap; use shirabe_external_packages::symfony::console::command::command::Command; use shirabe_external_packages::symfony::console::input::InputInterface; use shirabe_external_packages::symfony::console::output::OutputInterface; @@ -9,16 +8,11 @@ use shirabe_php_shim::{PhpMixed, RuntimeException, basename, chdir, getcwd, glob use std::cell::RefCell; use std::rc::Rc; -use crate::advisory::AuditConfig; use crate::command::BaseCommand; use crate::command::BaseCommandData; use crate::command::base_command::base_command_initialize; -use crate::composer::PartialComposerHandle; -use crate::config::Config; use crate::console::input::InputArgument; use crate::console::input::InputOption; -use crate::filter::platform_requirement_filter::PlatformRequirementFilterInterface; -use crate::io::IOInterface; use crate::io::IOInterfaceImmutable; #[derive(Debug)] diff --git a/crates/shirabe/src/command/fund_command.rs b/crates/shirabe/src/command/fund_command.rs index 5b4987f..8c43ca1 100644 --- a/crates/shirabe/src/command/fund_command.rs +++ b/crates/shirabe/src/command/fund_command.rs @@ -1,7 +1,5 @@ //! ref: composer/src/Composer/Command/FundCommand.php -use std::any::Any; - use anyhow::Result; use indexmap::IndexMap; use shirabe_external_packages::composer::pcre::Preg; @@ -15,21 +13,12 @@ use shirabe_semver::constraint::MatchAllConstraint; use std::cell::RefCell; use std::rc::Rc; -use crate::advisory::AuditConfig; use crate::command::base_command::base_command_initialize; use crate::command::{BaseCommand, BaseCommandData}; -use crate::composer::PartialComposerHandle; -use crate::config::Config; use crate::console::input::InputOption; -use crate::filter::platform_requirement_filter::PlatformRequirementFilterInterface; -use crate::io::IOInterface; use crate::io::IOInterfaceImmutable; use crate::json::JsonFile; -use crate::package::AliasPackage; -use crate::package::CompletePackage; -use crate::package::CompletePackageInterface; -use crate::package::PackageInterface; -use crate::package::base_package::{self, BasePackage}; +use crate::package::base_package::{self}; use crate::repository::CompositeRepository; use crate::repository::RepositoryInterface; diff --git a/crates/shirabe/src/command/global_command.rs b/crates/shirabe/src/command/global_command.rs index aed142c..d0d8a31 100644 --- a/crates/shirabe/src/command/global_command.rs +++ b/crates/shirabe/src/command/global_command.rs @@ -3,7 +3,6 @@ use std::path::Path; use anyhow::Result; -use indexmap::IndexMap; use shirabe_external_packages::composer::pcre::Preg; use shirabe_external_packages::symfony::console::command::command::Command; use shirabe_external_packages::symfony::console::input::ArgvInput; @@ -11,22 +10,15 @@ use shirabe_external_packages::symfony::console::input::ArrayInput; use shirabe_external_packages::symfony::console::input::InputInterface; use shirabe_external_packages::symfony::console::input::StringInput; use shirabe_external_packages::symfony::console::output::OutputInterface; -use shirabe_php_shim::PhpMixed; -use shirabe_php_shim::{AsAny, LogicException, RuntimeException, chdir}; +use shirabe_php_shim::{LogicException, RuntimeException, chdir}; use std::cell::RefCell; use std::rc::Rc; -use crate::advisory::AuditConfig; use crate::command::BaseCommand; use crate::command::BaseCommandData; use crate::command::base_command::base_command_initialize; -use crate::composer::PartialComposerHandle; -use crate::config::Config; use crate::console::input::InputArgument; use crate::factory::Factory; -use crate::filter::platform_requirement_filter::PlatformRequirementFilterInterface; -use crate::io::IOInterface; -use crate::io::IOInterfaceImmutable; use crate::util::Filesystem; use crate::util::Platform; @@ -86,7 +78,7 @@ impl GlobalCommand { Platform::clear_env("COMPOSER"); } - let mut config = Factory::create_config(None, None)?; + let config = Factory::create_config(None, None)?; let home = config.get("home").as_string().unwrap_or("").to_string(); if !Path::new(&home).is_dir() { diff --git a/crates/shirabe/src/command/home_command.rs b/crates/shirabe/src/command/home_command.rs index 081ce2d..0a0a36c 100644 --- a/crates/shirabe/src/command/home_command.rs +++ b/crates/shirabe/src/command/home_command.rs @@ -1,7 +1,6 @@ //! ref: composer/src/Composer/Command/HomeCommand.php use anyhow::Result; -use indexmap::IndexMap; use shirabe_external_packages::symfony::console::command::command::Command; use shirabe_external_packages::symfony::console::input::InputInterface; use shirabe_external_packages::symfony::console::output::OutputInterface; @@ -10,22 +9,14 @@ use shirabe_php_shim::filter_var_url; use std::cell::RefCell; use std::rc::Rc; -use crate::advisory::AuditConfig; use crate::command::BaseCommand; use crate::command::BaseCommandData; use crate::command::base_command::base_command_initialize; -use crate::composer::PartialComposerHandle; -use crate::config::Config; use crate::console::input::InputArgument; use crate::console::input::InputOption; -use crate::filter::platform_requirement_filter::PlatformRequirementFilterInterface; -use crate::io::IOInterface; use crate::io::IOInterfaceImmutable; use crate::package::CompletePackageInterfaceHandle; -use crate::package::PackageInterface; -use crate::package::RootPackageInterface; use crate::repository::RepositoryFactory; -use crate::repository::RepositoryInterface; use crate::repository::RootPackageRepository; use crate::util::Platform; use crate::util::ProcessExecutor; diff --git a/crates/shirabe/src/command/init_command.rs b/crates/shirabe/src/command/init_command.rs index 557ebca..ab0e52c 100644 --- a/crates/shirabe/src/command/init_command.rs +++ b/crates/shirabe/src/command/init_command.rs @@ -10,30 +10,24 @@ use shirabe_external_packages::symfony::console::input::ArrayInput; use shirabe_external_packages::symfony::console::input::InputInterface; use shirabe_external_packages::symfony::console::output::OutputInterface; use shirabe_php_shim::{ - FILE_IGNORE_NEW_LINES, InvalidArgumentException, PHP_EOL, PHP_SERVER, PhpMixed, array_filter, - array_flip, array_flip_strings, array_intersect_key, array_keys, array_map, basename, empty, - explode, file, file_exists, file_get_contents, file_put_contents, function_exists, - get_current_user, implode, is_dir, is_string, preg_quote, realpath, sprintf, str_replace, - strpos, strtolower, trim, ucwords, + FILE_IGNORE_NEW_LINES, InvalidArgumentException, PHP_EOL, PHP_SERVER, PhpMixed, + array_flip_strings, array_intersect_key, array_map, basename, empty, explode, file, + file_exists, file_get_contents, file_put_contents, get_current_user, implode, is_dir, + is_string, preg_quote, realpath, str_replace, strpos, strtolower, trim, ucwords, }; use shirabe_spdx_licenses::SpdxLicenses; use std::cell::RefCell; use std::rc::Rc; -use crate::advisory::AuditConfig; use crate::command::PackageDiscoveryTrait; use crate::command::base_command::base_command_initialize; use crate::command::{BaseCommand, BaseCommandData}; -use crate::composer::PartialComposerHandle; -use crate::config::Config; use crate::console::input::InputOption; use crate::factory::Factory; -use crate::filter::platform_requirement_filter::PlatformRequirementFilterInterface; -use crate::io::IOInterface; use crate::io::IOInterfaceImmutable; use crate::json::JsonFile; use crate::json::JsonValidationException; -use crate::package::base_package::{self, BasePackage}; +use crate::package::base_package::{self}; use crate::repository::CompositeRepository; use crate::repository::PlatformRepository; use crate::repository::PlatformRepositoryHandle; @@ -848,7 +842,7 @@ impl Command for InitCommand { ); // --autoload - input and validation - let mut autoload = input + let autoload = input .borrow() .get_option("autoload")? .as_string() diff --git a/crates/shirabe/src/command/install_command.rs b/crates/shirabe/src/command/install_command.rs index 53e3a6c..6a56eb0 100644 --- a/crates/shirabe/src/command/install_command.rs +++ b/crates/shirabe/src/command/install_command.rs @@ -1,7 +1,6 @@ //! ref: composer/src/Composer/Command/InstallCommand.php use anyhow::Result; -use indexmap::IndexMap; use shirabe_external_packages::symfony::console::command::command::Command; use shirabe_external_packages::symfony::console::input::InputInterface; use shirabe_external_packages::symfony::console::output::OutputInterface; @@ -9,18 +8,13 @@ use shirabe_php_shim::PhpMixed; use std::cell::RefCell; use std::rc::Rc; -use crate::advisory::AuditConfig; use crate::advisory::Auditor; use crate::command::BaseCommand; use crate::command::BaseCommandData; use crate::command::base_command::base_command_initialize; -use crate::composer::PartialComposerHandle; -use crate::config::Config; use crate::console::input::InputArgument; use crate::console::input::InputOption; -use crate::filter::platform_requirement_filter::PlatformRequirementFilterInterface; use crate::installer::Installer; -use crate::io::IOInterface; use crate::io::IOInterfaceImmutable; use crate::plugin::CommandEvent; use crate::plugin::PluginEvents; @@ -138,7 +132,7 @@ impl Command for InstallCommand { } let composer_handle = self.require_composer(None, None)?; - let mut composer = crate::command::composer_full_mut(&composer_handle); + let composer = crate::command::composer_full_mut(&composer_handle); if !composer.get_locker().borrow_mut().is_locked() && !HttpDownloader::is_curl_enabled() { io.write_error("Composer is operating significantly slower than normal because you do not have the PHP curl extension enabled."); diff --git a/crates/shirabe/src/command/licenses_command.rs b/crates/shirabe/src/command/licenses_command.rs index f2672bd..bef15ff 100644 --- a/crates/shirabe/src/command/licenses_command.rs +++ b/crates/shirabe/src/command/licenses_command.rs @@ -1,7 +1,5 @@ //! ref: composer/src/Composer/Command/LicensesCommand.php -use std::any::Any; - use anyhow::Result; use indexmap::IndexMap; use shirabe_external_packages::symfony::console::command::command::Command; @@ -15,22 +13,13 @@ use shirabe_php_shim::{PhpMixed, RuntimeException, UnexpectedValueException}; use std::cell::RefCell; use std::rc::Rc; -use crate::advisory::AuditConfig; use crate::command::base_command::base_command_initialize; use crate::command::{BaseCommand, BaseCommandData}; -use crate::composer::PartialComposerHandle; -use crate::config::Config; use crate::console::input::InputOption; -use crate::filter::platform_requirement_filter::PlatformRequirementFilterInterface; -use crate::io::IOInterface; use crate::io::IOInterfaceImmutable; use crate::json::JsonFile; -use crate::package::BasePackage; -use crate::package::CompletePackage; -use crate::package::CompletePackageInterface; use crate::plugin::CommandEvent; use crate::plugin::PluginEvents; -use crate::repository::CanonicalPackagesTrait; use crate::repository::RepositoryInterface; use crate::repository::RepositoryUtils; use crate::util::PackageInfo; @@ -123,7 +112,7 @@ impl Command for LicensesCommand { .borrow_mut() .dispatch(Some(command_event.get_name()), None); - let mut composer = crate::command::composer_full_mut(&composer_handle); + let composer = crate::command::composer_full_mut(&composer_handle); let root = composer.get_package(); let packages = if input diff --git a/crates/shirabe/src/command/outdated_command.rs b/crates/shirabe/src/command/outdated_command.rs index 6a3c3e2..90c0f3d 100644 --- a/crates/shirabe/src/command/outdated_command.rs +++ b/crates/shirabe/src/command/outdated_command.rs @@ -10,16 +10,11 @@ use shirabe_php_shim::PhpMixed; use std::cell::RefCell; use std::rc::Rc; -use crate::advisory::AuditConfig; use crate::command::BaseCommand; use crate::command::BaseCommandData; use crate::command::base_command::base_command_initialize; -use crate::composer::PartialComposerHandle; -use crate::config::Config; use crate::console::input::InputArgument; use crate::console::input::InputOption; -use crate::filter::platform_requirement_filter::PlatformRequirementFilterInterface; -use crate::io::IOInterface; #[derive(Debug)] pub struct OutdatedCommand { diff --git a/crates/shirabe/src/command/package_discovery_trait.rs b/crates/shirabe/src/command/package_discovery_trait.rs index bce7e9a..4a5c65b 100644 --- a/crates/shirabe/src/command/package_discovery_trait.rs +++ b/crates/shirabe/src/command/package_discovery_trait.rs @@ -1,7 +1,6 @@ //! ref: composer/src/Composer/Command/PackageDiscoveryTrait.php use crate::io::io_interface; -use std::any::Any; use anyhow::Result; use indexmap::IndexMap; @@ -10,13 +9,11 @@ use shirabe_external_packages::symfony::console::input::InputInterface; use shirabe_external_packages::symfony::console::output::OutputInterface; use shirabe_php_shim::{ Exception, InvalidArgumentException, LogicException, PHP_EOL, PhpMixed, array_keys, - array_slice, array_unshift, array_values, asort, count, explode, file_get_contents, implode, - in_array, is_array, is_file, is_numeric, is_string, json_decode, levenshtein, sprintf, strlen, - strpos, trim, + array_slice, asort, explode, file_get_contents, implode, in_array, is_array, is_file, + is_numeric, json_decode, levenshtein, strlen, strpos, trim, }; use crate::command::BaseCommand; -use crate::composer::PartialComposerHandle; use crate::factory::Factory; use crate::filter::platform_requirement_filter::IgnoreAllPlatformRequirementFilter; use crate::filter::platform_requirement_filter::PlatformRequirementFilterFactory; @@ -558,7 +555,7 @@ pub trait PackageDiscoveryTrait: BaseCommand { return Err(InvalidArgumentException { message: format!( "Package {} has requirements incompatible with your PHP version, PHP extensions and Composer version{}", - name.to_string(), + name, self.get_platform_exception_details( candidate.clone(), platform_repo, @@ -612,7 +609,7 @@ pub trait PackageDiscoveryTrait: BaseCommand { return Err(InvalidArgumentException { message: format!( "Could not find a version of package {} matching your minimum-stability ({}). Require it with an explicit version constraint allowing its desired stability.", - name.to_string(), + name, effective_minimum_stability.clone(), ), code: 0, @@ -654,7 +651,7 @@ pub trait PackageDiscoveryTrait: BaseCommand { return Err(InvalidArgumentException { message: format!( "Could not find package {} in any version matching your PHP version, PHP extensions and Composer version{}{}", - name.to_string(), + name, self.get_platform_exception_details( candidate.clone(), platform_repo, @@ -683,7 +680,7 @@ pub trait PackageDiscoveryTrait: BaseCommand { return Err(InvalidArgumentException { message: format!( "Could not find package {}. It was however found via repository search, which indicates a consistency issue with the repository.", - name.to_string(), + name, ), code: 0, } @@ -720,7 +717,7 @@ pub trait PackageDiscoveryTrait: BaseCommand { return Err(InvalidArgumentException { message: format!( "Could not find package {}.\n\nDid you mean {}?\n {}", - name.to_string(), + name, if similar.len() > 1 { "one of these" } else { @@ -736,7 +733,7 @@ pub trait PackageDiscoveryTrait: BaseCommand { return Err(InvalidArgumentException { message: format!( "Could not find a matching version of package {}. Check the package spelling, your version constraint and that the package is available in a stability which matches your minimum-stability ({}).", - name.to_string(), + name, effective_minimum_stability, ), code: 0, diff --git a/crates/shirabe/src/command/prohibits_command.rs b/crates/shirabe/src/command/prohibits_command.rs index f35990a..7c034aa 100644 --- a/crates/shirabe/src/command/prohibits_command.rs +++ b/crates/shirabe/src/command/prohibits_command.rs @@ -1,24 +1,17 @@ //! ref: composer/src/Composer/Command/ProhibitsCommand.php use anyhow::Result; -use indexmap::IndexMap; use shirabe_external_packages::symfony::console::command::command::Command; use shirabe_external_packages::symfony::console::input::InputInterface; use shirabe_external_packages::symfony::console::output::OutputInterface; -use shirabe_php_shim::PhpMixed; use std::cell::RefCell; use std::rc::Rc; -use crate::advisory::AuditConfig; use crate::command::BaseDependencyCommand; use crate::command::base_command::base_command_initialize; use crate::command::{BaseCommand, BaseCommandData}; -use crate::composer::PartialComposerHandle; -use crate::config::Config; use crate::console::input::InputArgument; use crate::console::input::InputOption; -use crate::filter::platform_requirement_filter::PlatformRequirementFilterInterface; -use crate::io::IOInterface; #[derive(Debug)] pub struct ProhibitsCommand { diff --git a/crates/shirabe/src/command/reinstall_command.rs b/crates/shirabe/src/command/reinstall_command.rs index 6e728e6..20b8895 100644 --- a/crates/shirabe/src/command/reinstall_command.rs +++ b/crates/shirabe/src/command/reinstall_command.rs @@ -1,32 +1,22 @@ //! ref: composer/src/Composer/Command/ReinstallCommand.php -use std::any::Any; - use anyhow::Result; -use indexmap::IndexMap; use shirabe_external_packages::composer::pcre::Preg; use shirabe_external_packages::symfony::console::command::command::Command; use shirabe_external_packages::symfony::console::input::InputInterface; use shirabe_external_packages::symfony::console::output::OutputInterface; use shirabe_php_shim::InvalidArgumentException; -use shirabe_php_shim::PhpMixed; use std::cell::RefCell; use std::rc::Rc; -use crate::advisory::AuditConfig; use crate::command::BaseCommand; use crate::command::BaseCommandData; use crate::command::base_command::base_command_initialize; -use crate::composer::PartialComposerHandle; -use crate::config::Config; use crate::console::input::InputArgument; -use crate::console::input::InputDefinitionItem; use crate::console::input::InputOption; use crate::dependency_resolver::Transaction; use crate::dependency_resolver::operation::InstallOperation; use crate::dependency_resolver::operation::UninstallOperation; -use crate::filter::platform_requirement_filter::PlatformRequirementFilterInterface; -use crate::io::IOInterface; use crate::io::IOInterfaceImmutable; use crate::package::base_package; use crate::plugin::CommandEvent; diff --git a/crates/shirabe/src/command/remove_command.rs b/crates/shirabe/src/command/remove_command.rs index c36c5dd..60287bc 100644 --- a/crates/shirabe/src/command/remove_command.rs +++ b/crates/shirabe/src/command/remove_command.rs @@ -7,31 +7,23 @@ use shirabe_external_packages::symfony::console::command::command::Command; use shirabe_external_packages::symfony::console::exception::InvalidArgumentException; use shirabe_external_packages::symfony::console::input::InputInterface; use shirabe_external_packages::symfony::console::output::OutputInterface; -use shirabe_php_shim::{PhpMixed, UnexpectedValueException, array_map, strtolower}; +use shirabe_php_shim::{PhpMixed, UnexpectedValueException, strtolower}; use std::cell::RefCell; use std::rc::Rc; -use crate::advisory::AuditConfig; use crate::advisory::Auditor; use crate::command::base_command::base_command_initialize; use crate::command::{BaseCommand, BaseCommandData}; -use crate::composer::PartialComposerHandle; -use crate::config::Config; use crate::config::ConfigSourceInterface; use crate::config::JsonConfigSource; use crate::console::input::InputArgument; use crate::console::input::InputOption; -use crate::dependency_resolver::Request; use crate::dependency_resolver::UpdateAllowTransitiveDeps; use crate::factory::Factory; -use crate::filter::platform_requirement_filter::PlatformRequirementFilterInterface; use crate::installer::Installer; -use crate::io::IOInterface; use crate::io::IOInterfaceImmutable; use crate::json::JsonFile; -use crate::package::BasePackage; use crate::package::base_package; -use crate::repository::CanonicalPackagesTrait; use crate::repository::RepositoryInterface; #[derive(Debug)] @@ -226,7 +218,7 @@ impl Command for RemoveCommand { .unwrap_or(false) { let composer = self.require_composer(None, None)?; - let mut composer = crate::command::composer_full_mut(&composer); + let composer = crate::command::composer_full_mut(&composer); { let locker = composer.get_locker().clone(); let mut locker = locker.borrow_mut(); @@ -240,7 +232,7 @@ impl Command for RemoveCommand { } } - let mut locked_repo = composer + let locked_repo = composer .get_locker() .borrow_mut() .get_locked_repository(true)?; diff --git a/crates/shirabe/src/command/repository_command.rs b/crates/shirabe/src/command/repository_command.rs index c8d99a5..19dfb6b 100644 --- a/crates/shirabe/src/command/repository_command.rs +++ b/crates/shirabe/src/command/repository_command.rs @@ -12,18 +12,13 @@ use shirabe_php_shim::{ use std::cell::RefCell; use std::rc::Rc; -use crate::advisory::AuditConfig; use crate::command::BaseConfigCommand; use crate::command::{BaseCommand, BaseCommandData}; -use crate::composer::PartialComposerHandle; use crate::config::Config; use crate::config::ConfigSourceInterface; use crate::config::JsonConfigSource; use crate::console::input::InputArgument; use crate::console::input::InputOption; -use crate::factory::Factory; -use crate::filter::platform_requirement_filter::PlatformRequirementFilterInterface; -use crate::io::IOInterface; use crate::io::IOInterfaceImmutable; use crate::json::JsonFile; diff --git a/crates/shirabe/src/command/require_command.rs b/crates/shirabe/src/command/require_command.rs index 4bed4df..d2923c8 100644 --- a/crates/shirabe/src/command/require_command.rs +++ b/crates/shirabe/src/command/require_command.rs @@ -9,26 +9,21 @@ use shirabe_external_packages::symfony::console::command::command::Command; use shirabe_external_packages::symfony::console::input::InputInterface; use shirabe_external_packages::symfony::console::output::OutputInterface; use shirabe_php_shim::{ - PhpMixed, RuntimeException, UnexpectedValueException, array_fill_keys, array_intersect, - array_keys, array_map, array_merge, array_unique, count, empty, file_exists, file_get_contents, - file_put_contents, filesize, implode, is_writable, sprintf, strtolower, unlink, + PhpMixed, RuntimeException, array_fill_keys, array_intersect, array_keys, array_map, + array_merge, array_unique, empty, file_exists, file_get_contents, file_put_contents, filesize, + implode, is_writable, strtolower, unlink, }; use std::cell::RefCell; use std::rc::Rc; -use crate::advisory::AuditConfig; use crate::advisory::Auditor; use crate::command::PackageDiscoveryTrait; use crate::command::base_command::base_command_initialize; use crate::command::{BaseCommand, BaseCommandData}; -use crate::composer::PartialComposerHandle; -use crate::config::Config; use crate::console::input::InputArgument; use crate::console::input::InputOption; -use crate::dependency_resolver::Request; use crate::dependency_resolver::UpdateAllowTransitiveDeps; use crate::factory::Factory; -use crate::filter::platform_requirement_filter::PlatformRequirementFilterInterface; use crate::installer::Installer; use crate::installer::InstallerEvents; use crate::io::IOInterface; @@ -45,7 +40,6 @@ use crate::plugin::PluginEvents; use crate::repository::CompositeRepository; use crate::repository::PlatformRepository; use crate::repository::PlatformRepositoryHandle; -use crate::repository::RepositoryInterface; use crate::repository::RepositorySet; use crate::util::Filesystem; use crate::util::PackageSorter; @@ -269,7 +263,7 @@ impl Command for RequireCommand { .to_string() }; - /// @see https://github.com/composer/composer/pull/8313#issuecomment-532637955 + // @see https://github.com/composer/composer/pull/8313#issuecomment-532637955 if package_type != "project" && !input.borrow().get_option("dev")?.as_bool().unwrap_or(false) { @@ -482,14 +476,13 @@ impl Command for RequireCommand { let warn_msg = format!( "{} is currently present in the {} key and you ran the command {} the --dev flag, which will move it to the {} key.", package.clone(), - remove_key.to_string(), + remove_key, if input.borrow().get_option("dev")?.as_bool().unwrap_or(false) { "with" } else { "without" - } - .to_string(), - require_key.to_string(), + }, + require_key, ); self.get_io().warning(&warn_msg, &[]); } @@ -501,8 +494,7 @@ impl Command for RequireCommand { "these requirements" } else { "this requirement" - } - .to_string(), + }, ); if !self.get_io().ask_confirmation(q1, false) { let q2 = format!( @@ -511,8 +503,7 @@ impl Command for RequireCommand { "without" } else { "with" - } - .to_string(), + }, ); if !self.get_io().ask_confirmation(q2, true) { return Ok(0); @@ -762,7 +753,7 @@ impl RequireCommand { // Update packages self.reset_composer()?; let composer_handle = self.require_composer(None, None)?; - let mut composer = crate::command::composer_full_mut(&composer_handle); + let composer = crate::command::composer_full_mut(&composer_handle); self.dependency_resolution_completed.set(false); // PHP: $composer->getEventDispatcher()->addListener(InstallerEvents::PRE_OPERATIONS_EXEC, @@ -1065,7 +1056,7 @@ impl RequireCommand { fixed: bool, ) -> Result { let composer = self.require_composer(None, None)?; - let mut composer = crate::command::composer_full_mut(&composer); + let composer = crate::command::composer_full_mut(&composer); let locker_is_locked = composer.get_locker().borrow_mut().is_locked(); let mut requirements: IndexMap = IndexMap::new(); let mut version_selector = VersionSelector::new( diff --git a/crates/shirabe/src/command/run_script_command.rs b/crates/shirabe/src/command/run_script_command.rs index 383c5bb..7d37959 100644 --- a/crates/shirabe/src/command/run_script_command.rs +++ b/crates/shirabe/src/command/run_script_command.rs @@ -10,16 +10,11 @@ use shirabe_php_shim::{InvalidArgumentException, RuntimeException}; use std::cell::RefCell; use std::rc::Rc; -use crate::advisory::AuditConfig; use crate::command::BaseCommand; use crate::command::BaseCommandData; use crate::command::base_command::base_command_initialize; -use crate::composer::PartialComposerHandle; -use crate::config::Config; use crate::console::input::InputArgument; use crate::console::input::InputOption; -use crate::filter::platform_requirement_filter::PlatformRequirementFilterInterface; -use crate::io::IOInterface; use crate::io::IOInterfaceImmutable; use crate::script::Event as ScriptEvent; use crate::script::ScriptEvents; diff --git a/crates/shirabe/src/command/script_alias_command.rs b/crates/shirabe/src/command/script_alias_command.rs index 0fb5ce0..e429fe7 100644 --- a/crates/shirabe/src/command/script_alias_command.rs +++ b/crates/shirabe/src/command/script_alias_command.rs @@ -1,7 +1,6 @@ //! ref: composer/src/Composer/Command/ScriptAliasCommand.php use anyhow::Result; -use indexmap::IndexMap; use shirabe_external_packages::composer::pcre::Preg; use shirabe_external_packages::symfony::console::command::command::Command; use shirabe_external_packages::symfony::console::input::InputInterface; @@ -10,16 +9,11 @@ use shirabe_php_shim::{InvalidArgumentException, LogicException, PhpMixed, is_st use std::cell::RefCell; use std::rc::Rc; -use crate::advisory::AuditConfig; use crate::command::BaseCommand; use crate::command::BaseCommandData; use crate::command::base_command::base_command_initialize; -use crate::composer::PartialComposerHandle; -use crate::config::Config; use crate::console::input::InputArgument; use crate::console::input::InputOption; -use crate::filter::platform_requirement_filter::PlatformRequirementFilterInterface; -use crate::io::IOInterface; use crate::util::Platform; #[derive(Debug)] diff --git a/crates/shirabe/src/command/search_command.rs b/crates/shirabe/src/command/search_command.rs index bcd74c3..f5a85fe 100644 --- a/crates/shirabe/src/command/search_command.rs +++ b/crates/shirabe/src/command/search_command.rs @@ -10,15 +10,10 @@ use shirabe_php_shim::{InvalidArgumentException, PhpMixed, implode, in_array, pr use std::cell::RefCell; use std::rc::Rc; -use crate::advisory::AuditConfig; use crate::command::base_command::base_command_initialize; use crate::command::{BaseCommand, BaseCommandData}; -use crate::composer::PartialComposerHandle; -use crate::config::Config; use crate::console::input::InputArgument; use crate::console::input::InputOption; -use crate::filter::platform_requirement_filter::PlatformRequirementFilterInterface; -use crate::io::IOInterface; use crate::io::IOInterfaceImmutable; use crate::json::JsonFile; use crate::plugin::CommandEvent; diff --git a/crates/shirabe/src/command/self_update_command.rs b/crates/shirabe/src/command/self_update_command.rs index aaee993..5b94058 100644 --- a/crates/shirabe/src/command/self_update_command.rs +++ b/crates/shirabe/src/command/self_update_command.rs @@ -1,7 +1,6 @@ //! ref: composer/src/Composer/Command/SelfUpdateCommand.php use anyhow::Result; -use indexmap::IndexMap; use shirabe_external_packages::symfony::console::command::command::Command; use shirabe_external_packages::symfony::console::input::InputInterface; use shirabe_external_packages::symfony::console::output::OutputInterface; @@ -9,16 +8,11 @@ use shirabe_php_shim::PhpMixed; use std::cell::RefCell; use std::rc::Rc; -use crate::advisory::AuditConfig; use crate::command::BaseCommand; use crate::command::BaseCommandData; use crate::command::base_command::base_command_initialize; -use crate::composer::PartialComposerHandle; -use crate::config::Config; use crate::console::input::InputArgument; use crate::console::input::InputOption; -use crate::filter::platform_requirement_filter::PlatformRequirementFilterInterface; -use crate::io::IOInterface; use crate::io::IOInterfaceImmutable; use crate::io::io_interface; diff --git a/crates/shirabe/src/command/show_command.rs b/crates/shirabe/src/command/show_command.rs index cfe4d3b..f65ecc7 100644 --- a/crates/shirabe/src/command/show_command.rs +++ b/crates/shirabe/src/command/show_command.rs @@ -20,22 +20,18 @@ use std::rc::Rc; use shirabe_semver::constraint::AnyConstraint; -use crate::advisory::AuditConfig; use crate::command::base_command::base_command_initialize; use crate::command::{BaseCommand, BaseCommandData}; use crate::composer::PartialComposerHandle; -use crate::config::Config; use crate::console::input::InputArgument; use crate::console::input::InputOption; use crate::dependency_resolver::DefaultPolicy; use crate::dependency_resolver::PolicyInterface; use crate::filter::platform_requirement_filter::PlatformRequirementFilterInterface; -use crate::io::IOInterface; use crate::io::IOInterfaceImmutable; use crate::json::JsonFile; use crate::package::CompletePackageInterfaceHandle; use crate::package::Link; -use crate::package::PackageInterface; use crate::package::PackageInterfaceHandle; use crate::package::base_package; use crate::package::version::VersionParser; @@ -224,7 +220,7 @@ impl Command for ShowCommand { self.init_styles(output.clone()); } - let mut composer = self.try_composer(None, None); + let composer = self.try_composer(None, None); if input.borrow().get_option("installed")?.as_bool() == Some(true) && input.borrow().get_option("self")?.as_bool() != Some(true) @@ -420,7 +416,7 @@ impl Command for ShowCommand { installed_repo = RepositoryInterfaceHandle::new(ir); } } else if input.borrow().get_option("all")?.as_bool() == Some(true) && composer.is_some() { - let mut composer_ref = crate::command::composer_full_mut(composer.as_ref().unwrap()); + let composer_ref = crate::command::composer_full_mut(composer.as_ref().unwrap()); let local_repo = composer_ref .get_repository_manager() .borrow() @@ -488,7 +484,7 @@ impl Command for ShowCommand { } .into()); } - let mut composer_ref = crate::command::composer_full_mut(composer.as_ref().unwrap()); + let composer_ref = crate::command::composer_full_mut(composer.as_ref().unwrap()); let locker_rc = composer_ref.get_locker().clone(); let mut locker = locker_rc.borrow_mut(); let lr = locker.get_locked_repository( @@ -1901,7 +1897,7 @@ impl ShowCommand { if r#type == "psr-0" || r#type == "psr-4" { if let PhpMixed::Array(map) = autoloads { for (name, path) in map.iter() { - let path_str = match &*path { + let path_str = match path { PhpMixed::List(l) => l .iter() .filter_map(|p| p.as_string().map(|s| s.to_string())) @@ -2594,7 +2590,7 @@ impl ShowCommand { let circular_warn = if in_array( PhpMixed::String(require_name.clone()), - &PhpMixed::List(current_tree.iter().cloned().collect()), + &PhpMixed::List(current_tree.to_vec()), true, ) { "(circular dependency aborted here)" @@ -2648,7 +2644,7 @@ impl ShowCommand { if !in_array( PhpMixed::String(require_name.clone()), - &PhpMixed::List(current_tree.iter().cloned().collect()), + &PhpMixed::List(current_tree.to_vec()), true, ) { current_tree.push(PhpMixed::String(require_name.clone())); @@ -2824,21 +2820,21 @@ impl ShowCommand { } } - let show_warnings_box: Box bool>; - if self.get_io().is_verbose() { - show_warnings_box = Box::new(|_p: PackageInterfaceHandle| -> bool { true }); - } else { - let package_version = package.get_version(); - show_warnings_box = Box::new(move |candidate: PackageInterfaceHandle| -> bool { - if candidate.get_version().starts_with("dev-") - || package_version.starts_with("dev-") - { - return false; - } + let show_warnings_box: Box bool> = + if self.get_io().is_verbose() { + Box::new(|_p: PackageInterfaceHandle| -> bool { true }) + } else { + let package_version = package.get_version(); + Box::new(move |candidate: PackageInterfaceHandle| -> bool { + if candidate.get_version().starts_with("dev-") + || package_version.starts_with("dev-") + { + return false; + } - version_compare(&candidate.get_version(), &package_version, "<=") - }); - } + version_compare(&candidate.get_version(), &package_version, "<=") + }) + }; // TODO(phase-c): PHP passes $showWarnings (true or a closure) as the last argument, but the // closure form requires modeling a callable inside PhpMixed; hardcoding true until then. let _ = show_warnings_box; diff --git a/crates/shirabe/src/command/status_command.rs b/crates/shirabe/src/command/status_command.rs index db93e66..a8ea1ee 100644 --- a/crates/shirabe/src/command/status_command.rs +++ b/crates/shirabe/src/command/status_command.rs @@ -5,19 +5,13 @@ use indexmap::IndexMap; use shirabe_external_packages::symfony::console::command::command::Command; use shirabe_external_packages::symfony::console::input::InputInterface; use shirabe_external_packages::symfony::console::output::OutputInterface; -use shirabe_php_shim::PhpMixed; use std::cell::RefCell; use std::rc::Rc; -use crate::advisory::AuditConfig; use crate::command::BaseCommand; use crate::command::BaseCommandData; use crate::command::base_command::base_command_initialize; -use crate::composer::PartialComposerHandle; -use crate::config::Config; use crate::console::input::InputOption; -use crate::filter::platform_requirement_filter::PlatformRequirementFilterInterface; -use crate::io::IOInterface; use crate::io::IOInterfaceImmutable; use crate::package::dumper::ArrayDumper; use crate::package::version::VersionGuesser; @@ -58,7 +52,7 @@ impl StatusCommand { input: std::rc::Rc>, ) -> Result { let composer = self.require_composer(None, None)?; - let mut composer = crate::command::composer_full_mut(&composer); + let composer = crate::command::composer_full_mut(&composer); let io = self.get_io().clone(); let mut errors: IndexMap = IndexMap::new(); diff --git a/crates/shirabe/src/command/suggests_command.rs b/crates/shirabe/src/command/suggests_command.rs index 4bd0758..9abae53 100644 --- a/crates/shirabe/src/command/suggests_command.rs +++ b/crates/shirabe/src/command/suggests_command.rs @@ -1,15 +1,10 @@ //! ref: composer/src/Composer/Command/SuggestsCommand.php -use crate::advisory::AuditConfig; use crate::command::base_command::base_command_initialize; use crate::command::{BaseCommand, BaseCommandData}; -use crate::composer::PartialComposerHandle; -use crate::config::Config; use crate::console::input::InputArgument; use crate::console::input::InputOption; -use crate::filter::platform_requirement_filter::PlatformRequirementFilterInterface; use crate::installer::SuggestedPackagesReporter; -use crate::io::IOInterface; use crate::repository::InstalledRepository; use crate::repository::PlatformRepository; use crate::repository::RepositoryInterface; @@ -119,7 +114,7 @@ impl Command for SuggestsCommand { _output: Rc>, ) -> Result { let composer = self.require_composer(None, None)?; - let mut composer = crate::command::composer_full_mut(&composer); + let composer = crate::command::composer_full_mut(&composer); let mut installed_repos: Vec = vec![RepositoryInterfaceHandle::new(RootPackageRepository::new( diff --git a/crates/shirabe/src/command/update_command.rs b/crates/shirabe/src/command/update_command.rs index c6c05ba..6a74371 100644 --- a/crates/shirabe/src/command/update_command.rs +++ b/crates/shirabe/src/command/update_command.rs @@ -11,24 +11,18 @@ use shirabe_external_packages::symfony::console::input::InputInterface; use shirabe_external_packages::symfony::console::output::OutputInterface; use shirabe_php_shim::{ InvalidArgumentException, PhpMixed, RuntimeException, array_filter, array_intersect, - array_keys, array_merge_map, array_search_in_vec, count, empty, in_array, sprintf, strtolower, + array_keys, array_merge_map, array_search_in_vec, in_array, strtolower, }; use shirabe_semver::Intervals; use shirabe_semver::constraint::MultiConstraint; use std::cell::RefCell; use std::rc::Rc; -use crate::advisory::AuditConfig; -use crate::advisory::Auditor; use crate::command::BumpCommand; use crate::command::base_command::base_command_initialize; use crate::command::{BaseCommand, BaseCommandData}; use crate::composer::PartialComposerHandle; -use crate::config::Config; -use crate::console::input::InputArgument; -use crate::console::input::InputOption; -use crate::dependency_resolver::request::{self, Request, UpdateAllowTransitiveDeps}; -use crate::filter::platform_requirement_filter::PlatformRequirementFilterInterface; +use crate::dependency_resolver::request::UpdateAllowTransitiveDeps; use crate::installer::Installer; use crate::io::IOInterface; use crate::io::IOInterfaceImmutable; @@ -40,7 +34,6 @@ use crate::plugin::PluginEvents; use crate::repository::CanonicalPackagesTrait; use crate::repository::CompositeRepository; use crate::repository::PlatformRepository; -use crate::repository::RepositoryInterface; use crate::repository::RepositorySet; use crate::util::HttpDownloader; @@ -516,7 +509,7 @@ impl Command for UpdateCommand { true, io_interface::NORMAL, ); - let mut bump_command = BumpCommand::new(); + let bump_command = BumpCommand::new(); bump_command.set_composer(composer_handle.clone()); result = bump_command.do_bump( io.clone(), @@ -707,7 +700,7 @@ impl UpdateCommand { if io.ask_confirmation( format!( "Would you like to continue and update the above package{} [yes]? ", - if 1 == packages.len() { "" } else { "s" }.to_string(), + if 1 == packages.len() { "" } else { "s" }, ), true, ) { diff --git a/crates/shirabe/src/command/validate_command.rs b/crates/shirabe/src/command/validate_command.rs index b378393..89c83eb 100644 --- a/crates/shirabe/src/command/validate_command.rs +++ b/crates/shirabe/src/command/validate_command.rs @@ -1,24 +1,18 @@ //! ref: composer/src/Composer/Command/ValidateCommand.php use anyhow::Result; -use indexmap::IndexMap; use shirabe_external_packages::symfony::console::command::command::Command; use shirabe_external_packages::symfony::console::input::InputInterface; use shirabe_external_packages::symfony::console::output::OutputInterface; -use shirabe_php_shim::PhpMixed; use std::cell::RefCell; use std::rc::Rc; -use crate::advisory::AuditConfig; use crate::command::BaseCommand; use crate::command::BaseCommandData; use crate::command::base_command::base_command_initialize; -use crate::composer::PartialComposerHandle; -use crate::config::Config; use crate::console::input::InputArgument; use crate::console::input::InputOption; use crate::factory::Factory; -use crate::filter::platform_requirement_filter::PlatformRequirementFilterInterface; use crate::io::IOInterface; use crate::io::IOInterfaceImmutable; use crate::package::loader::ValidatingArrayLoader; @@ -203,7 +197,7 @@ impl Command for ValidateCommand { let mut lock_errors: Vec = vec![]; let composer = self.create_composer_instance(input.clone(), io.clone(), None, false, None)?; - let mut composer = crate::command::composer_full_mut(&composer); + let composer = crate::command::composer_full_mut(&composer); let check_lock = (check_lock && composer .get_config() -- cgit v1.3.1