Skip to content

Commit 9ce9895

Browse files
committed
prevent double deprecation message
1 parent e3162d8 commit 9ce9895

File tree

1 file changed

+8
-7
lines changed

1 file changed

+8
-7
lines changed

Constraints/ExpressionValidator.php

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -27,15 +27,16 @@ class ExpressionValidator extends ConstraintValidator
2727

2828
public function __construct(/*ExpressionLanguage */$expressionLanguage = null)
2929
{
30-
if (!$expressionLanguage instanceof ExpressionLanguage) {
31-
if (null !== $expressionLanguage) {
32-
@trigger_error(sprintf('The "%s" first argument must be an instance of "%s" or null since 4.4. "%s" given', __METHOD__, ExpressionLanguage::class, \is_object($expressionLanguage) ? \get_class($expressionLanguage) : \gettype($expressionLanguage)), E_USER_DEPRECATED);
33-
}
30+
if (\func_num_args() > 1) {
31+
@trigger_error(sprintf('The "%s" instance should be passed as "%s" first argument instead of second argument since 4.4.', ExpressionLanguage::class, __METHOD__), E_USER_DEPRECATED);
32+
33+
$expressionLanguage = func_get_arg(1);
3434

35-
if (\func_num_args() > 1 && func_get_arg(1) instanceof ExpressionLanguage) {
36-
@trigger_error(sprintf('The "%s" instance should be passed as "%s" first argument instead of second argument since 4.4.', ExpressionLanguage::class, __METHOD__), E_USER_DEPRECATED);
37-
$expressionLanguage = func_get_arg(1);
35+
if (null !== $expressionLanguage && !$expressionLanguage instanceof ExpressionLanguage) {
36+
throw new \TypeError(sprintf('Argument 2 passed to %s() must be an instance of %s or null, %s given. Since 4.4, passing it as the second argument is deprecated and will trigger a deprecation. Pass it as the first argument instead.', __METHOD__, ExpressionLanguage::class, \is_object($expressionLanguage) ? \get_class($expressionLanguage) : \gettype($expressionLanguage)));
3837
}
38+
} elseif (null !== $expressionLanguage && !$expressionLanguage instanceof ExpressionLanguage) {
39+
@trigger_error(sprintf('The "%s" first argument must be an instance of "%s" or null since 4.4. "%s" given', __METHOD__, ExpressionLanguage::class, \is_object($expressionLanguage) ? \get_class($expressionLanguage) : \gettype($expressionLanguage)), E_USER_DEPRECATED);
3940
}
4041

4142
$this->expressionLanguage = $expressionLanguage;

0 commit comments

Comments
 (0)