Nikita Popov
aff98bbf16
Use PHP 8.0 token representation
...
Migrate everything to use PhpToken-compatible token representation,
rather than the legacy array/string representation.
2022-06-05 17:44:42 +02:00
Tomas Votruba
7c445bb608
Remove space before return type in insertionMap ( #841 )
...
* remove space before colon in PrettyPrinterAbstract
* update tests
2022-06-04 23:23:07 +02:00
Nikita Popov
5af93eee52
Use nullable type instead of null default
...
Fixes #752 .
2022-06-04 16:50:19 +02:00
Nikita Popov
27fe7a68c0
Include space after closure use
2022-06-04 13:22:58 +02:00
Dominik Peters
6c0b63d9af
Change print order of modifiers
...
Print abstract/final before visibility modifiers, in line with
PSR-12.
Closes #826 .
2022-06-04 13:19:07 +02:00
Nikita Popov
87387caf8f
Remove space before return type in pretty printer
2022-06-04 13:01:02 +02:00
Nikita Popov
9c5eb3ccba
Add some missing type annotations
2022-06-04 12:48:12 +02:00
Nikita Popov
e70541f136
Merge branch '4.x'
2022-06-04 12:44:47 +02:00
Nikita Popov
2d589921f2
Fix incorrect doc type
2022-06-04 12:44:36 +02:00
Nikita Popov
5466ee365f
Drop support for running on PHP 7.0
2022-06-04 12:27:41 +02:00
Nikita Popov
1f416d9052
Target PHP-Parser 5.0
2022-06-04 12:20:42 +02:00
Nikita Popov
cdb731fa8b
Update integration test target to 8.1
2022-05-31 23:18:52 +02:00
Nikita Popov
e727475d08
Support readonly as function name
...
This special case was added after the PHP 8.1 release.
2022-05-31 23:18:52 +02:00
Nikita Popov
34bea19b6e
Release PHP-Parser 4.14.0
v4.14.0
2022-05-31 22:59:12 +02:00
Tomas Votruba
678ccbe072
[PHP 8.2] Add readonly class support ( #834 )
...
RFC: https://wiki.php.net/rfc/readonly_classes
PHP implementation: php/php-src#7305
2022-05-15 23:19:31 +02:00
Tomas Votruba
5d83adcc0e
[String_] Add rawValue attribute ( #831 )
2022-05-15 23:04:59 +02:00
Tomas Votruba
3bf0082455
[DNumber] Add rawValue attribute to hold the original value ( #833 )
2022-05-15 18:12:28 +02:00
Tomas Votruba
d3eb10aca1
[LNumber] Add rawValue attribute to LNumber to allow numeric separator etc. ( #832 )
2022-05-15 18:09:05 +02:00
Marijn van Wezel
a6e34665fd
Reflect support for PHP 8.1 in the README
2022-01-03 21:20:19 +01:00
Ondrej Mirtes
f4b835f7d8
Fix PHPDoc type of namespacedName properties
2021-12-06 21:33:02 +01:00
Nikita Popov
210577fe3c
Release PHP-Parser 4.13.2
v4.13.2
2021-11-30 20:35:32 +01:00
Nikita Popov
f09f22760e
Declare namespacedName property
...
For historical reasons, this property is used by the NameResolver
(in default mode). Declare it explicitly, rather than using a doc
comment.
2021-11-27 21:02:58 +01:00
Nikita Popov
d4cb98ae38
Fix typo in property name
...
This test was working on a dynamic "subNode" property, rather
than an actual subnode (either subNode1 or subNode2).
This test is generally not very valuable, I think it dates back
to a time where __get()/__set() were used.
2021-11-27 20:57:41 +01:00
Nikita Popov
68d2a52b42
Avoid creation of dynamic property in test
...
This test requires a property that is not a subnode -- but it does
not need to be dynamic, a declared property works just as well.
2021-11-27 20:53:55 +01:00
Nikita Popov
63f8699143
Add CallLike test for NullsafeMethodCall
2021-11-14 17:44:47 +01:00
Nikita Popov
4122ff3a91
Make NullsafeMethodCall extend from CallLike
2021-11-14 17:43:29 +01:00
Hassan Tariq
6f1f206862
Fix minor typo
2021-11-13 22:39:16 +01:00
Jaroslav Hanslík
99a24b6a55
Added builders for enum and enum case
2021-11-05 22:26:04 +01:00
Nikita Popov
63a79e8daa
Release PHP-Parser 4.13.1
v4.13.1
2021-11-03 21:52:16 +01:00
Ilhan Yumer
6a21234e58
Code highlighting
2021-10-31 09:11:00 +01:00
Nikita Popov
7064539974
Rename identifier/identifier_ex productions
...
The names were easy to get wrong, because the corresponding names
in zend_language_parser.y are T_STRING/identifier, so just copying
identifier from upstream gives the wrong behavior.
2021-10-17 20:26:06 +02:00
Nikita Popov
4bfc4595ed
Support reserved keywords as enum cases
...
Fixes #807 .
2021-10-17 20:20:35 +02:00
Jaroslav Hanslík
54f19a0a66
Fixed array value evaluation with unpacked array
2021-10-11 21:35:21 +02:00
Jaroslav Hanslík
8da6d7ac62
Fixed ArrowFunction::$expr
2021-10-09 11:26:27 +02:00
Sam Reed
f6e1fbf3a2
Update .gitattributes
2021-10-08 21:23:55 +02:00
Nikita Popov
50953a2691
Release PHP-Parser 4.13.0
v4.13.0
2021-09-20 14:20:58 +02:00
Jaroslav Hanslík
0a20979a62
Unified builder methods for setting types
2021-09-14 18:09:07 +02:00
Nikita Popov
a45fb2a621
Add CallLike parent class
...
This provides a helper to determine whether a call is a first-class
callable, and a way to strip the args type to Arg[] if it isn't.
2021-09-12 22:29:08 +02:00
Nikita Popov
08501991d4
Don't make VariadicPlaceholder an expression
...
And don't store it in an Arg.
2021-09-12 21:59:26 +02:00
Nikita Popov
b5234eacd0
Tweak coding style
2021-09-12 21:54:03 +02:00
Shalvah
632ead3a82
Print comma before comments for new array item ( #805 )
...
Print comma before rather than after comments. Also switch to multiline mode if inserting an item with comments.
Fixes #804 .
2021-09-12 21:51:25 +02:00
Nikita Popov
13549aa794
Add support for first-class callables
...
I'm somewhat unsure about the AST structure here.
VariadicPlaceholder is not a general expression. Maybe Arg->expr
should be Expr|VariadicPlaceholder? Or possibly the call arguments
should be an array of Arg|VariadicPlaceholder?
2021-09-03 17:18:40 +02:00
Nikita Popov
d2c645f163
Adjust token count in octal emulator
2021-09-03 16:35:10 +02:00
Nikita Popov
def24f2224
Add support for explicit octal literals
2021-09-03 16:29:30 +02:00
Nikita Popov
cfeb195205
Add test for new in initializer
...
This already works because we don't validate initializer contents,
everything is accepted from a parser perspective.
2021-09-03 15:10:29 +02:00
Nikita Popov
ace6c67a8a
Add support for intersection types
2021-09-03 15:06:33 +02:00
Nikita Popov
0483391aca
Introduce ComplexType base class
...
With the upcoming addition of intersection types, a type can
be Identifier|Name|NullableType|UnionType|IntersectionType, which
is quite the mouthful. Give NullableType and UnionType a common
base class ComplexType, which does not have any behavior, but
allows to write these types (and check them in instanceof) more
easily.
2021-09-02 18:35:05 +02:00
Nikita Popov
9aebf377fc
Allow multiple modifiers for property promotion
...
Fixes issue #800 .
2021-08-08 19:12:44 +02:00
simivar
5a43015499
Simplify BuilderHelpers::normalizeName() implementation
...
In order to get rid of the flag in `BuilderHelpers::normalizeNameCommon()` I have moved all the logic related to the normalization of the name to the `BuilderHelpers::normalizeName()` method and expr-related stuff to the `BuilderHelpers::normalizeNameOrExpr()` method which later calls the basic `normalizeName()` as well
2021-07-21 12:51:18 +02:00
Nikita Popov
6608f01670
Release PHP-Parser 4.12.0
v4.12.0
2021-07-21 12:44:31 +02:00