@@ -84,7 +84,7 @@ private static function composeProps(array $props, Request $request, string $com
8484 $ always = static ::resolveAlwaysProps ($ props );
8585 $ partial = static ::resolvePartialProps ($ request , $ component , $ props );
8686
87- return static ::evaluateProps (array_merge ($ always , $ partial ), $ request , unpackDotProps: true );
87+ return static ::evaluateProps (array_merge ($ always , $ partial ), unpackDotProps: true );
8888 }
8989
9090 /**
@@ -131,12 +131,12 @@ private static function resolvePropKeysThatShouldDefer(array $props, Request $re
131131
132132 $ propKeysToMerge = arr ($ props )
133133 ->filter (static fn ($ prop ) => $ prop instanceof DeferProp)
134- ->map (static fn (DeferProp $ prop , string $ key ) => [
134+ ->map (static fn (DeferProp $ prop , string | int $ key ) => [
135135 'group ' => $ prop ->group ,
136136 'key ' => $ key ,
137137 ])
138- ->groupBy (static fn (array $ prop ) => $ prop ['group ' ])
139- ->map (static fn (array $ group ) => arr ($ group )->pluck (value: 'key ' )->toArray ());
138+ ->groupBy (static fn ($ prop ) => $ prop ['group ' ])
139+ ->map (static fn ($ group ) => arr ($ group )->pluck (value: 'key ' )->toArray ());
140140
141141 return $ propKeysToMerge ->isEmpty () ? null : $ propKeysToMerge ->toArray ();
142142 }
@@ -158,22 +158,22 @@ private static function resolvePropKeysThatShouldMerge(array $props, Request $re
158158
159159 /**
160160 * Evaluates props recursively.
161+ * @param array<mixed> $props
161162 * @pure
162163 * @mago-expect lint:no-boolean-flag-parameter
164+ * @mago-expect analysis:mixed-assignment
163165 */
164- private static function evaluateProps (array $ props , Request $ request , bool $ unpackDotProps = true ): array
166+ private static function evaluateProps (array $ props , bool $ unpackDotProps = true ): array
165167 {
166- return arr ($ props )->map (function ($ value , string |int $ key) use ( $ request ): array {
168+ return arr ($ props )->map (static function (mixed $ value , string |int $ key ): array {
167169 $ evaluated = $ value instanceof Closure ? invoke ($ value ) : $ value ;
168170 $ evaluated = $ evaluated instanceof CallableProp ? $ evaluated () : $ evaluated ;
169171 $ evaluated = $ evaluated instanceof ArrayInterface ? $ evaluated ->toArray () : $ evaluated ;
170- $ evaluated = is_array ($ evaluated )
171- ? self ::evaluateProps ($ evaluated , $ request , unpackDotProps: false )
172- : $ evaluated ;
172+ $ evaluated = is_array ($ evaluated ) ? static ::evaluateProps ($ evaluated , unpackDotProps: false ) : $ evaluated ;
173173
174174 return [$ key , $ evaluated ];
175175 })->reduce (
176- function (array $ acc , array $ item ) use ($ unpackDotProps ): array {
176+ static function (array $ acc , array $ item ) use ($ unpackDotProps ): array {
177177 /** @var string|int $key */
178178 [$ key , $ value ] = $ item ;
179179 if ($ unpackDotProps && is_string ($ key ) && str_contains ($ key , '. ' )) {
0 commit comments