This PR was merged into the 3.x branch.
Discussion
----------
Deprecate Twig\ExpressionParser::parseOnlyArguments() and Twig\ExpressionParser::parseArguments()
Commits
-------
960f6762ed Deprecate Twig\ExpressionParser::parseOnlyArguments() and Twig\ExpressionParser::parseArguments()
* 3.x: (30 commits)
Make {} optional for the types tag
Remove the note about types mapping argument
Add a note on the types locality
Fix CS
Fix typos in the docs
Use spl_object_id() instead of spl_object_hash()
Add `LastModifiedExtensionInterface` and implementation in `AbstractExtension` to track modification of runtime classes
Bump version
Optimize NameExpression compilation
Fix typo in enum twig doc functions
Remove dead method in ModuleNode
Bump version
Prepare the 3.18.0 release
Add support for `Twig\Markup`
Fix unary operator precedence change
Replace Twigfiddle by the new Twig playground
Fix MacroNode $name argument can be overridden
Ignore exceptions from undefined handlers when using the guard tag
[Doc] Update the docs about attribute() function
Fix doc
...
* 3.x:
Simplify enum usage in docs
Forbid adding Nodes to EmptyNode
Add phpstan analysis
Fix the intl-extra tests
Fix the string-extra tests when running with older symfony/string
Fix the exception message to match the expected one for not ready nodes
Add missing import
Add BC break note in CHANGELOG for 3.15
Fix CHANGELOG
Update CHANGELOG
Bump version
Prepare the 3.15.0 release
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