diff --git a/src/Node/Expression/Binary/EqualBinary.php b/src/Node/Expression/Binary/EqualBinary.php index 80ca26447..6b48549ef 100644 --- a/src/Node/Expression/Binary/EqualBinary.php +++ b/src/Node/Expression/Binary/EqualBinary.php @@ -24,11 +24,11 @@ class EqualBinary extends AbstractBinary } $compiler - ->raw('0 === twig_compare(') + ->raw('(0 === twig_compare(') ->subcompile($this->getNode('left')) ->raw(', ') ->subcompile($this->getNode('right')) - ->raw(')') + ->raw('))') ; } diff --git a/src/Node/Expression/Binary/GreaterBinary.php b/src/Node/Expression/Binary/GreaterBinary.php index f1af1275b..e1dd06780 100644 --- a/src/Node/Expression/Binary/GreaterBinary.php +++ b/src/Node/Expression/Binary/GreaterBinary.php @@ -24,11 +24,11 @@ class GreaterBinary extends AbstractBinary } $compiler - ->raw('1 === twig_compare(') + ->raw('(1 === twig_compare(') ->subcompile($this->getNode('left')) ->raw(', ') ->subcompile($this->getNode('right')) - ->raw(')') + ->raw('))') ; } diff --git a/src/Node/Expression/Binary/GreaterEqualBinary.php b/src/Node/Expression/Binary/GreaterEqualBinary.php index 7d206f7c8..df9bfcfbf 100644 --- a/src/Node/Expression/Binary/GreaterEqualBinary.php +++ b/src/Node/Expression/Binary/GreaterEqualBinary.php @@ -24,11 +24,11 @@ class GreaterEqualBinary extends AbstractBinary } $compiler - ->raw('0 <= twig_compare(') + ->raw('(0 <= twig_compare(') ->subcompile($this->getNode('left')) ->raw(', ') ->subcompile($this->getNode('right')) - ->raw(')') + ->raw('))') ; } diff --git a/src/Node/Expression/Binary/LessBinary.php b/src/Node/Expression/Binary/LessBinary.php index e85193324..598e62913 100644 --- a/src/Node/Expression/Binary/LessBinary.php +++ b/src/Node/Expression/Binary/LessBinary.php @@ -24,11 +24,11 @@ class LessBinary extends AbstractBinary } $compiler - ->raw('-1 === twig_compare(') + ->raw('(-1 === twig_compare(') ->subcompile($this->getNode('left')) ->raw(', ') ->subcompile($this->getNode('right')) - ->raw(')') + ->raw('))') ; } diff --git a/src/Node/Expression/Binary/LessEqualBinary.php b/src/Node/Expression/Binary/LessEqualBinary.php index dccaf31aa..e3c4af58d 100644 --- a/src/Node/Expression/Binary/LessEqualBinary.php +++ b/src/Node/Expression/Binary/LessEqualBinary.php @@ -24,11 +24,11 @@ class LessEqualBinary extends AbstractBinary } $compiler - ->raw('0 >= twig_compare(') + ->raw('(0 >= twig_compare(') ->subcompile($this->getNode('left')) ->raw(', ') ->subcompile($this->getNode('right')) - ->raw(')') + ->raw('))') ; } diff --git a/src/Node/Expression/Binary/NotEqualBinary.php b/src/Node/Expression/Binary/NotEqualBinary.php index 04eb54605..db47a2890 100644 --- a/src/Node/Expression/Binary/NotEqualBinary.php +++ b/src/Node/Expression/Binary/NotEqualBinary.php @@ -24,11 +24,11 @@ class NotEqualBinary extends AbstractBinary } $compiler - ->raw('0 !== twig_compare(') + ->raw('(0 !== twig_compare(') ->subcompile($this->getNode('left')) ->raw(', ') ->subcompile($this->getNode('right')) - ->raw(')') + ->raw('))') ; } diff --git a/tests/Fixtures/expressions/comparison_precedence.test b/tests/Fixtures/expressions/comparison_precedence.test new file mode 100644 index 000000000..db20a6ec9 --- /dev/null +++ b/tests/Fixtures/expressions/comparison_precedence.test @@ -0,0 +1,14 @@ +--TEST-- +Twig comparison operators precendence +--TEMPLATE-- +{{ not(1 > 2) }}/{{ not(1 > 1) }}/{{ not(1 >= 2) }}/{{ not(1 >= 1) }} +{{ not(1 < 2) }}/{{ not(1 < 1) }}/{{ not(1 <= 2) }}/{{ not(1 <= 1) }} +{{ not(1 == 1) }}/{{ not(1 == 2) }} +{{ not(1 != 1) }}/{{ not(1 != 2) }} +--DATA-- +return [] +--EXPECT-- +1/1/1/ +/1// +/1 +1/