regexShapeMatcher = $regexShapeMatcher; } public function isStaticMethodSupported(MethodReflection $methodReflection, ParameterReflection $parameter): bool { return $methodReflection->getDeclaringClass()->getName() === Preg::class && in_array($methodReflection->getName(), [ 'match', 'isMatch', 'matchStrictGroups', 'isMatchStrictGroups', 'matchAll', 'isMatchAll', 'matchAllStrictGroups', 'isMatchAllStrictGroups' ], true) && $parameter->getName() === 'matches'; } public function getParameterOutTypeFromStaticMethodCall( MethodReflection $methodReflection, StaticCall $methodCall, ParameterReflection $parameter, Scope $scope, ): ?Type { $args = $methodCall->getArgs(); $patternArg = $args[0] ?? null; $matchesArg = $args[2] ?? null; $flagsArg = $args[3] ?? null; if ( $patternArg === null || $matchesArg === null ) { return null; } $flagsType = PregMatchFlags::getType($flagsArg, $scope); if ($flagsType === null) { return null; } if (stripos($methodReflection->getName(), 'matchAll') !== false) { return $this->regexShapeMatcher->matchAllExpr($patternArg->value, $flagsType, TrinaryLogic::createMaybe(), $scope); } return $this->regexShapeMatcher->matchExpr($patternArg->value, $flagsType, TrinaryLogic::createMaybe(), $scope); } }__halt_compiler();----SIGNATURE:----ffZKAq1FOCSVi4MA0pwcb9fvnwJpWyAbcyg8IghRp8i9ubZuB0AOj11qmZu65wup6UU3vxnxjrMJtlVT1mSB0TTGEzWs7/WVDcL3bNkEpBzGmfQ2URymuAuV+KjOIypTHD/EkHdO8hFCN6NbqzavSCZAvOngyhZDJIMFq/i1c13MC2E5yNnUmbCzvoda9aJ+rft7mKNC8L5SInsl1YiHpm1H3gNgt55ii9GxMjj+CQS6VrWx56GA/Aj0AZVyPmtnCg1akN6PM/gu6NpGV7YOaIK7dyfDRhpNWmDLcCMZatAsYYO5iRk4qK75Rm54wE1fT0oKvOJI2ZQhxq/K1URM8oOECmqFxf+sh6Cbk9IvP376B6TDtG5anJHWpbMaGZZSTCZYGUZD6EaUZMzKF0ELJb7qwnINRzX5dEfB8CrlSMS8ZAtri85rDXUEPdSL0h9twL0ijg9bJfXT8Xx1eCooqISRQgNRe4o84RTIchQjXH7QupHmJQp4KaH20C9KQ3pnpsKFYuB2TUm3dTlsjAGwq+tkMk2YycpEE3rXl2atIx04UVLiZSGuecdKavJKH/bzKBR7IFKGilcnU3e3643APUZliUIyQnO5jEDhwsyV2OUr8mijzfd3haAssIk0u4af3EeAYIFjzld6wcueIPVKzQTNzP/ageJkhOSApI4MWfI=----ATTACHMENT:----Nzc5MjY5NjEzMTE3OTQzNyAzMjAzNTAzNTM1NTc2OTY0IDIwNzE3MzAzOTk0MzY0Nzc=