From 78157ab3ffeca37023381a422fccda2d4a0c64af Mon Sep 17 00:00:00 2001 From: nsfisis Date: Sun, 14 Jun 2026 04:01:45 +0900 Subject: refactor(pcre): drop strict-groups Preg variants Rust's type system already distinguishes participating from non-participating capture groups via Option, so the *StrictGroups methods add no safety here. Remove them and switch callers to the plain variants. --- .../shirabe/src/package/loader/root_package_loader.rs | 8 +++----- crates/shirabe/src/package/locker.rs | 2 +- crates/shirabe/src/package/version/version_guesser.rs | 17 ++++++----------- 3 files changed, 10 insertions(+), 17 deletions(-) (limited to 'crates/shirabe/src/package') diff --git a/crates/shirabe/src/package/loader/root_package_loader.rs b/crates/shirabe/src/package/loader/root_package_loader.rs index 04ae470..476f6bd 100644 --- a/crates/shirabe/src/package/loader/root_package_loader.rs +++ b/crates/shirabe/src/package/loader/root_package_loader.rs @@ -274,7 +274,7 @@ impl RootPackageLoader { ) -> Vec> { for (req_name, req_version) in requires { let mut m: IndexMap = IndexMap::new(); - if Preg::is_match_strict_groups3( + if Preg::is_match3( r"(?:^|\| *|, *)([^,\s#|]+)(?:#[^ ]+)? +as +([^,\s|]+)(?:$| *\|| *,)", req_version, Some(&mut m), @@ -349,9 +349,7 @@ impl RootPackageLoader { let mut matched = false; for constraint in &constraints { let mut m: IndexMap = IndexMap::new(); - if Preg::is_match_strict_groups3(&pattern, constraint, Some(&mut m)) - .unwrap_or(false) - { + if Preg::is_match3(&pattern, constraint, Some(&mut m)).unwrap_or(false) { 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(); @@ -399,7 +397,7 @@ impl RootPackageLoader { let req_version = Preg::replace(r"^([^,\s@]+) as .+$", "$1", req_version).unwrap_or_default(); let mut m: IndexMap = IndexMap::new(); - if Preg::is_match_strict_groups3(r"^[^,\s@]+?#([a-f0-9]+)$", &req_version, Some(&mut m)) + if Preg::is_match3(r"^[^,\s@]+?#([a-f0-9]+)$", &req_version, Some(&mut m)) .unwrap_or(false) { if VersionParser::parse_stability(&req_version) == "dev" { diff --git a/crates/shirabe/src/package/locker.rs b/crates/shirabe/src/package/locker.rs index c61d807..8c84b4e 100644 --- a/crates/shirabe/src/package/locker.rs +++ b/crates/shirabe/src/package/locker.rs @@ -895,7 +895,7 @@ impl Locker { path.as_deref(), )? { let mut m: IndexMap = IndexMap::new(); - if Preg::is_match_strict_groups3( + if Preg::is_match3( r"{^\s*(\d+)\s*}", output.as_string().unwrap_or(""), Some(&mut m), diff --git a/crates/shirabe/src/package/version/version_guesser.rs b/crates/shirabe/src/package/version/version_guesser.rs index da67d56..562d141 100644 --- a/crates/shirabe/src/package/version/version_guesser.rs +++ b/crates/shirabe/src/package/version/version_guesser.rs @@ -210,11 +210,9 @@ impl VersionGuesser { for branch in self.process.borrow().split_lines(&output) { if !branch.is_empty() { let mut m: IndexMap = IndexMap::new(); - if Preg::is_match_strict_groups3( - r"{^(?:\* ) *(\(no branch\)|\(detached from \S+\)|\(HEAD detached at \S+\)|\S+) *([a-f0-9]+) .*$}", - &branch, - Some(&mut m), - ) + if Preg::is_match3(r"{^(?:\* ) *(\(no branch\)|\(detached from \S+\)|\(HEAD detached at \S+\)|\S+) *([a-f0-9]+) .*$}", + &branch, + Some(&mut m),) .unwrap_or(false) { let g1 = m @@ -245,11 +243,10 @@ impl VersionGuesser { if !branch.is_empty() && { let mut tmp: IndexMap = IndexMap::new(); - !Preg::is_match_strict_groups3(r"{^ *.+/HEAD }", &branch, Some(&mut tmp)) - .unwrap_or(false) + !Preg::is_match3(r"{^ *.+/HEAD }", &branch, Some(&mut tmp)).unwrap_or(false) } { let mut m: IndexMap = IndexMap::new(); - if Preg::is_match_strict_groups3( + if Preg::is_match3( r"{^(?:\* )? *((?:remotes/(?:origin|upstream)/)?[^\s/]+) *([a-f0-9]+) .*$}", &branch, Some(&mut m), @@ -761,9 +758,7 @@ impl VersionGuesser { } }; let mut m: IndexMap = IndexMap::new(); - if Preg::is_match_strict_groups3(r"{^(\d+(?:\.\d+)*)-dev$}i", &version, Some(&mut m)) - .unwrap_or(false) - { + if Preg::is_match3(r"{^(\d+(?:\.\d+)*)-dev$}i", &version, Some(&mut m)).unwrap_or(false) { return Ok(format!( "{}.x-dev", m.get(&CaptureKey::ByIndex(1)).cloned().unwrap_or_default() -- cgit v1.3.1