diff options
| author | nsfisis <nsfisis@gmail.com> | 2026-07-05 18:44:06 +0900 |
|---|---|---|
| committer | nsfisis <nsfisis@gmail.com> | 2026-07-05 18:44:06 +0900 |
| commit | 90ebddc8fd17bac1064fb5a0da88a9ad535f5a3c (patch) | |
| tree | 31e8831df80401b45ded74dfa5e3581fedf6a942 /crates/shirabe/src/util/config_validator.rs | |
| parent | 8aae17870a5ec2fdd9f0d4d61d33c792ff7b62b0 (diff) | |
| download | php-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.rs | 10 |
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) } |
