Ilija Tovilo
15c2477273
Merge branch 'PHP-8.4'
...
* PHP-8.4:
Fix accidentally inherited default value in overridden virtual properties
2025-02-26 21:17:49 +01:00
Ilija Tovilo
e0c69dde02
Fix accidentally inherited default value in overridden virtual properties
...
Discovered when working on GH-17376.
2025-02-26 21:16:58 +01:00
Ilija Tovilo
84d00ec58f
Merge branch 'PHP-8.4'
...
* PHP-8.4:
Fix property hook backing value access in multi-level inheritance
2025-02-26 20:49:15 +01:00
Ilija Tovilo
7a55116f12
Fix property hook backing value access in multi-level inheritance
...
Discovered by Niels when testing GH-17376.
2025-02-26 20:49:07 +01:00
Gina Peter Banyard
65d433161a
Use new known "self" and "parent" zend_strings ( #17766 )
2025-02-12 15:30:55 +00:00
Gina Peter Banyard
ac52b5b738
Zend: Add const specifier to resolve_class_name()
2025-02-11 19:48:05 +00:00
Ilija Tovilo
ed1e47e325
Fix callable variance check (GH-17613)
...
Caused by GH-15492. While the parent might contain callable, it may also
contain other types. zend_is_class_subtype_of_type() may be checking a
member that is not callable itself. Fall back to the normal class
subtype check.
Discovered by a failing Laravel test in nightly.
2025-01-28 16:45:36 +01:00
Gina Peter Banyard
32fb2607a3
Zend: Make Closure a proper subtype of callable ( #15492 )
2025-01-24 17:32:23 +00:00
Ilija Tovilo
0e1fbf97f4
Merge branch 'PHP-8.4'
...
* PHP-8.4:
Relax final+private warning for trait methods with inherited final
2025-01-13 16:46:54 +01:00
Ilija Tovilo
3c138641e1
Merge branch 'PHP-8.3' into PHP-8.4
...
* PHP-8.3:
Relax final+private warning for trait methods with inherited final
2025-01-13 16:46:43 +01:00
Ilija Tovilo
a6a290d541
Relax final+private warning for trait methods with inherited final
...
Fixes GH-17214
Closes GH-17381
2025-01-13 16:46:01 +01:00
Ilija Tovilo
fbb97aa6fc
Merge branch 'PHP-8.4'
...
* PHP-8.4:
Fix unstable get_iterator pointer for hooked classes in shm on Windows
2024-12-09 17:14:46 +01:00
Ilija Tovilo
792f63df45
Fix unstable get_iterator pointer for hooked classes in shm on Windows
...
Closes GH-17034
2024-12-09 17:14:19 +01:00
chx
e5c2bc41ed
Improve error message when overriding untyped property with typed property (GH-16866)
2024-11-20 11:59:29 +01:00
Ilija Tovilo
e122152373
Simplify (bitset & flag) == flag
conditions
...
Closes GH-16558
2024-10-30 17:27:52 +01:00
Ilija Tovilo
9fa2f116c3
Merge branch 'PHP-8.4'
...
* PHP-8.4:
Fix lineno for inheritance errors of early bound classes
2024-10-22 15:17:36 +02:00
Ilija Tovilo
077d69db44
Merge branch 'PHP-8.3' into PHP-8.4
...
* PHP-8.3:
Fix lineno for inheritance errors of early bound classes
2024-10-22 15:17:29 +02:00
Ilija Tovilo
e02085359d
Merge branch 'PHP-8.2' into PHP-8.3
...
* PHP-8.2:
Fix lineno for inheritance errors of early bound classes
2024-10-22 15:17:11 +02:00
Ilija Tovilo
2d068c4f47
Fix lineno for inheritance errors of early bound classes
...
Fixes GH-16508
Closes GH-16532
2024-10-22 15:16:43 +02:00
Daniel Scherzer
cb1d4ba97a
GH-16315: Improve error messages when extending enums
...
Closes GH-16491
2024-10-18 22:22:54 +02:00
DanielEScherzer
b436ef479e
GH-15994: fix suggestion that anonymous classes be made abstract (GH-15995)
...
In the process, remove the (incorrect) assumption that any abstract method that
needs to be implemented by a class that cannot itself be made abstract must be
a private method - the existing test for an enum already showed that this was
not the case.
2024-09-26 00:05:12 +02:00
DanielEScherzer
3b349db1a7
GH-15992: fix error message for single abstract method not implemented (GH-15993)
2024-09-25 22:48:02 +02:00
DanielEScherzer
a3583d7eef
zend_inheritance.c: make a bunch of pointers const
(GH-15934)
...
* zend_inheritance.c: make a bunch of pointers `const`
* Fix const double pointers
2024-09-17 12:44:17 +02:00
Ilija Tovilo
7f0d2574f0
Simplify a-vis error message
2024-09-03 12:18:07 +02:00
Ilija Tovilo
2b8a1b4258
Forbid a-vis on unilateral virtual prop
...
The get-only case is obvious, there is no set operation so specifying its
visibility is senseless. The set-only case is also questionable, since there is
no operation other than set, so changing the visibility of the entire property
is preferable.
Closes GH-15698
2024-09-02 17:40:30 +02:00
Ilija Tovilo
8df557ac42
[RFC] Asymmetric visibility v2 (GH-15063)
...
Co-authored-by: Larry Garfield <larry@garfieldtech.com>
2024-08-27 02:04:48 +02:00
Ilija Tovilo
8fcf34d598
Remove ZEND_ACC_ABSTRACT from prop variance check
...
Abstract properties are now virtual, unless they actually contain concrete hook
implementations using the backing field.
2024-08-23 16:13:23 +02:00
Ilija Tovilo
2f27e0b2ab
Fix missing variance check for abstract set with asymmetric type ( #15157 )
...
Fixes GH-15140
2024-08-05 16:43:54 +02:00
Ilija Tovilo
5d9c155dd3
Fix inheritance of hooks onto plain properties
2024-08-05 14:30:37 +02:00
Ilija Tovilo
43f688e1ed
Fix zend_function.prop_info pointer for trait hooks ( #15245 )
...
Fixes GH-15240
2024-08-05 13:14:37 +02:00
Ilija Tovilo
780a8280d2
[RFC] Property hooks ( #13455 )
...
RFC: https://wiki.php.net/rfc/property-hooks
Co-authored-by: Nikita Popov <nikita.ppv@gmail.com>
2024-07-14 11:55:03 +02:00
Dmitry Stogov
924e7fcb8a
Merge branch 'PHP-8.3'
...
* PHP-8.3:
Fix GH-14480: Method visibility issue introduced in version 8.3.8 (#14484 )
2024-06-05 23:59:49 +03:00
Dmitry Stogov
ee7d35cc4d
Merge branch 'PHP-8.2' into PHP-8.3
...
* PHP-8.2:
Fix GH-14480: Method visibility issue introduced in version 8.3.8 (#14484 )
2024-06-05 23:59:37 +03:00
Dmitry Stogov
86b93bc479
Fix GH-14480: Method visibility issue introduced in version 8.3.8 ( #14484 )
2024-06-05 23:53:31 +03:00
Cristian Rodríguez
8e62e2b829
Mark multple functions as static ( #13864 )
...
* Mark many functions as static
Multiple functions are missing the static qualifier.
* remove unused struct sigactions
struct sigaction act, old_term, old_quit, old_int;
all unused.
* optimizer: minXOR and maxXOR are unused
2024-05-22 13:11:46 +02:00
Dmitry Stogov
c5982c961d
Merge branch 'PHP-8.3'
...
* PHP-8.3:
Fix incorrect inheritance of private trait methods (#14163 )
2024-05-07 13:20:00 +03:00
Dmitry Stogov
da5b43f3a1
Merge branch 'PHP-8.2' into PHP-8.3
...
* PHP-8.2:
Fix incorrect inheritance of private trait methods (#14163 )
2024-05-07 13:19:49 +03:00
Dmitry Stogov
7a9e0fb39b
Fix incorrect inheritance of private trait methods ( #14163 )
...
The bug was introduced in c6b75f9328
2024-05-07 13:16:23 +03:00
Dmitry Stogov
3fcf6ffbc4
Merge branch 'PHP-8.3'
...
* PHP-8.3:
Fix prototype for trait methods (#14148 )
2024-05-06 21:46:13 +03:00
Dmitry Stogov
c42f48d58d
Merge branch 'PHP-8.2' into PHP-8.3
...
* PHP-8.2:
Fix prototype for trait methods (#14148 )
2024-05-06 21:46:00 +03:00
Dmitry Stogov
c6b75f9328
Fix prototype for trait methods ( #14148 )
...
* Fix prototype for trait methods
Fixes GH-14009
* Clenup do_inheritance_check_on_method()
Remove wierd checks and define the behavior by explicit set of flags
* Fix naming and indentation
---------
Co-authored-by: Ilija Tovilo <ilija.tovilo@me.com>
2024-05-06 21:39:30 +03:00
Ilija Tovilo
1c30c5e707
Print location on class redeclaration
...
Fixes GH-13950
Closes GH-13999
2024-04-30 14:34:43 +02:00
Ilija Tovilo
782af7a963
Fix -Walloc-size warning
...
It's indeed unsafe to treat zend_internal_function as zend_function, because
sizeof(zend_internal_function) < sizeof(zend_function), which can lead to buffer
overflows. This might also be UB.
Either way, this would need to be addressed in the whole codebase.
2024-04-29 16:36:24 +02:00
Bob Weinand
9bed0b5f2f
Merge branch 'PHP-8.3'
2024-03-18 19:06:12 +01:00
Bob Weinand
6d6cd29909
Merge branch 'PHP-8.2' of https://github.com/php/php-src into PHP-8.3
2024-03-18 19:04:12 +01:00
Bob Weinand
10d912d6e3
Fix GH-13712: Segmentation fault for enabled observers when calling trait method of internal trait when opcache is loaded ( #13735 )
...
Inherited methods regardless of source must share the original runtime cache. Traits were missed.
This adds ZEND_ACC_TRAIT_CLONE to internal functions as well to allow easy distinction of these.
2024-03-18 19:02:42 +01:00
Michael Voříšek
87edeed3b9
Remove UNEXPECTED from typed prop checks
...
Closes GH-13143
2024-02-12 11:35:43 +01:00
Niels Dossche
31092c235d
Merge branch 'PHP-8.3'
...
* PHP-8.3:
Fix GH-13177: PHP 8.3.2: final private constructor not allowed when used in trait
Fix GH-12107: When running a stored procedure (that returns a result set) twice, PHP crashes
2024-01-19 23:41:01 +01:00
Niels Dossche
c2c1710ed7
Fix GH-13177: PHP 8.3.2: final private constructor not allowed when used in trait
...
zend_compile has an exception to this rule for constructors using
`zend_is_constructor`, which compares the function name to
`__construct`. Sadly, `zend_is_constructor` is not a public API, but we
can just do the string compare ourselves.
Closes GH-13179.
2024-01-19 23:36:36 +01:00
Niels Dossche
bfb678a266
Merge branch 'PHP-8.3'
...
* PHP-8.3:
Fix GH-12854: 8.3 - as final trait-used method does not correctly report visibility in Reflection
2023-12-05 21:49:42 +01:00