diff --git a/src/Symfony/Component/Validator/Util/LegacyTranslatorProxy.php b/src/Symfony/Component/Validator/Util/LegacyTranslatorProxy.php index 51218e7c57..d9deeaa5fd 100644 --- a/src/Symfony/Component/Validator/Util/LegacyTranslatorProxy.php +++ b/src/Symfony/Component/Validator/Util/LegacyTranslatorProxy.php @@ -22,15 +22,26 @@ class LegacyTranslatorProxy implements LegacyTranslatorInterface, TranslatorInte { private $translator; - public function __construct(TranslatorInterface $translator) + /** + * @param LegacyTranslatorInterface|TranslatorInterface $translator + */ + public function __construct($translator) { - if (!$translator instanceof LocaleAwareInterface) { + if ($translator instanceof LegacyTranslatorInterface) { + // no-op + } elseif (!$translator instanceof TranslatorInterface) { + throw new \InvalidArgumentException(sprintf('The translator passed to "%s()" must implement "%s" or "%s".', __METHOD__, TranslatorInterface::class, LegacyTranslatorInterface::class)); + } elseif (!$translator instanceof LocaleAwareInterface) { throw new \InvalidArgumentException(sprintf('The translator passed to "%s()" must implement "%s".', __METHOD__, LocaleAwareInterface::class)); } + $this->translator = $translator; } - public function getTranslator(): TranslatorInterface + /** + * @return LegacyTranslatorInterface|TranslatorInterface + */ + public function getTranslator() { return $this->translator; }