From 90ebddc8fd17bac1064fb5a0da88a9ad535f5a3c Mon Sep 17 00:00:00 2001 From: nsfisis Date: Sun, 5 Jul 2026 18:44:06 +0900 Subject: feat(validating-array-loader): implement LoaderInterface Convert errors/warnings/config to RefCell so load() can satisfy the trait's &self signature, matching upstream's `instanceof ValidatingArrayLoader` check in VcsRepository. This makes the InvalidPackageException downcast path in VcsRepository reachable for the first time instead of being permanently dead code. --- crates/shirabe/src/util/config_validator.rs | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'crates/shirabe/src/util/config_validator.rs') diff --git a/crates/shirabe/src/util/config_validator.rs b/crates/shirabe/src/util/config_validator.rs index 849521f..4137a2d 100644 --- a/crates/shirabe/src/util/config_validator.rs +++ b/crates/shirabe/src/util/config_validator.rs @@ -5,6 +5,7 @@ use crate::json::JsonFile; use crate::json::JsonValidationException; use crate::package::loader::ArrayLoader; use crate::package::loader::InvalidPackageException; +use crate::package::loader::LoaderInterface; use crate::package::loader::ValidatingArrayLoader; use indexmap::IndexMap; use serde::de::Error as _; @@ -282,7 +283,7 @@ impl ConfigValidator { } } - let mut loader = ValidatingArrayLoader::new( + let loader = ValidatingArrayLoader::new( Box::new(ArrayLoader::new(None, true)), true, None, @@ -298,7 +299,10 @@ impl ConfigValidator { PhpMixed::String("dummy/dummy".to_string()), ); } - match loader.load(manifest_for_load, "Composer\\Package\\CompletePackage") { + match loader.load( + manifest_for_load, + Some("Composer\\Package\\CompletePackage".to_string()), + ) { Ok(_) => {} Err(e) => { if let Some(invalid_e) = e.downcast_ref::() { @@ -307,7 +311,7 @@ impl ConfigValidator { } } - warnings.extend_from_slice(loader.get_warnings()); + warnings.extend(loader.get_warnings()); (errors, publish_errors, warnings) } -- cgit v1.3.1