summaryrefslogtreecommitdiffstats
path: root/php-gh14480.patch
diff options
context:
space:
mode:
authorRemi Collet <remi@remirepo.net>2024-07-02 15:50:46 +0200
committerRemi Collet <remi@php.net>2024-07-02 15:50:46 +0200
commit96401bf48a87bc7ceb8131dfc90a129306e95c49 (patch)
treec48b83bb4a9ecb0e6d1359218f7d32a7836ead6a /php-gh14480.patch
parentca42da5a8b40c8526f7a03269a8b76597c5ccc5e (diff)
Update to 8.2.21 - http://www.php.net/releases/8_2_21.phpHEADmaster
Diffstat (limited to 'php-gh14480.patch')
-rw-r--r--php-gh14480.patch99
1 files changed, 0 insertions, 99 deletions
diff --git a/php-gh14480.patch b/php-gh14480.patch
deleted file mode 100644
index 7920e17..0000000
--- a/php-gh14480.patch
+++ /dev/null
@@ -1,99 +0,0 @@
-From 86b93bc479477e6c0de6207bfe59c1e276dfdafb Mon Sep 17 00:00:00 2001
-From: Dmitry Stogov <dmitry@zend.com>
-Date: Wed, 5 Jun 2024 23:53:31 +0300
-Subject: [PATCH] Fix GH-14480: Method visibility issue introduced in version
- 8.3.8 (#14484)
-
----
- Zend/tests/gh14480.phpt | 60 +++++++++++++++++++++++++++++++++++++++++
- Zend/zend_inheritance.c | 8 +++---
- 2 files changed, 65 insertions(+), 3 deletions(-)
- create mode 100644 Zend/tests/gh14480.phpt
-
-diff --git a/Zend/tests/gh14480.phpt b/Zend/tests/gh14480.phpt
-new file mode 100644
-index 0000000000000..bab74785b6b23
---- /dev/null
-+++ b/Zend/tests/gh14480.phpt
-@@ -0,0 +1,60 @@
-+--TEST--
-+GH-14480: Method visibility issue
-+--FILE--
-+<?php
-+trait PropertyHelperTrait
-+{
-+ protected function splitPropertyParts(): void
-+ {
-+ echo "OK\n";
-+ }
-+}
-+
-+trait OrmPropertyHelperTrait
-+{
-+ abstract protected function splitPropertyParts(): void;
-+
-+ protected function addJoinsForNestedProperty(): void
-+ {
-+ $this->splitPropertyParts();
-+ }
-+}
-+
-+trait SearchFilterTrait
-+{
-+ use PropertyHelperTrait;
-+}
-+
-+abstract class AbstractFilter
-+{
-+ use OrmPropertyHelperTrait, PropertyHelperTrait;
-+
-+ public function apply(): void
-+ {
-+ $this->filterProperty();
-+ }
-+
-+ abstract protected function filterProperty(): void;
-+}
-+
-+class SearchFilter extends AbstractFilter
-+{
-+ use SearchFilterTrait;
-+ protected function filterProperty(): void
-+ {
-+ $this->addJoinsForNestedProperty();
-+ }
-+}
-+
-+class FilterExtension
-+{
-+ public function applyToCollection(): void
-+ {
-+ (new SearchFilter())->apply();
-+ }
-+}
-+
-+(new FilterExtension)->applyToCollection();
-+?>
-+--EXPECT--
-+OK
-diff --git a/Zend/zend_inheritance.c b/Zend/zend_inheritance.c
-index 8c7ea963891bf..2e9bf25b59c48 100644
---- a/Zend/zend_inheritance.c
-+++ b/Zend/zend_inheritance.c
-@@ -1933,11 +1933,13 @@ static void zend_add_trait_method(zend_class_entry *ce, zend_string *name, zend_
- if (check_inheritance) {
- /* Inherited members are overridden by members inserted by traits.
- * Check whether the trait method fulfills the inheritance requirements. */
-+ uint32_t flags = ZEND_INHERITANCE_CHECK_PROTO | ZEND_INHERITANCE_CHECK_VISIBILITY;
-+ if (!(existing_fn->common.scope->ce_flags & ZEND_ACC_TRAIT)) {
-+ flags |= ZEND_INHERITANCE_SET_CHILD_CHANGED |ZEND_INHERITANCE_SET_CHILD_PROTO;
-+ }
- do_inheritance_check_on_method(
- fn, fixup_trait_scope(fn, ce), existing_fn, fixup_trait_scope(existing_fn, ce),
-- ce, NULL,
-- ZEND_INHERITANCE_CHECK_PROTO | ZEND_INHERITANCE_CHECK_VISIBILITY |
-- ZEND_INHERITANCE_SET_CHILD_CHANGED| ZEND_INHERITANCE_SET_CHILD_PROTO);
-+ ce, NULL, flags);
- }
- }
- /* }}} */