diff --git a/CHANGELOG b/CHANGELOG index cbe48fa0c7..1f5a4cbe38 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,5 +1,6 @@ * 1.42.1 (2019-XX-XX) + * added support for "Twig\Markup" instances in the "in" test (again) * allowed string operators as variables names in assignments * 1.42.0 (2019-05-31) diff --git a/src/Extension/CoreExtension.php b/src/Extension/CoreExtension.php index 2e564ebe78..80ced9815c 100644 --- a/src/Extension/CoreExtension.php +++ b/src/Extension/CoreExtension.php @@ -943,6 +943,9 @@ function twig_in_filter($value, $compare) if ($value instanceof Markup) { $value = (string) $value; } + if ($compare instanceof Markup) { + $compare = (string) $compare; + } if (\is_array($compare)) { return \in_array($value, $compare, \is_object($value) || \is_resource($value)); diff --git a/test/Twig/Tests/Fixtures/tests/in.test b/test/Twig/Tests/Fixtures/tests/in.test index e3ebf05590..f7b172e8d0 100644 --- a/test/Twig/Tests/Fixtures/tests/in.test +++ b/test/Twig/Tests/Fixtures/tests/in.test @@ -56,6 +56,7 @@ Twig supports the in operator {{ '5.5' in 125.5 ? 'KO' : 'OK' }} {{ safe in ['foo', 'bar'] ? 'OK' : 'KO' }} +{{ 'fo' in safe ? 'OK' : 'KO' }} --DATA-- return ['bar' => 'bar', 'foo' => ['bar' => 'bar'], 'dir_object' => new \SplFileInfo(dirname(__FILE__)), 'object' => new \stdClass(), 'resource' => opendir(dirname(__FILE__)), 'safe' => new \Twig\Markup('foo', 'UTF-8')] --EXPECT-- @@ -114,3 +115,4 @@ OK OK OK +OK