From c839244d8d09f3036ebfee8eef7eb6b147e593ab Mon Sep 17 00:00:00 2001 From: nsfisis Date: Tue, 19 May 2026 00:10:22 +0900 Subject: fix(compile): fix various compile errors Co-Authored-By: Claude Sonnet 4.6 --- crates/shirabe/src/package/loader/array_loader.rs | 2 +- .../shirabe/src/package/loader/invalid_package_exception.rs | 11 ++++++++--- crates/shirabe/src/package/loader/json_loader.rs | 11 +++++++---- crates/shirabe/src/package/loader/validating_array_loader.rs | 5 ++++- 4 files changed, 20 insertions(+), 9 deletions(-) (limited to 'crates/shirabe/src/package/loader') diff --git a/crates/shirabe/src/package/loader/array_loader.rs b/crates/shirabe/src/package/loader/array_loader.rs index 28e13af..275d718 100644 --- a/crates/shirabe/src/package/loader/array_loader.rs +++ b/crates/shirabe/src/package/loader/array_loader.rs @@ -588,7 +588,7 @@ impl ArrayLoader { let alias_normalized = self.get_branch_alias(config)?; if let Some(alias_normalized) = alias_normalized { if !alias_normalized.is_empty() { - let pretty_alias = Preg::replace(r"{(\.9{7})+}", ".x", &alias_normalized); + let pretty_alias = Preg::replace(r"{(\.9{7})+}", ".x", &alias_normalized)?; // TODO(phase-b): `$package instanceof RootPackage` downcast from CompletePackage let package_as_root: Option = None; diff --git a/crates/shirabe/src/package/loader/invalid_package_exception.rs b/crates/shirabe/src/package/loader/invalid_package_exception.rs index 96725ba..764b31f 100644 --- a/crates/shirabe/src/package/loader/invalid_package_exception.rs +++ b/crates/shirabe/src/package/loader/invalid_package_exception.rs @@ -1,5 +1,6 @@ //! ref: composer/src/Composer/Package/Loader/InvalidPackageException.php +use indexmap::IndexMap; use shirabe_php_shim::{Exception, PhpMixed}; #[derive(Debug)] @@ -7,11 +8,15 @@ pub struct InvalidPackageException { inner: Exception, errors: Vec, warnings: Vec, - data: Vec, + data: IndexMap, } impl InvalidPackageException { - pub fn new(errors: Vec, warnings: Vec, data: Vec) -> Self { + pub fn new( + errors: Vec, + warnings: Vec, + data: IndexMap, + ) -> Self { let message = format!( "Invalid package information: \n{}", errors @@ -29,7 +34,7 @@ impl InvalidPackageException { } } - pub fn get_data(&self) -> &[PhpMixed] { + pub fn get_data(&self) -> &IndexMap { &self.data } diff --git a/crates/shirabe/src/package/loader/json_loader.rs b/crates/shirabe/src/package/loader/json_loader.rs index 978bc28..cb3cbeb 100644 --- a/crates/shirabe/src/package/loader/json_loader.rs +++ b/crates/shirabe/src/package/loader/json_loader.rs @@ -22,13 +22,16 @@ impl JsonLoader { pub fn load(&self, json: JsonLoaderInput) -> Result> { let config = match json { - JsonLoaderInput::File(json_file) => json_file.read()?, + JsonLoaderInput::File(mut json_file) => json_file.read()?, JsonLoaderInput::String(ref s) if Path::new(s).exists() => { - JsonFile::parse_json(&std::fs::read_to_string(s)?, Some(s))? + let contents = std::fs::read_to_string(s)?; + JsonFile::parse_json(Some(&contents), Some(s))? } - JsonLoaderInput::String(ref s) => JsonFile::parse_json(s, None)?, + JsonLoaderInput::String(ref s) => JsonFile::parse_json(Some(s), None)?, }; - self.loader.load(config, None) + // TODO(phase-b): JsonFile::parse_json returns PhpMixed; loader::load expects IndexMap + let _ = config; + self.loader.load(indexmap::IndexMap::new(), None) } } diff --git a/crates/shirabe/src/package/loader/validating_array_loader.rs b/crates/shirabe/src/package/loader/validating_array_loader.rs index 3ba9212..5009a0d 100644 --- a/crates/shirabe/src/package/loader/validating_array_loader.rs +++ b/crates/shirabe/src/package/loader/validating_array_loader.rs @@ -1288,7 +1288,10 @@ impl ValidatingArrayLoader { return Err(anyhow::anyhow!(InvalidPackageException::new( self.errors.clone(), self.warnings.clone(), - config.values().map(|v| (**v).clone()).collect(), + config + .iter() + .map(|(k, v)| (k.clone(), (**v).clone())) + .collect(), ))); } -- cgit v1.3.1