aboutsummaryrefslogtreecommitdiffhomepage
path: root/crates/shirabe/src/package/loader
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2026-06-14 11:24:36 +0900
committernsfisis <nsfisis@gmail.com>2026-06-14 11:28:19 +0900
commit716f44031a39c5e43fb441ecc470db76efc23dd4 (patch)
treee6f4a31e4bf55a0a8efb06d9dd4844c567e7390f /crates/shirabe/src/package/loader
parentef9118c788c1cbb22ca7721b6a9e40c2bf2fe243 (diff)
downloadphp-shirabe-716f44031a39c5e43fb441ecc470db76efc23dd4.tar.gz
php-shirabe-716f44031a39c5e43fb441ecc470db76efc23dd4.tar.zst
php-shirabe-716f44031a39c5e43fb441ecc470db76efc23dd4.zip
refactor(pcre): drop Result from Preg method return types
The Preg methods panic on PCRE failure (per the file header rationale), so their anyhow::Result wrappers never carried an Err. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Diffstat (limited to 'crates/shirabe/src/package/loader')
-rw-r--r--crates/shirabe/src/package/loader/array_loader.rs6
-rw-r--r--crates/shirabe/src/package/loader/root_package_loader.rs23
-rw-r--r--crates/shirabe/src/package/loader/validating_array_loader.rs21
3 files changed, 20 insertions, 30 deletions
diff --git a/crates/shirabe/src/package/loader/array_loader.rs b/crates/shirabe/src/package/loader/array_loader.rs
index 8e87302..222b5df 100644
--- a/crates/shirabe/src/package/loader/array_loader.rs
+++ b/crates/shirabe/src/package/loader/array_loader.rs
@@ -517,7 +517,7 @@ impl ArrayLoader {
if let Some(time_value) = config.get("time") {
if !shirabe_php_shim::empty(time_value) {
let time_str = time_value.as_string().unwrap_or("");
- let time = if Preg::is_match(r"/^\d++$/D", time_str).unwrap_or(false) {
+ let time = if Preg::is_match(r"/^\d++$/D", time_str) {
format!("@{}", time_str)
} else {
time_str.to_string()
@@ -692,7 +692,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);
return Ok(match package {
CompleteOrRootPackage::Root(root) => RootAliasPackageHandle::new(
@@ -956,7 +956,7 @@ impl ArrayLoader {
&& default_branch_is_true
&& self
.version_parser
- .parse_numeric_alias_prefix(&Preg::replace(r"{^v}", "", &version_str)?)
+ .parse_numeric_alias_prefix(&Preg::replace(r"{^v}", "", &version_str))
.is_none()
{
return Ok(Some(VersionParser::DEFAULT_BRANCH_ALIAS.to_string()));
diff --git a/crates/shirabe/src/package/loader/root_package_loader.rs b/crates/shirabe/src/package/loader/root_package_loader.rs
index 476f6bd..92f2be0 100644
--- a/crates/shirabe/src/package/loader/root_package_loader.rs
+++ b/crates/shirabe/src/package/loader/root_package_loader.rs
@@ -278,9 +278,7 @@ impl RootPackageLoader {
r"(?:^|\| *|, *)([^,\s#|]+)(?:#[^ ]+)? +as +([^,\s|]+)(?:$| *\|| *,)",
req_version,
Some(&mut m),
- )
- .unwrap_or(false)
- {
+ ) {
let m1 = m.get(&CaptureKey::ByIndex(1)).cloned().unwrap_or_default();
let m2 = m.get(&CaptureKey::ByIndex(2)).cloned().unwrap_or_default();
let mut alias = IndexMap::new();
@@ -331,13 +329,12 @@ impl RootPackageLoader {
for (req_name, req_version) in requires {
let mut constraints: Vec<String> = vec![];
- let or_split = Preg::split(r"\s*\|\|?\s*", req_version.trim()).unwrap_or_default();
+ let or_split = Preg::split(r"\s*\|\|?\s*", req_version.trim());
for or_constraint in &or_split {
let and_split = Preg::split(
r"(?<!^|as|[=>< ,]) *(?<!-)[, ](?!-) *(?!,|as|$)",
or_constraint,
- )
- .unwrap_or_default();
+ );
for and_constraint in and_split {
constraints.push(and_constraint);
}
@@ -349,7 +346,7 @@ impl RootPackageLoader {
let mut matched = false;
for constraint in &constraints {
let mut m: IndexMap<CaptureKey, String> = IndexMap::new();
- if Preg::is_match3(&pattern, constraint, Some(&mut m)).unwrap_or(false) {
+ if Preg::is_match3(&pattern, constraint, Some(&mut m)) {
let name = strtolower(req_name);
let m1 = m.get(&CaptureKey::ByIndex(1)).cloned().unwrap_or_default();
let normalized_m1 = VersionParser::normalize_stability(&m1).unwrap_or_default();
@@ -368,9 +365,8 @@ impl RootPackageLoader {
}
for constraint in &constraints {
- let req_version_stripped =
- Preg::replace(r"^([^,\s@]+) as .+$", "$1", constraint).unwrap_or_default();
- if Preg::is_match(r"^[^,\s@]+$", &req_version_stripped).unwrap_or(false) {
+ let req_version_stripped = Preg::replace(r"^([^,\s@]+) as .+$", "$1", constraint);
+ if Preg::is_match(r"^[^,\s@]+$", &req_version_stripped) {
let stability_name = VersionParser::parse_stability(&req_version_stripped);
if stability_name != "stable" {
let name = strtolower(req_name);
@@ -394,12 +390,9 @@ impl RootPackageLoader {
mut references: IndexMap<String, String>,
) -> IndexMap<String, String> {
for (req_name, req_version) in requires {
- let req_version =
- Preg::replace(r"^([^,\s@]+) as .+$", "$1", req_version).unwrap_or_default();
+ let req_version = Preg::replace(r"^([^,\s@]+) as .+$", "$1", req_version);
let mut m: IndexMap<CaptureKey, String> = IndexMap::new();
- if Preg::is_match3(r"^[^,\s@]+?#([a-f0-9]+)$", &req_version, Some(&mut m))
- .unwrap_or(false)
- {
+ if Preg::is_match3(r"^[^,\s@]+?#([a-f0-9]+)$", &req_version, Some(&mut m)) {
if VersionParser::parse_stability(&req_version) == "dev" {
let name = strtolower(req_name);
references.insert(
diff --git a/crates/shirabe/src/package/loader/validating_array_loader.rs b/crates/shirabe/src/package/loader/validating_array_loader.rs
index 4a1e2c2..dd2642e 100644
--- a/crates/shirabe/src/package/loader/validating_array_loader.rs
+++ b/crates/shirabe/src/package/loader/validating_array_loader.rs
@@ -901,7 +901,7 @@ impl ValidatingArrayLoader {
}
if let Some(err) = Self::has_package_naming_error(&package, true) {
self.warnings.push(format!("{}.{}", link_type, err));
- } else if !Preg::is_match("{^[A-Za-z0-9_./-]+$}", &package).unwrap_or(false) {
+ } else if !Preg::is_match("{^[A-Za-z0-9_./-]+$}", &package) {
self.errors.push(format!(
"{}.{} : invalid key, package names must be strings containing only [A-Za-z0-9_./-]",
link_type, package
@@ -1161,7 +1161,7 @@ impl ValidatingArrayLoader {
}
if let Some(ref_val) = section.get("reference") {
let ref_str = php_to_string(&**ref_val);
- if Preg::is_match("{^\\s*-}", &ref_str).unwrap_or(false) {
+ if Preg::is_match("{^\\s*-}", &ref_str) {
self.errors.push(format!(
"{}.reference : must not start with a \"-\", \"{}\" given",
src_type, ref_str
@@ -1170,7 +1170,7 @@ impl ValidatingArrayLoader {
}
if let Some(url_val) = section.get("url") {
let url_str = php_to_string(&**url_val);
- if Preg::is_match("{^\\s*-}", &url_str).unwrap_or(false) {
+ if Preg::is_match("{^\\s*-}", &url_str) {
self.errors.push(format!(
"{}.url : must not start with a \"-\", \"{}\" given",
src_type, url_str
@@ -1332,9 +1332,7 @@ impl ValidatingArrayLoader {
if !Preg::is_match(
"{^[a-z0-9](?:[_.-]?[a-z0-9]++)*+/[a-z0-9](?:(?:[_.]|-{1,2})?[a-z0-9]++)*+$}iD",
name,
- )
- .unwrap_or(false)
- {
+ ) {
return Some(format!(
"{} is invalid, it should have a vendor name, a forward slash, and a package name. The vendor and package name can be words separated by -, . or _. The complete name should match \"^[a-z0-9]([_.-]?[a-z0-9]+)*/[a-z0-9](([_.]?|-{{0,2}})[a-z0-9]+)*$\".",
name
@@ -1355,14 +1353,14 @@ impl ValidatingArrayLoader {
));
}
- if Preg::is_match("{\\.json$}", name).unwrap_or(false) {
+ if Preg::is_match("{\\.json$}", name) {
return Some(format!(
"{} is invalid, package names can not end in .json, consider renaming it or perhaps using a -json suffix instead.",
name
));
}
- if Preg::is_match("{[A-Z]}", name).unwrap_or(false) {
+ if Preg::is_match("{[A-Z]}", name) {
if is_link {
return Some(format!(
"{} is invalid, it should not contain uppercase characters. Please use {} instead.",
@@ -1375,8 +1373,7 @@ impl ValidatingArrayLoader {
"{(?:([a-z])([A-Z])|([A-Z])([A-Z][a-z]))}",
"\\1\\3-\\2\\4",
name,
- )
- .unwrap_or_else(|_| name.to_string());
+ );
let suggest_name = strtolower(&suggest_name);
return Some(format!(
@@ -1394,7 +1391,7 @@ impl ValidatingArrayLoader {
}
let value = self.config[property].as_string().unwrap_or("").to_string();
- if !Preg::is_match(&format!("{{^{}$}}u", regex), &value).unwrap_or(false) {
+ if !Preg::is_match(&format!("{{^{}$}}u", regex), &value) {
let message = format!(
"{} : invalid value ({}), must match {}",
property, value, regex
@@ -1508,7 +1505,7 @@ impl ValidatingArrayLoader {
if let Some(regex_str) = regex {
let value_str = php_to_string(&*value);
- if !Preg::is_match(&format!("{{^{}$}}u", regex_str), &value_str).unwrap_or(false) {
+ if !Preg::is_match(&format!("{{^{}$}}u", regex_str), &value_str) {
self.warnings.push(format!(
"{}.{} : invalid value ({}), must match {}",
property, key, value_str, regex_str