From 52a0665acbbe5bf5b8c6875118fb9cdf7952453b Mon Sep 17 00:00:00 2001 From: nsfisis Date: Mon, 17 Aug 2026 06:43:52 +0900 Subject: refactor(preg): wrap the preg_* $matches maps in newtypes The five IndexMap shapes that the preg_* functions and Preg fill in are now distinct types generated by preg_match_map!, so a matches map no longer interchanges with any other map of the same key and value type. Index is kept alongside Index<&Q> because call sites such as config_command and event_dispatcher reach for a group by its position in the map rather than by its capture key. --- crates/shirabe/src/autoload/autoload_generator.rs | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'crates/shirabe/src/autoload') diff --git a/crates/shirabe/src/autoload/autoload_generator.rs b/crates/shirabe/src/autoload/autoload_generator.rs index 91df1749..9a4a4c26 100644 --- a/crates/shirabe/src/autoload/autoload_generator.rs +++ b/crates/shirabe/src/autoload/autoload_generator.rs @@ -23,7 +23,7 @@ use crate::util::Platform; use indexmap::IndexMap; use shirabe_class_map_generator::class_map::ClassMap; use shirabe_class_map_generator::class_map_generator::ClassMapGenerator; -use shirabe_pcre::{CaptureKey, Preg}; +use shirabe_pcre::{CaptureKey, Preg, PregMatchedGroups}; use shirabe_php_shim::{ InvalidArgumentException, PhpMixed, array_keys, array_map, array_merge_map, array_merge_recursive, array_shift, array_slice_strs, array_unique, bin2hex, explode, @@ -559,7 +559,7 @@ return array( { let content = file_get_contents(format!("{}/autoload.php", vendor_path)).unwrap_or_default(); - let mut matches: IndexMap = IndexMap::new(); + let mut matches = PregMatchedGroups::new(); if Preg::match3( php_regex!("{ComposerAutoloaderInit([^:\\s]+)::}"), &content, @@ -1155,7 +1155,7 @@ return array( let package = &item.0; let links = array_merge_map(package.get_replaces(), package.get_provides()); for (_k, link) in &links { - let mut matches: IndexMap = IndexMap::new(); + let mut matches = PregMatchedGroups::new(); if Preg::match3( php_regex!("{^ext-(.+)$}iD"), link.get_target(), @@ -1201,7 +1201,7 @@ return array( required_php_64bit = true; } - let mut matches: IndexMap = IndexMap::new(); + let mut matches = PregMatchedGroups::new(); if check_platform.as_bool() == Some(true) && Preg::match3( php_regex!("{^ext-(.+)$}iD"), @@ -1950,7 +1950,7 @@ class ComposerStaticInit{} std::cell::RefCell::new(None); let p = Preg::replace_callback( php_regex!("{^((?:(?:\\\\\\.){1,2}+/)+)}"), - |matches: &IndexMap| -> String { + |matches: &PregMatchedGroups| -> String { // undo preg_quote for the matched string *updir_cell.borrow_mut() = Some(str_replace( "\\.", -- cgit v1.3.1-4-g156e