From 704ba2d87733657dea852fa697fc6d23a961a71b Mon Sep 17 00:00:00 2001 From: nsfisis Date: Mon, 17 Aug 2026 04:18:59 +0900 Subject: refactor(preg): replace Preg::split*() with shim preg_split*() preg_split2()'s limit was always -1 and its flags were always either 0 or PREG_SPLIT_DELIM_CAPTURE alone, so both arguments are gone: the shim now exposes preg_split() and preg_split_delim_capture() over a shared preg_split_impl(). That leaves Preg::split()/split4() as bare pass-throughs, so callers use the shim functions directly and the wrappers are dropped along with the now-unreferenced PREG_SPLIT_* constants. Co-Authored-By: Claude Opus 5 (1M context) --- crates/shirabe/tests/all_functional_test.rs | 9 ++------- crates/shirabe/tests/common/io_mock.rs | 4 ++-- crates/shirabe/tests/dependency_resolver/pool_builder_test.rs | 10 ++-------- .../shirabe/tests/dependency_resolver/pool_optimizer_test.rs | 10 ++-------- crates/shirabe/tests/installer_test.rs | 9 ++------- 5 files changed, 10 insertions(+), 32 deletions(-) (limited to 'crates/shirabe/tests') diff --git a/crates/shirabe/tests/all_functional_test.rs b/crates/shirabe/tests/all_functional_test.rs index 9ca09dc4..7d71c649 100644 --- a/crates/shirabe/tests/all_functional_test.rs +++ b/crates/shirabe/tests/all_functional_test.rs @@ -9,7 +9,7 @@ use indexmap::IndexMap; use serial_test::serial; use shirabe::util::filesystem::Filesystem; use shirabe_pcre::preg::Preg; -use shirabe_php_shim::{CaptureKey, PREG_SPLIT_DELIM_CAPTURE, PhpMixed, intval, php_regex}; +use shirabe_php_shim::{CaptureKey, PhpMixed, intval, php_regex, preg_split_delim_capture}; use std::path::{Path, PathBuf}; /// ref: AllFunctionalTest's `$oldcwd` / `$testDir` instance state plus its `setUp`/`tearDown`. @@ -66,12 +66,7 @@ fn unique_tmp_directory() -> PathBuf { // ref: AllFunctionalTest::parseTestFile fn parse_test_file(file: &Path) -> IndexMap { let contents = std::fs::read_to_string(file).unwrap(); - let tokens = Preg::split4( - php_regex!(r"#(?:^|\n*)--([A-Z-]+)--\n#"), - &contents, - -1, - PREG_SPLIT_DELIM_CAPTURE, - ); + let tokens = preg_split_delim_capture(php_regex!(r"#(?:^|\n*)--([A-Z-]+)--\n#"), &contents); let mut data: IndexMap = IndexMap::new(); let mut section: Option = None; diff --git a/crates/shirabe/tests/common/io_mock.rs b/crates/shirabe/tests/common/io_mock.rs index 7ea3059c..c1bd5e00 100644 --- a/crates/shirabe/tests/common/io_mock.rs +++ b/crates/shirabe/tests/common/io_mock.rs @@ -6,7 +6,7 @@ use shirabe::io::io_interface; use shirabe::io::{IOInterface, IOInterfaceImmutable, IOInterfaceMutable}; use shirabe::util::platform::Platform; use shirabe_pcre::Preg; -use shirabe_php_shim::{PHP_EOL, PhpMixed, php_regex, preg_quote}; +use shirabe_php_shim::{PHP_EOL, PhpMixed, php_regex, preg_quote, preg_split}; use shirabe_symfony_console::output::output_interface; use std::collections::VecDeque; @@ -126,7 +126,7 @@ impl IOMock { }; if !expectations.is_empty() { - let mut lines: VecDeque = Preg::split(php_regex!("{\r?\n}"), &output).into(); + let mut lines: VecDeque = preg_split(php_regex!("{\r?\n}"), &output).into(); let mut auth_log: VecDeque<(String, String, Option)> = self.auth_log.clone().into(); diff --git a/crates/shirabe/tests/dependency_resolver/pool_builder_test.rs b/crates/shirabe/tests/dependency_resolver/pool_builder_test.rs index 23f25957..a4d118ee 100644 --- a/crates/shirabe/tests/dependency_resolver/pool_builder_test.rs +++ b/crates/shirabe/tests/dependency_resolver/pool_builder_test.rs @@ -20,8 +20,7 @@ use shirabe::repository::lock_array_repository::LockArrayRepository; use shirabe::repository::repository_factory::RepositoryFactory; use shirabe::repository::repository_set::{RepositorySet, RootAliasInput}; use shirabe_pcre::preg::Preg; -use shirabe_php_shim::PhpMixed; -use shirabe_php_shim::{PREG_SPLIT_DELIM_CAPTURE, php_regex}; +use shirabe_php_shim::{PhpMixed, php_regex, preg_split_delim_capture}; use std::path::PathBuf; /// Maps the PHP `$loadPackage` closure: pops the optional `id` from the data, loads the @@ -57,12 +56,7 @@ fn load_package( fn read_test_file(file: &str, fixtures_dir: &str) -> IndexMap { let contents = shirabe_php_shim::file_get_contents(file).unwrap(); - let tokens = Preg::split4( - php_regex!(r"#(?:^|\n*)--([A-Z-]+)--\n#"), - &contents, - -1, - PREG_SPLIT_DELIM_CAPTURE, - ); + let tokens = preg_split_delim_capture(php_regex!(r"#(?:^|\n*)--([A-Z-]+)--\n#"), &contents); // PHP section_info is a map of name => required flag. let section_info: Vec<(&str, bool)> = vec![ diff --git a/crates/shirabe/tests/dependency_resolver/pool_optimizer_test.rs b/crates/shirabe/tests/dependency_resolver/pool_optimizer_test.rs index 5e5ab1d6..8c08e1c0 100644 --- a/crates/shirabe/tests/dependency_resolver/pool_optimizer_test.rs +++ b/crates/shirabe/tests/dependency_resolver/pool_optimizer_test.rs @@ -12,8 +12,7 @@ use shirabe::package::version::version_parser::VersionParser; use shirabe::repository::handle::LockArrayRepositoryHandle; use shirabe::repository::lock_array_repository::LockArrayRepository; use shirabe_pcre::preg::Preg; -use shirabe_php_shim::PhpMixed; -use shirabe_php_shim::{PREG_SPLIT_DELIM_CAPTURE, php_regex}; +use shirabe_php_shim::{PhpMixed, php_regex, preg_split_delim_capture}; use std::path::PathBuf; fn load_package(package_data: &PhpMixed) -> BasePackageHandle { @@ -61,12 +60,7 @@ fn reduce_packages_info_for_comparison(packages: &[BasePackageHandle]) -> Vec IndexMap { let contents = shirabe_php_shim::file_get_contents(file).unwrap(); - let tokens = Preg::split4( - php_regex!(r"#(?:^|\n*)--([A-Z-]+)--\n#"), - &contents, - -1, - PREG_SPLIT_DELIM_CAPTURE, - ); + let tokens = preg_split_delim_capture(php_regex!(r"#(?:^|\n*)--([A-Z-]+)--\n#"), &contents); let section_info: Vec<&str> = vec!["TEST", "REQUEST", "POOL-BEFORE", "POOL-AFTER"]; diff --git a/crates/shirabe/tests/installer_test.rs b/crates/shirabe/tests/installer_test.rs index a4c04c00..7b86be89 100644 --- a/crates/shirabe/tests/installer_test.rs +++ b/crates/shirabe/tests/installer_test.rs @@ -43,7 +43,7 @@ use shirabe::util::platform::Platform; use shirabe::util::process_executor::ProcessExecutor; use shirabe_class_map_generator::class_map::ClassMap; use shirabe_pcre::preg::Preg; -use shirabe_php_shim::{PREG_SPLIT_DELIM_CAPTURE, PhpMixed, php_regex}; +use shirabe_php_shim::{PhpMixed, php_regex, preg_split_delim_capture}; use shirabe_semver::VersionParser; use shirabe_semver::constraint::AnyConstraint; use shirabe_symfony_console::command::Command as SymfonyCommand; @@ -580,12 +580,7 @@ fn read_test_file( fixtures_dir: &std::path::Path, ) -> IndexMap { let contents = std::fs::read_to_string(file).unwrap(); - let tokens = Preg::split4( - php_regex!(r"#(?:^|\n*)--([A-Z-]+)--\n#"), - &contents, - -1, - PREG_SPLIT_DELIM_CAPTURE, - ); + let tokens = preg_split_delim_capture(php_regex!(r"#(?:^|\n*)--([A-Z-]+)--\n#"), &contents); let section_info: [(&str, bool); 13] = [ ("TEST", true), -- cgit v1.3.1-4-g156e