From fed0a6e7ac361af9b963c1f62411b1a85478230c Mon Sep 17 00:00:00 2001 From: nsfisis Date: Tue, 18 Aug 2026 01:57:02 +0900 Subject: refactor(preg): add preg_is_match for existence-only call sites The capture groups were discarded at 162 of the preg_match call sites, which only tested the Option. They now call preg_is_match, which lets the regex engine skip capture tracking. Co-Authored-By: Claude Opus 5 (1M context) --- crates/shirabe-php-shim/src/preg.rs | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'crates/shirabe-php-shim/src') diff --git a/crates/shirabe-php-shim/src/preg.rs b/crates/shirabe-php-shim/src/preg.rs index d36d61c7..c4060a34 100644 --- a/crates/shirabe-php-shim/src/preg.rs +++ b/crates/shirabe-php-shim/src/preg.rs @@ -149,6 +149,14 @@ pub fn preg_quote(str: &str, delimiter: Option) -> String { out } +// Whether the pattern matches, for the call sites that ignore the capture groups. +pub fn preg_is_match(pattern: impl PregPattern, subject: &str) -> bool { + let __resolved = pattern.resolve(); + let re = __resolved.regex(); + + re.is_match(subject) +} + // Returns None if the pattern did not match; otherwise the match's capture groups. pub fn preg_match<'h>(pattern: impl PregPattern, subject: &'h str) -> Option> { let __resolved = pattern.resolve(); -- cgit v1.3.1-4-g156e