This PR was squashed before being merged into the 3.x branch.
Discussion
----------
Rework macros handling
Commits
-------
f1481be00f Remove MacroAutoImportNodeVisitor
72693884c4 Simplify code
1105964873 Rework macros handling
When more than one argument is passed to parseArguments(), one deprecation
is triggered for each argument. Since passing any argument is deprecated
the number of triggered deprecations can be reduced for more than one
argument being passed.
This PR was merged into the 3.x branch.
Discussion
----------
Fix AssignNameExpression to forbid using names that won't work
Commits
-------
9af72e6323 Fix AssignNameExpression to forbid using names that won't work
* 3.x:
Add support for named arguments on macro calls and dot operator arguments
Improve deprecation messages
Simplify expression parser code
Refactor expression parser
chore: fix version added
Cleanup code
This PR was merged into the 3.x branch.
Discussion
----------
Refactor expression parser
Instead of having if statements under `default`, I've moved the code to the `switch` statement, which makes more sense.
Commits
-------
2cdca8cbeb Refactor expression parser
* 3.x:
Deprecate using the not unary operator without parenthesis
Deprecate using ?? without explicit parentheses
Add support for logical `xor` operator
Allow running CI on all branches
[Doc] Fix enum title
Document Twig vs PHP types
* 3.x:
Refactor code
Add some type hints
Deprecate using ~ with + or - in an expression without using parentheses to clarify precedence
Change some type hints to be more precise
Deprecate not passing AbstractExpression args to most constructor arguments for classes extending AbstractExpression
Remove obsolete method
Add support for detecting if an expression had explicit parentheses
Fix tests
Unify error messages when a filter expects a mapping/sequence
* 3.x:
Add an additional example in the docs
Fix ignored parenthesis in expressions
Tweak previous merge
Added details in the doc of filters and functions of IntlExtension
Add more information about the filter and the negative operators
Update plural.rst: Fixing filter name
* 3.x:
Deprecate using Node directly, introduce EmptyNode and Nodes
Add support for inline comments
Update plural.rst: Fixing(?) broken links
Fix CS
Add support for accessing class constants with the dot operator
Fix getting a property on an object casted to an array
Replace strtr() by strtolower()
Improve escape deprecation message
Remove useless assign in compiled code
Add fixture filename as key
Be more precise about double-escaping
Fix template name in error for an unknown dynamic extends called from an include
* 3.x:
Rename a variable for more clarity
Set IteratorAggregate generics for Node
Add cross-link
Let's no deprecate the attribute function yet
Add more precise types for the registration of safe classes
Clarify coding standards
Fix markup
Fix markup
Clarify docs for the u filter
Allow to use a dynamic attribute on the . operator via ()
Remove most usage of foo/bar/baz in the docs
Tweak docs
Add StringCastUnary
* 3.x:
Fix typo
Add support for argument unpacking
Fix CS
Add JSON support for the file extension escaping strategy
Stringify dynamic mapping keys
Replace most empty() calls
Simplify parser calls when possible
* 3.x:
Improve the way one can deprecate a Twig callable
Bump version
Prepare the 3.14.0 release
Fix a security issue when an included sandboxed template has been loaded before without the sandbox context
Fix test
fix the version mergeGlobals() is deprecated since
Tweak code
Fix CS
Add more tests
Remove unused private methods
Bump version