aboutsummaryrefslogtreecommitdiffhomepage
path: root/crates/shirabe/src/util/config_validator.rs
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2026-07-05 18:44:06 +0900
committernsfisis <nsfisis@gmail.com>2026-07-05 18:44:06 +0900
commit90ebddc8fd17bac1064fb5a0da88a9ad535f5a3c (patch)
tree31e8831df80401b45ded74dfa5e3581fedf6a942 /crates/shirabe/src/util/config_validator.rs
parent8aae17870a5ec2fdd9f0d4d61d33c792ff7b62b0 (diff)
downloadphp-shirabe-90ebddc8fd17bac1064fb5a0da88a9ad535f5a3c.tar.gz
php-shirabe-90ebddc8fd17bac1064fb5a0da88a9ad535f5a3c.tar.zst
php-shirabe-90ebddc8fd17bac1064fb5a0da88a9ad535f5a3c.zip
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.
Diffstat (limited to 'crates/shirabe/src/util/config_validator.rs')
-rw-r--r--crates/shirabe/src/util/config_validator.rs10
1 files changed, 7 insertions, 3 deletions
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::<InvalidPackageException>() {
@@ -307,7 +311,7 @@ impl ConfigValidator {
}
}
- warnings.extend_from_slice(loader.get_warnings());
+ warnings.extend(loader.get_warnings());
(errors, publish_errors, warnings)
}