From 716f44031a39c5e43fb441ecc470db76efc23dd4 Mon Sep 17 00:00:00 2001 From: nsfisis Date: Sun, 14 Jun 2026 11:24:36 +0900 Subject: 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 --- crates/shirabe/src/package/loader/array_loader.rs | 6 +++--- .../src/package/loader/root_package_loader.rs | 23 ++++++++-------------- .../src/package/loader/validating_array_loader.rs | 21 +++++++++----------- 3 files changed, 20 insertions(+), 30 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 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 = 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"(?< ,]) *(? = 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, ) -> IndexMap { 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 = 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 -- cgit v1.3.1