This PR was merged into the 3.x branch.
Discussion
----------
Fix template name in error for an unknown dynamic extends called from an include
Closes#3265
The code was introduced in #1529, but removing it nowadays does not break any existing test.
Review ignoring whitespace.
Commits
-------
4824f2a4a3 Fix template name in error for an unknown dynamic extends called from an include
This PR was merged into the 3.x branch.
Discussion
----------
Add support for accessing class constants with the dot operator
This PR allows accessing class constants from objects: `{{ foo.SOME_CONSTANT }}`. This should nicely replace the `constant()` function when an object is at hand, and is actually needed to make the `enum` function work in #4352.
Commits
-------
1ea0452323 Add support for accessing class constants with the dot operator
This PR was merged into the 3.x branch.
Discussion
----------
Fix getting a property on an object casted to an array
Closes#3371
Commits
-------
7d5269e100 Fix getting a property on an object casted to an array
This PR was merged into the 3.x branch.
Discussion
----------
Add fixture filename as key
This way, it's easier to see which test failed and what the file was.
In PHPStorm this is visualized very nice.

Commits
-------
633d70103d Add fixture filename as key
This PR was merged into the 3.x branch.
Discussion
----------
Remove useless assign in compiled code
It's already unset / initialized on catch.
Having it this way, is a bit easier for me when analyzing this in TwigStan.
Commits
-------
5c73c6695c Remove useless assign in compiled code
This PR was merged into the 3.x branch.
Discussion
----------
Fix the possibility to override an aliased block (via use)
Closes#3709
Commits
-------
955611d5bb Fix the possibility to override an aliased block (via use)
This PR was merged into the 3.x branch.
Discussion
----------
Add compile-time checks for the "matches" operator
Commits
-------
d1beac4dfa Add compile-time checks for the "matches" operator
This PR was merged into the 3.x branch.
Discussion
----------
Fix the handling of predefined arguments in CallExpression
Commits
-------
37fa03681e fix the handling of predefined arguments in CallExpression
This PR was squashed before being merged into the 3.x branch.
Discussion
----------
Allow to use a dynamic attribute on the . operator via ()
Closes#3598
As one can think that the `attribute` function has some special power compared to the `.` operator (like using Symfony PropertyAccess), I think it's better to use the `.` operator for dynamic attributes as well.
Using `()` makes it clear that the behavior is the same as the `.` operator (using `()` is similar to the way one can use dynamic mapping names (like in `{ (name): value }`).
Commits
-------
048183eaa6 Add cross-link
8d1af0fc03 Let's no deprecate the attribute function yet
333638e8e6 Allow to use a dynamic attribute on the . operator via ()
Safe classes only impact the auto-escaping of the string casting of instance of those classes.
By defining that this method only expects names of stringable classes, it allows static analysis tools to report non-working configurations (for instance for people thinking this would impact the auto-escaping for values returned by getters of a safe class).
This PR was merged into the 3.x branch.
Discussion
----------
Simplify parser calls when possible
Commits
-------
3f07d2c034 Simplify parser calls when possible
This PR was merged into the 3.x branch.
Discussion
----------
Deprecate the sandbox tag
Closes#3168
Commits
-------
9369a48c53 Deprecate the sandbox tag