diff options
| author | nsfisis <nsfisis@gmail.com> | 2026-06-14 11:24:36 +0900 |
|---|---|---|
| committer | nsfisis <nsfisis@gmail.com> | 2026-06-14 11:28:19 +0900 |
| commit | 716f44031a39c5e43fb441ecc470db76efc23dd4 (patch) | |
| tree | e6f4a31e4bf55a0a8efb06d9dd4844c567e7390f /crates/shirabe/src/package/version | |
| parent | ef9118c788c1cbb22ca7721b6a9e40c2bf2fe243 (diff) | |
| download | php-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/version')
4 files changed, 31 insertions, 51 deletions
diff --git a/crates/shirabe/src/package/version/version_bumper.rs b/crates/shirabe/src/package/version/version_bumper.rs index 627a0fb..2f4e513 100644 --- a/crates/shirabe/src/package/version/version_bumper.rs +++ b/crates/shirabe/src/package/version/version_bumper.rs @@ -46,12 +46,11 @@ impl VersionBumper { return Ok(pretty_constraint); } - let major = Preg::replace(r"{^([1-9][0-9]*|0\.\d+).*}", "$1", &version)?; - let version_without_suffix = - Preg::replace(r"{(?:\.(?:0|9999999))+(-dev)?$}", "", &version)?; + let major = Preg::replace(r"{^([1-9][0-9]*|0\.\d+).*}", "$1", &version); + let version_without_suffix = Preg::replace(r"{(?:\.(?:0|9999999))+(-dev)?$}", "", &version); let new_pretty_constraint = format!("^{}", version_without_suffix); - if !Preg::is_match(r"{^\^\d+(\.\d+)*$}", &new_pretty_constraint)? { + if !Preg::is_match(r"{^\^\d+(\.\d+)*$}", &new_pretty_constraint) { return Ok(pretty_constraint); } @@ -71,7 +70,7 @@ impl VersionBumper { ); let mut matches: IndexMap<CaptureKey, Vec<(String, usize)>> = IndexMap::new(); - if Preg::is_match_all_with_offsets3(&pattern, &pretty_constraint, Some(&mut matches))? { + if Preg::is_match_all_with_offsets3(&pattern, &pretty_constraint, Some(&mut matches)) { let mut modified = pretty_constraint.clone(); let constraint_matches = matches .get(&CaptureKey::ByName("constraint".to_string())) diff --git a/crates/shirabe/src/package/version/version_guesser.rs b/crates/shirabe/src/package/version/version_guesser.rs index 562d141..4eb3864 100644 --- a/crates/shirabe/src/package/version/version_guesser.rs +++ b/crates/shirabe/src/package/version/version_guesser.rs @@ -130,16 +130,12 @@ impl VersionGuesser { if "-dev" == substr(version_data.version.as_deref().unwrap_or(""), -4, None) && Preg::is_match(r"{\.9{7}}", version_data.version.as_deref().unwrap_or("")) - .unwrap_or(false) { - version_data.pretty_version = Some( - Preg::replace( - r"{(\.9{7})+}", - ".x", - version_data.version.as_deref().unwrap_or(""), - ) - .unwrap_or_default(), - ); + version_data.pretty_version = Some(Preg::replace( + r"{(\.9{7})+}", + ".x", + version_data.version.as_deref().unwrap_or(""), + )); } let feature_non_empty = version_data @@ -158,16 +154,12 @@ impl VersionGuesser { r"{\.9{7}}", version_data.feature_version.as_deref().unwrap_or(""), ) - .unwrap_or(false) { - version_data.feature_pretty_version = Some( - Preg::replace( - r"{(\.9{7})+}", - ".x", - version_data.feature_version.as_deref().unwrap_or(""), - ) - .unwrap_or_default(), - ); + version_data.feature_pretty_version = Some(Preg::replace( + r"{(\.9{7})+}", + ".x", + version_data.feature_version.as_deref().unwrap_or(""), + )); } version_data @@ -210,19 +202,13 @@ impl VersionGuesser { for branch in self.process.borrow().split_lines(&output) { if !branch.is_empty() { let mut m: IndexMap<CaptureKey, String> = IndexMap::new(); - 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 - .get(&CaptureKey::ByIndex(1)) - .cloned() - .unwrap_or_default(); - let g2 = m - .get(&CaptureKey::ByIndex(2)) - .cloned() - .unwrap_or_default(); + if Preg::is_match3( + r"{^(?:\* ) *(\(no branch\)|\(detached from \S+\)|\(HEAD detached at \S+\)|\S+) *([a-f0-9]+) .*$}", + &branch, + Some(&mut m), + ) { + let g1 = m.get(&CaptureKey::ByIndex(1)).cloned().unwrap_or_default(); + let g2 = m.get(&CaptureKey::ByIndex(2)).cloned().unwrap_or_default(); if g1 == "(no branch)" || strpos(&g1, "(detached ") == Some(0) || strpos(&g1, "(HEAD detached at") == Some(0) @@ -243,16 +229,14 @@ impl VersionGuesser { if !branch.is_empty() && { let mut tmp: IndexMap<CaptureKey, String> = IndexMap::new(); - !Preg::is_match3(r"{^ *.+/HEAD }", &branch, Some(&mut tmp)).unwrap_or(false) + !Preg::is_match3(r"{^ *.+/HEAD }", &branch, Some(&mut tmp)) } { let mut m: IndexMap<CaptureKey, String> = IndexMap::new(); if Preg::is_match3( r"{^(?:\* )? *((?:remotes/(?:origin|upstream)/)?[^\s/]+) *([a-f0-9]+) .*$}", &branch, Some(&mut m), - ) - .unwrap_or(false) - { + ) { branches.push(m.get(&CaptureKey::ByIndex(1)).cloned().unwrap_or_default()); } } @@ -498,8 +482,7 @@ impl VersionGuesser { ) .is_some(); if !has_branch_alias || has_self_version { - let branch = - Preg::replace(r"{^dev-}", "", version.as_deref().unwrap_or("")).unwrap_or_default(); + let branch = Preg::replace(r"{^dev-}", "", version.as_deref().unwrap_or("")); let mut length: i64 = PHP_INT_MAX; // return directly, if branch is configured to be non-feature branch @@ -532,8 +515,7 @@ impl VersionGuesser { let mut last_index: i64 = -1; for (index, candidate) in branches.iter().enumerate() { let index = index as i64; - let candidate_version = - Preg::replace(r"{^remotes/\S+/}", "", candidate).unwrap_or_default(); + let candidate_version = Preg::replace(r"{^remotes/\S+/}", "", candidate); // do not compare against itself or other feature branches if candidate == &branch @@ -613,7 +595,6 @@ impl VersionGuesser { ), branch_name.unwrap_or(""), ) - .unwrap_or(false) } /// @return array{version: string|null, commit: '', pretty_version: string|null} @@ -700,7 +681,7 @@ impl VersionGuesser { trunk_path, branches_path, tags_path, ); - if let Some(matches) = Preg::is_match_with_indexed_captures(&url_pattern, &output)? { + if let Some(matches) = Preg::is_match_with_indexed_captures(&url_pattern, &output) { let m1 = matches.get(1).cloned().unwrap_or_default(); let m2 = matches.get(2).cloned(); let m3 = matches.get(3).cloned(); @@ -758,7 +739,7 @@ impl VersionGuesser { } }; let mut m: IndexMap<CaptureKey, String> = IndexMap::new(); - if Preg::is_match3(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)) { return Ok(format!( "{}.x-dev", m.get(&CaptureKey::ByIndex(1)).cloned().unwrap_or_default() diff --git a/crates/shirabe/src/package/version/version_parser.rs b/crates/shirabe/src/package/version/version_parser.rs index 1b588bc..e600c37 100644 --- a/crates/shirabe/src/package/version/version_parser.rs +++ b/crates/shirabe/src/package/version/version_parser.rs @@ -45,11 +45,11 @@ impl VersionParser { let count = pairs.len(); let mut i = 0_usize; while i < count { - let mut pair = Preg::replace(r"{^([^=: ]+)[=: ](.*)$}", "$1 $2", &pairs[i].trim())?; + let mut pair = Preg::replace(r"{^([^=: ]+)[=: ](.*)$}", "$1 $2", &pairs[i].trim()); if !pair.contains(' ') && i + 1 < count && !pairs[i + 1].contains('/') - && !Preg::is_match(r"{(?<=[a-z0-9_/-])\*|\*(?=[a-z0-9_/-])}i", &pairs[i + 1])? + && !Preg::is_match(r"{(?<=[a-z0-9_/-])\*|\*(?=[a-z0-9_/-])}i", &pairs[i + 1]) && !PlatformRepository::is_platform_package(&pairs[i + 1]) { pair += &format!(" {}", pairs[i + 1]); diff --git a/crates/shirabe/src/package/version/version_selector.rs b/crates/shirabe/src/package/version/version_selector.rs index d4ce4c1..872ca93 100644 --- a/crates/shirabe/src/package/version/version_selector.rs +++ b/crates/shirabe/src/package/version/version_selector.rs @@ -282,7 +282,7 @@ impl VersionSelector { if let Some(extra) = extra { if extra != VersionParser::DEFAULT_BRANCH_ALIAS { let new_extra = - Preg::replace(r"{^(\d+\.\d+\.\d+)(\.9999999)-dev$}", "$1.0", &extra)?; + Preg::replace(r"{^(\d+\.\d+\.\d+)(\.9999999)-dev$}", "$1.0", &extra); if new_extra != extra { let new_extra = new_extra.replace(".9999999", ".0"); return self.transform_version(&new_extra, &new_extra, "dev"); @@ -302,7 +302,7 @@ impl VersionSelector { let semantic_version_parts: Vec<&str> = version.split('.').collect(); if semantic_version_parts.len() == 4 - && Preg::is_match(r"{^\d+\D?}", semantic_version_parts[3]).unwrap_or(false) + && Preg::is_match(r"{^\d+\D?}", semantic_version_parts[3]) { let mut parts: Vec<String> = semantic_version_parts .iter() |
