Mikhail Kornaukhov
Mikhail Kornaukhov
Issue: https://github.com/VKCOM/kphp/issues/290 RFC: https://wiki.php.net/rfc/match_expression_v2 Idea: Convert `match` into switch but using `eq3` instead of `eq2`. - [x] New keyword - [x] New AST nodes(`op_match_proxy, op_match_default, op_match_case`) - [x] Change `op_switch`...
This PR adds enumerations(https://wiki.php.net/rfc/enumerations). The list of implemented and requested php8 features - https://github.com/VKCOM/kphp/issues/290 Previous attempt - https://github.com/VKCOM/kphp/pull/730
https://www.php.net/manual/en/function.array-udiff.php Now we have `array_diff(a, b)` function. But it requires that array internal type must be convertible to string. This functions allows to add user-defined comparator.
Assume we have the following class hierarchy:  There is a a possible situation when such a hierarchy cannot be compiled. For example, if in any C++ Translation Unit inclusion...
In case of ```php $a = new A(CONST_ONE, CONST_TWO); $b = new A(CONST_ONE, CONST_TWO); ``` we want 1. Constructor of class `A` with parameters `CONST_ONE, CONST_TWO` to be called once...
For example: 1. I add new `phpt` file with the following path: `tests/phpt/constants/006_object_as_class_const.php`. 2. Then I do `$ ./kphp_tester.py 006_object_as_class_const.php`. 3. After that, I see `Can't find any tests with...
For tests, we previously had (for `phpt` tests) `bool` variable - whether we need `php8` or not. This PR add possibility to choose `php7.4`, `php8`, `php8.1` or `php8.2`
Main issue: https://github.com/VKCOM/kphp/issues/290 This patch implements nullsafe operator `?->` for methods and properties. RFC: https://wiki.php.net/rfc/nullsafe_operator