Fabien Potencier
66658a3c1d
Check reserved names in TempNameExpression
2024-10-14 19:42:47 +02:00
Fabien Potencier
950ad5a2fc
bug #4396 Fix AssignNameExpression to forbid using names that won't work (fabpot)
...
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
2024-10-14 14:07:02 +02:00
Fabien Potencier
9af72e6323
Fix AssignNameExpression to forbid using names that won't work
2024-10-14 13:55:40 +02:00
Fabien Potencier
831e69b77e
Do not allow : as macro definition separator
2024-10-14 10:42:32 +02:00
Fabien Potencier
223d36bbae
Add support for named arguments on macro calls and dot operator arguments
2024-10-11 11:31:40 +02:00
Fabien Potencier
0ec3f4a7fe
Simplify expression parser code
2024-10-09 10:33:51 +02:00
Fabien Potencier
086c07f319
minor #4385 Refactor expression parser (fabpot)
...
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
2024-10-09 10:18:59 +02:00
Fabien Potencier
2cdca8cbeb
Refactor expression parser
2024-10-09 09:14:02 +02:00
Fabien Potencier
7bf0f6f376
Cleanup code
2024-10-08 21:51:29 +02:00
Fabien Potencier
62f0a96b68
Introduce a way to test Twig callables at compile time
2024-10-08 18:41:34 +02:00
Fabien Potencier
aca4d22e89
Allow arrow functions everywhere
2024-10-07 23:04:29 +02:00
Fabien Potencier
4f7d487a17
Fix deprecation dep feature
2024-10-06 23:17:05 +02:00
Fabien Potencier
2081b1ff74
Deprecate using the not unary operator without parenthesis
2024-10-02 14:16:34 +02:00
Fabien Potencier
f4aacafd78
Deprecate using ?? without explicit parentheses
2024-10-01 21:58:05 +02:00
Fabien Potencier
b93eb3ce58
Refactor code
2024-09-30 14:05:03 +02:00
Fabien Potencier
9f8c52d022
Add some type hints
2024-09-30 14:02:17 +02:00
Fabien Potencier
816c510cef
Deprecate using ~ with + or - in an expression without using parentheses to clarify precedence
2024-09-30 13:51:47 +02:00
Fabien Potencier
d133ab7e70
Add support for detecting if an expression had explicit parentheses
2024-09-30 11:55:38 +02:00
Fabien Potencier
1488238e32
Fix ignored parenthesis in expressions
2024-09-28 23:47:01 +02:00
Fabien Potencier
8b278986b8
Deprecate using Node directly, introduce EmptyNode and Nodes
2024-09-27 07:42:41 +02:00
Nicolas Grekas
04471ab8cd
Replace strtr() by strtolower()
2024-09-26 17:48:39 +02:00
Fabien Potencier
07b626a96f
Fix deprecation messages
2024-09-19 23:13:12 +02:00
Fabien Potencier
333638e8e6
Allow to use a dynamic attribute on the . operator via ()
2024-09-12 21:44:45 +02:00
Fabien Potencier
112de8dcfa
Add support for argument unpacking
2024-09-11 11:55:09 +02:00
Fabien Potencier
a7e924f36e
minor #4298 Replace all empty() calls (fabpot)
...
This PR was merged into the 3.x branch.
Discussion
----------
Replace all empty() calls
Commits
-------
9e9f8110bd Replace most empty() calls
2024-09-11 09:22:35 +02:00
Fabien Potencier
9e9f8110bd
Replace most empty() calls
2024-09-11 07:44:00 +02:00
Fabien Potencier
3f07d2c034
Simplify parser calls when possible
2024-09-10 23:42:58 +02:00
Fabien Potencier
34ae0311d9
Improve the way one can deprecate a Twig callable
2024-09-09 21:14:40 +02:00
Fabien Potencier
2ae0c0d38c
Fix CS
2024-09-06 12:33:38 +02:00
Fabien Potencier
70b912fa10
minor #4228 Use CPP in full code base (andreybolonin)
...
This PR was squashed before being merged into the 3.x branch.
Discussion
----------
Use CPP in full code base
Commits
-------
28923f42 Use CPP in full code base
2024-08-29 19:29:42 +02:00
andreybolonin1989@gmail.com
28923f4269
Use CPP in full code base
2024-08-29 19:29:39 +02:00
Fabien Potencier
5fca700cbd
Deprecate the fact that the extends and use tags are always allowed in a sandboxed template
2024-08-28 13:40:53 +02:00
Fabien Potencier
f9f7b7959f
feature #4010 Mark implicit macro argument default values as such with an attribute in AST (drjayvee)
...
This PR was squashed before being merged into the 3.x branch.
Discussion
----------
Mark implicit macro argument default values as such with an attribute in AST
This change causes no difference to compiled templates or to macro argument semantics.
Consider the following macro:
```twig
{% macro marco(po, lo = null) %}{% endmacro %}
```
With this change, the `ConstantExpression` for argument `po` will have an attribute `is_implicit`, whose value will be `true`. (Note that `lo` will not have that attribute.)
This allows node visitors to distinguish between arguments that do and those that do not have explicit default values even if the value is `null`.
This is useful for [static code analysis](https://github.com/twigphp/Twig/issues/4003 ).
For example, a static analysis tool might consider arguments with no explicit default value as non-optional.
Commits
-------
e83a8028 Mark implicit macro argument default values as such with an attribute in AST
2024-08-27 13:21:41 +02:00
Jeroen Versteeg
e83a8028f0
Mark implicit macro argument default values as such with an attribute in AST
2024-08-27 13:21:06 +02:00
Fabien Potencier
58d5780ef3
Fix two-word tests precedence over one-word tests
2024-08-26 17:47:41 +02:00
Fabien Potencier
675cb2d141
Fix CS
2024-08-18 19:25:19 +02:00
Fabien Potencier
84116e5ff7
Fix typos in CHANGELOG
2024-08-18 17:52:16 +02:00
Fabien Potencier
4428079003
Add an extension point for parsing special functions
2024-08-17 18:06:14 +02:00
Fabien Potencier
2e43eaa4ad
Fix some minor issues
2024-08-16 22:51:19 +02:00
Fabien Potencier
0c30e78b1c
Add support for named arguments on special functions
2024-08-16 08:37:24 +02:00
Simon André
c662e0ce27
Remove remaining const optimizations
...
After #4198 some `Token::` const optimization remains.
This PR remove them.. **in case** it was not intended
2024-08-15 19:11:55 +02:00
Fabien Potencier
3156d8093e
Move FunctionExpression/FilterExpression/TestExpression attributes from compilation time to parsing time
2024-08-14 18:45:35 +02:00
Fabien Potencier
148d3e079d
Make various optimization for dynamic Twig callables
2024-08-12 09:45:32 +02:00
Fabien Potencier
cd0ac3cc0a
Remove const optimization
2024-08-12 09:40:52 +02:00
Fabien Potencier
0ce79df5c4
Use trigger_deprecation() instead of trigger_error() for deprecations
2024-08-08 14:28:28 +02:00
Fabien Potencier
c77354ebad
Add missing comment
2024-06-22 19:44:04 +02:00
Fabien Potencier
c44be99a84
Rename array to sequence
2024-06-22 19:37:51 +02:00
Fabien Potencier
5157402a77
Rename hash to mapping
2024-06-22 19:36:24 +02:00
Fabien Potencier
b63bde3063
Optimize sprintf() calls for PHP 8.4
2024-06-21 08:16:55 +02:00
Fabien Potencier
2b2ac80d34
Fxi some errors reported by phpstan
2024-02-05 17:48:36 +01:00