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:----GL9CpdvbnRuPQ++zFU/NSQ6WCeabRvehtu5vB6k9p6TbZ448h3CyHxP3Z6+bN1R8sayfq0115V07g9kFzZsuPvEPwHtbf45uI8VIixoC/18CYgiFmjXiml00P3bEImvDJqQMQLjdDc3fvs+EWC+WxHic2FQgXWN7CkMfnXczn4jKWWkuZZOMcIe6gMuOYb7Cd+YK4O2MZIYH1VBoxbhU+uikB0q4763t7gGMgg+BnFJOI96mlDpaSo3RoFBeXQUqS4Nv83dk/pJWB57SIwMMMFC+kQ13mBNaeCFitIWX1rk7grrpNrmEuokNH/vB4hLCxL5DOcfwBrUm/37sH+bTzBC6BMO7xn71r7yw9YXgprElp+jTyzlqc8cwuQmmLgZKI22S8gJQMipHCbOgTs82EaY+l4wxte1bdUBQg2xzwTHcSgNK5a3LSqfWR2MjDSUlsxo7wRaOO2e5HjLQjcbLs2rwea/wOH0duH+NRSuHWOQ7yO9MRtFBEnuMrZHtuxUxGTlAFQO+ic5Rhn+pb/lZZwbADXHp+6Yq21ZfGDomHvoxhUbd5k59ra4nXELG/cDFKHf9Pu0oe8ADf4uArmOfkeHm/VlDwrsYQGZ81lfQxZFlWYzhOf3mtklTVP8x9UpXX9BIIK18aM5xGtoxcMS8L4I/uQ6UDcj72cMSEhWOkPI=----ATTACHMENT:----NTM0OTk3NTE4Mjc4OTM0NyAzNzE2MzU2MjgwMTk4OTU1IDQ0MDIzMTExODU1ODAzMzM=