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 squashed before being merged into the 3.x branch.
Discussion
----------
Improve escape deprecation message
This was introduced in https://github.com/twigphp/Twig/pull/4176
According to #4343 the message can be improved.
I made a few changes to the test to make it easier to work with. Best to review this PR **commit by commit**.
/cc `@stof`
Commits
-------
7256713c86 Improve escape deprecation message
This PR was merged into the 3.x branch.
Discussion
----------
Be more precise about double-escaping
Closes#3918
Commits
-------
fe3d615aa4 Be more precise about double-escaping
This PR was merged into the 3.x branch.
Discussion
----------
Add start/end time accessors on Profile
Closes#3418
Commits
-------
f83c844b7d Add start/end time accessors on Profile
This PR was merged into the 3.x branch.
Discussion
----------
Fix 'ignore missing' when used on an 'embed' tag
Closes#3085
Commits
-------
09790a7542 Fix 'ignore missing' when used on an 'embed' tag
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 squashed before being merged into the 3.x branch.
Discussion
----------
Add template cache hot reload
Closes#3880
This PR achieves 2 things in the minimum amount of code (in 2 commits):
* It adds a new `RemovableCacheInterface` that allows cache to be removed.
* It adds a memory cache to allow updating existing templates in the same process (think FrakenPHP for instance) without polluting the permanent cache.
Commits
-------
00ba8046b0 Add test
dca5099aad Add hot cache reload for templates
786a67b1a9 Add RemovableCacheInterface
This PR was merged into the 3.x branch.
Discussion
----------
Add some tests
Closes#3691
The bug described in #3691 has been fixed via #3999.
This PR adds tests to prove it works now and to avoid future regressions.
Commits
-------
85c2ba5147 Add some tests
This PR was merged into the 3.x branch.
Discussion
----------
Optimize compiled code for "set" tag
Commits
-------
9855e35d44 Optimize compiled code for "set" tag
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
----------
Add return types in FileystemLoader
Commits
-------
15279ca8ee Add return types in FileystemLoader
This PR was merged into the 3.x branch.
Discussion
----------
[Doc] Document about `html` and `html_attr` strategies
Ref #4322
Commits
-------
ac88c9ae75 [Doc] Document about `html` and `html_attr` strategies
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 merged into the 3.x branch.
Discussion
----------
Use a more precise return type in AbstractTwigCallable
This method is not expected to change the type of callable.
As using it is the only way to configure arguments for a Twig callable (there is no constructor argument for them), it avoids getting static analysis errors in `Extension::getFunctions()` when using it.
Commits
-------
ebbbaf7069 Use a more precise return type in AbstractTwigCallable
This PR was squashed before being merged into the 3.x branch.
Discussion
----------
Allow Twig callable arguments to use camel or snake names
Closes#3475
Twig callables (functions/filters/tests) now accept snake and camel argument names independently of the name of the underlying PHP callable parameter names.
Commits
-------
52ded207d3 Allow Twig callable arguments to use camel or snake names
This PR was merged into the 3.x branch.
Discussion
----------
fix intl-extra tests
The Caribbean guilder was added in symfony/symfony#58183.
Commits
-------
c5486b07b9 fix intl-extra tests
This PR was merged into the 3.x branch.
Discussion
----------
[Doc] Provide an alternative for the deprecated spaceless filter
When a feature is deprecated, it's recommended to provide an alternative for it (or mention that there's no alternative).
So, let's mention the whitespace control features in the deprecation message of the `spaceless` filter.
Commits
-------
5a94ddc76e Suggest wording
b5d19ee4be [Doc] Provide an alternative for the deprecated spaceless filter
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 ()