Skip to content

Reify#10

Closed
henderkes wants to merge 4533 commits into
bottledcode:masterfrom
henderkes:reify
Closed

Reify#10
henderkes wants to merge 4533 commits into
bottledcode:masterfrom
henderkes:reify

Conversation

@henderkes

Copy link
Copy Markdown

No description provided.

DanielEScherzer and others added 30 commits May 1, 2026 18:36
…1791)

It has been that way since the initial public release of the optimizer in
528006a and survived through the merging as
ext/opcache (34d3202) and then moving it into
core (php#6642). If it hasn't been needed in the last 13 years, should be safe to
drop.
Skip test if simplexml extension is disabled.
These changes are based on a previous PR by @ndossche to reduce codebloat: php#18436

For zend_parse_arg_str_weak() we can return a `zend_string*` directly, as errors can be indicated by a NULL pointer return.

For zend_parse_arg_double_weak() we can return a `double` directly, as we can represent ZPP errors via `NAN` as booleans and integers never coerce to NAN. One might think that the string `'NAN'` can be coerced to double `NAN`, however PHP doesn't allow this coercion. And an explicit cast to double via `(float)` of such a string results in 0.

For zend_parse_arg_bool_weak() we instead create a new enum zpp_parse_bool_status that represents a tri-state which we return. Allowing us to return the boolean value via the return type instead of using an out pointer.
Extract php_is_valid_samesite_value() in ext/standard/head.c as a
shared validation function that enforces the SameSite whitelist
(Strict, Lax, None, or empty string) with case-insensitive matching.

Apply validation in both setcookie()/setrawcookie() (replacing the
existing TODO comment) and the session.cookie_samesite INI handler.
Previously arbitrary strings including CRLF sequences were accepted
and appended verbatim into the Set-Cookie header.
* PHP-8.4:
  ext/spl: Fix SplFixedArray::setSize leak when destructor grows during clear.
* PHP-8.5:
  ext/spl: Fix SplFixedArray::setSize leak when destructor grows during clear.
Closes php#21681

In case of persistent connection it was not checked if the
connection was still alive always assuming it was.
If the connection was broken this caused PHP to reuse the
broken connection over and over.
dbdead function is supported by all dblib implementation
(MS, Sybase, FreeTDS).
Change tested manually, see
FreeTDS/freetds#711 (comment)

Signed-off-by: Frediano Ziglio <freddy77@gmail.com>
Replace direct malloc/realloc calls with OOM-safe pemalloc/perealloc
(persistent: true) counterparts.

Fixes phpGH-19200
Fixes phpGH-17013
Closes phpGH-21625
This is from unrelased refactoring: e1c5049#diff-04979daf330cd412502ec8ebf4a363d608a73f034687a0dd07328fd0969f2813L2070-R2069 . It was a clear mistake that can lead to the over-read.
…hp#21835)

Fixes phpGH-21831.

`getHash()` runs while `SplObjectStorage` is looking up an object. Letting it mutate a storage from there is unsafe, because the caller may still be iterating the table that just changed underneath it.

This makes that fail immediately with an `Error` instead of trying to handle it one caller at a time.

The existing concurrent deletion tests now cover the new rule, and phpGH-21831 has a direct regression test. This targets master, so the behavior change is also noted in `UPGRADING`.
…dren.

Add a refcount on the child iterator across rewind/next/valid/current/key
calls so user methods can detach themselves without freeing the object
mid-call.

close phpGH-21933
* PHP-8.4:
  Fix phpGH-21927: Use-after-free of self-freeing MultipleIterator children.
* PHP-8.5:
  Fix phpGH-21927: Use-after-free of self-freeing MultipleIterator children.
set_client_option_2d() built the temporary key string with the
connection's persistent flag but always released it with persistent=1.
On a duplicate-key update of the connect_attr hash, zend_hash_update()
does not retain the passed key, so the caller-owned non-persistent
string was freed via free() instead of efree(), tripping the
IS_STR_PERSISTENT assertion in debug builds and mismatching allocators
in release. Reachable by retrying mysqli_real_connect() on a handle
whose first connect failed, since mysqlnd re-adds _client_name and
_server_host on every connect attempt.

close phpGH-21931
* PHP-8.4:
  ext/mysqlnd: Fix persistent free of non-persistent connect_attr key.
* PHP-8.5:
  ext/mysqlnd: Fix persistent free of non-persistent connect_attr key.
- use zend_hash_str_lookup for locale char table management
- replace the separate zend_hash_find_ptr + zend_string_init +
zend_hash_add_ptr + zend_string_release sequence with a single
zend_hash_str_lookup() call which handles find-or-insert in one
hash traversal and manages persistent key creation internally.

close phpGH-21312
* zend_types: Remove deprecated `Z_COPYABLE()`

* zend_types: Remove deprecated `Z_OPT_IMMUTABLE()` and `Z_IMMUTABLE()`
Restores 79aaeea, which was likely lost in the rebase of 76d7c61

Fixes phpGH-21746
Closes phpGH-21891
* PHP-8.5:
  Fix incorrect trace stop type
bukka and others added 26 commits May 25, 2026 12:17
Add stream context options psk_client_cb and psk_server_cb that
let clients and servers negotiate pre-shared key authentication
on both TLS 1.2 and TLS 1.3. Callbacks return an Openssl\Psk
instance carrying the key and, on clients, the identity, or
null to refuse PSK.

A new final Openssl\Psk class is added for that purpose, with
readonly $psk and $identity properties and MAX_PSK_LEN /
MAX_IDENTITY_LEN constants.

Closes phpGH-22057
This build is not useful for multiple reasons:

- Legitimate API changes keep making the build red. Frequently it takes 3rd
  party extension developers months to fix these issues.
- Once we're annoyed enough by the red build we skip it and then don't revert it
  way after it has been fixed.
- True accidental API changes are incredibly rare. I don't believe I've
  experienced one yet.
- This build only runs for master, which is also the branch where accidental
  changes are least problematic.

Closes phpGH-21980
* PHP-8.2:
  [skip ci] Remove PECL build
* PHP-8.3:
  [skip ci] Remove PECL build
* PHP-8.4:
  [skip ci] Remove PECL build
* PHP-8.5:
  [skip ci] Remove PECL build
Signed-off-by: azjezz <azjezz@protonmail.com>
Signed-off-by: Robert Landers <landers.robert@gmail.com>
Signed-off-by: Robert Landers <landers.robert@gmail.com>
Signed-off-by: Robert Landers <landers.robert@gmail.com>
Signed-off-by: Robert Landers <landers.robert@gmail.com>
Signed-off-by: Robert Landers <landers.robert@gmail.com>
Signed-off-by: Robert Landers <landers.robert@gmail.com>
Signed-off-by: Robert Landers <landers.robert@gmail.com>

fix inheritance chaining

Signed-off-by: Robert Landers <landers.robert@gmail.com>

fix inheritance chaining

Signed-off-by: Robert Landers <landers.robert@gmail.com>
Specialize concrete turbofish calls at compile time: Graph\dfs::<string,int>()
compiles to a direct by-name call to the mangled monomorph and drops the
per-call ZEND_VERIFY_GENERIC_ARGUMENTS opcode, making it byte-identical to a
non-generic call. Monomorphs are synthesized and registered on first
reference; the runtime verify/bind path remains as the fallback for
non-concrete / inference-only call sites.

Also: persist the generic value-check plan into opcache SHM, and gate
destroy_op_array's monomorph-table scan on ZEND_ACC2_HAS_GENERIC_CALL_OPS so
non-generic code is not taxed.

PSL\Graph bench (aarch64, opcache, two-point Ir/iter): reified-vs-erased
overhead 6.51%->4.14% (all) / 5.72%->4.19% (query); wall 9.04%->5.89% (no-JIT).
Erased baseline unchanged; generics tax -37%. Digests identical across
no-JIT/tracing/-n, generics .phpt 0 new regressions, valgrind-clean.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@henderkes henderkes closed this Jun 16, 2026
@coderabbitai

coderabbitai Bot commented Jun 16, 2026

Copy link
Copy Markdown

Important

Review skipped

Too many files!

This PR contains 300 files, which is 150 over the limit of 150.

To get a review, narrow the scope:
• coderabbit review --type committed # exclude uncommitted changes
• coderabbit review --dir # limit to a subdirectory
• coderabbit review --base # compare against a closer base

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 57f84915-efd2-4244-a8e6-3a56f786b7d1

📥 Commits

Reviewing files that changed from the base of the PR and between 6eed02b and 9135e2f.

📒 Files selected for processing (300)
  • .circleci/config.yml
  • .gdbinit
  • .gitattributes
  • .github/CODEOWNERS
  • .github/ISSUE_TEMPLATE/bug_report.yml
  • .github/actions/apk/action.yml
  • .github/actions/apt-x32/action.yml
  • .github/actions/apt-x64/action.yml
  • .github/actions/brew/action.yml
  • .github/actions/build-libmysqlclient/action.yml
  • .github/actions/ccache/action.yml
  • .github/actions/configure-macos/action.yml
  • .github/actions/configure-unit-tests/action.yml
  • .github/actions/extra-tests/action.yml
  • .github/actions/freebsd/action.yml
  • .github/actions/macos-update-clang/action.yml
  • .github/actions/notify-slack/action.yml
  • .github/actions/setup-mssql/action.yml
  • .github/actions/setup-windows/action.yml
  • .github/actions/solaris/action.yml
  • .github/actions/test-alpine/action.yml
  • .github/actions/test-gentoo/action.yml
  • .github/actions/test-libmysqlclient/action.yml
  • .github/actions/test-linux/action.yml
  • .github/actions/test-macos/action.yml
  • .github/actions/verify-generated-files/action.yml
  • .github/labeler.yml
  • .github/matrix.php
  • .github/nightly_matrix.php
  • .github/scripts/download-bundled/.gitignore
  • .github/scripts/download-bundled/boost-context.sh
  • .github/scripts/download-bundled/pcre2.sh
  • .github/scripts/download-bundled/uriparser.config.patch
  • .github/scripts/download-bundled/uriparser.sh
  • .github/scripts/setup-slapd.sh
  • .github/scripts/test-directory-unchanged.sh
  • .github/scripts/windows/build.bat
  • .github/scripts/windows/build_task.bat
  • .github/scripts/windows/find-target-branch.bat
  • .github/scripts/windows/find-vs-toolset.bat
  • .github/scripts/windows/test.bat
  • .github/scripts/windows/test_task.bat
  • .github/workflows/docs.yml
  • .github/workflows/labeler.yml
  • .github/workflows/nightly-results.yml
  • .github/workflows/nightly.yml
  • .github/workflows/push.yml
  • .github/workflows/real-time-benchmark.yml
  • .github/workflows/root.yml
  • .github/workflows/test-suite.yml
  • .github/workflows/test.yml
  • .github/workflows/unit-tests.yml
  • .github/workflows/verify-bundled-files.yml
  • .gitignore
  • CODING_STANDARDS.md
  • CONTRIBUTING.md
  • EXTENSIONS
  • LICENSE
  • NEWS
  • README.md
  • SECURITY.md
  • TSRM/TSRM.h
  • TSRM/tsrm_win32.c
  • TSRM/tsrm_win32.h
  • UPGRADING
  • UPGRADING.INTERNALS
  • Zend/LICENSE
  • Zend/Optimizer/block_pass.c
  • Zend/Optimizer/compact_literals.c
  • Zend/Optimizer/compact_vars.c
  • Zend/Optimizer/dce.c
  • Zend/Optimizer/dfa_pass.c
  • Zend/Optimizer/escape_analysis.c
  • Zend/Optimizer/nop_removal.c
  • Zend/Optimizer/optimize_func_calls.c
  • Zend/Optimizer/optimize_temp_vars_5.c
  • Zend/Optimizer/pass1.c
  • Zend/Optimizer/pass3.c
  • Zend/Optimizer/sccp.c
  • Zend/Optimizer/scdf.c
  • Zend/Optimizer/scdf.h
  • Zend/Optimizer/ssa_integrity.c
  • Zend/Optimizer/zend_call_graph.c
  • Zend/Optimizer/zend_call_graph.h
  • Zend/Optimizer/zend_cfg.c
  • Zend/Optimizer/zend_cfg.h
  • Zend/Optimizer/zend_dfg.c
  • Zend/Optimizer/zend_dfg.h
  • Zend/Optimizer/zend_dump.c
  • Zend/Optimizer/zend_dump.h
  • Zend/Optimizer/zend_func_info.c
  • Zend/Optimizer/zend_func_info.h
  • Zend/Optimizer/zend_func_infos.h
  • Zend/Optimizer/zend_inference.c
  • Zend/Optimizer/zend_inference.h
  • Zend/Optimizer/zend_optimizer.c
  • Zend/Optimizer/zend_optimizer.h
  • Zend/Optimizer/zend_optimizer_internal.h
  • Zend/Optimizer/zend_ssa.c
  • Zend/Optimizer/zend_ssa.h
  • Zend/Optimizer/zend_worklist.h
  • Zend/Zend.m4
  • Zend/asm/jump_s390x_sysv_elf_gas.S
  • Zend/asm/jump_sparc64_sysv_elf_gas.S
  • Zend/asm/jump_x86_64_ms_pe_gas.S
  • Zend/asm/make_s390x_sysv_elf_gas.S
  • Zend/asm/make_sparc64_sysv_elf_gas.S
  • Zend/asm/make_x86_64_ms_pe_gas.S
  • Zend/asm/save_xmm_x86_64_ms_masm.asm
  • Zend/tests/002.phpt
  • Zend/tests/003.phpt
  • Zend/tests/014.inc
  • Zend/tests/014.phpt
  • Zend/tests/019.phpt
  • Zend/tests/027.phpt
  • Zend/tests/GHSA-wm6j-2649-pv75.phpt
  • Zend/tests/abstract_method_optional_params.phpt
  • Zend/tests/arginfo_zpp_mismatch.inc
  • Zend/tests/array_append_by_reference.phpt
  • Zend/tests/array_append_reading_error.phpt
  • Zend/tests/array_unpack/gh19303.phpt
  • Zend/tests/arrow_functions/gh7900.phpt
  • Zend/tests/assert/expect_012.phpt
  • Zend/tests/assert/expect_015.phpt
  • Zend/tests/assign_array_object_property.phpt
  • Zend/tests/assign_dim_op_undef.phpt
  • Zend/tests/assign_property_null_object.phpt
  • Zend/tests/ast/gh21072.phpt
  • Zend/tests/asymmetric_visibility/gh19044.phpt
  • Zend/tests/asymmetric_visibility/virtual_get_only.phpt
  • Zend/tests/asymmetric_visibility/virtual_set_only.phpt
  • Zend/tests/attributes/Attribute/Attribute_on_abstract.phpt
  • Zend/tests/attributes/Attribute/Attribute_on_enum.phpt
  • Zend/tests/attributes/Attribute/Attribute_on_interface.phpt
  • Zend/tests/attributes/Attribute/Attribute_on_trait.phpt
  • Zend/tests/attributes/allow_dynamic_properties_on_enum.phpt
  • Zend/tests/attributes/allow_dynamic_properties_on_interface.phpt
  • Zend/tests/attributes/allow_dynamic_properties_on_trait.phpt
  • Zend/tests/attributes/constants/constant_listed_as_target-internal.phpt
  • Zend/tests/attributes/constants/constant_redefined_addition.phpt
  • Zend/tests/attributes/constants/constant_redefined_change.phpt
  • Zend/tests/attributes/constants/constant_redefined_removal.phpt
  • Zend/tests/attributes/constants/multiple_constants_error.phpt
  • Zend/tests/attributes/constants/oss_fuzz_428053935.phpt
  • Zend/tests/attributes/delayed_target_validation/has_runtime_errors.phpt
  • Zend/tests/attributes/delayed_target_validation/no_compile_errors.phpt
  • Zend/tests/attributes/delayed_target_validation/opcache_validator_errors.inc
  • Zend/tests/attributes/delayed_target_validation/opcache_validator_errors.phpt
  • Zend/tests/attributes/delayed_target_validation/repetition_errors.phpt
  • Zend/tests/attributes/delayed_target_validation/validator_AllowDynamicProperties.phpt
  • Zend/tests/attributes/delayed_target_validation/validator_Attribute.phpt
  • Zend/tests/attributes/delayed_target_validation/validator_Deprecated.phpt
  • Zend/tests/attributes/delayed_target_validation/validator_NoDiscard.phpt
  • Zend/tests/attributes/delayed_target_validation/validator_success.phpt
  • Zend/tests/attributes/delayed_target_validation/with_AllowDynamicProperties.phpt
  • Zend/tests/attributes/delayed_target_validation/with_Attribute.phpt
  • Zend/tests/attributes/delayed_target_validation/with_Deprecated.phpt
  • Zend/tests/attributes/delayed_target_validation/with_NoDiscard.phpt
  • Zend/tests/attributes/delayed_target_validation/with_Override_error_get.phpt
  • Zend/tests/attributes/delayed_target_validation/with_Override_error_method.phpt
  • Zend/tests/attributes/delayed_target_validation/with_Override_error_prop.phpt
  • Zend/tests/attributes/delayed_target_validation/with_Override_error_set.phpt
  • Zend/tests/attributes/delayed_target_validation/with_Override_okay.phpt
  • Zend/tests/attributes/delayed_target_validation/with_ReturnTypeWillChange.phpt
  • Zend/tests/attributes/delayed_target_validation/with_SensitiveParameter.phpt
  • Zend/tests/attributes/deprecated/error_on_class.phpt
  • Zend/tests/attributes/deprecated/error_on_enum.phpt
  • Zend/tests/attributes/deprecated/error_on_interface.phpt
  • Zend/tests/attributes/deprecated/traits/basic.phpt
  • Zend/tests/attributes/deprecated/traits/inheritance.phpt
  • Zend/tests/attributes/deprecated/traits/insteadof_unused_warnings.phpt
  • Zend/tests/attributes/deprecated/traits/multiple_traits.phpt
  • Zend/tests/attributes/deprecated/traits/throwing_error_handler.phpt
  • Zend/tests/attributes/deprecated/traits/trait_using_trait.phpt
  • Zend/tests/attributes/deprecated/traits/with_conflicts.phpt
  • Zend/tests/attributes/nodiscard/007.phpt
  • Zend/tests/attributes/override/properties_01.phpt
  • Zend/tests/attributes/override/properties_02.phpt
  • Zend/tests/attributes/override/properties_03.phpt
  • Zend/tests/attributes/override/properties_04.phpt
  • Zend/tests/attributes/override/properties_05.phpt
  • Zend/tests/attributes/override/properties_06.phpt
  • Zend/tests/attributes/override/properties_07.phpt
  • Zend/tests/attributes/override/properties_08.phpt
  • Zend/tests/attributes/override/properties_09.phpt
  • Zend/tests/attributes/override/properties_10.phpt
  • Zend/tests/attributes/override/properties_11.phpt
  • Zend/tests/attributes/override/properties_12.phpt
  • Zend/tests/attributes/override/properties_13.phpt
  • Zend/tests/attributes/override/properties_14.phpt
  • Zend/tests/attributes/override/properties_15.phpt
  • Zend/tests/attributes/override/properties_16.phpt
  • Zend/tests/attributes/override/properties_17.phpt
  • Zend/tests/attributes/override/properties_18.phpt
  • Zend/tests/attributes/override/properties_19.phpt
  • Zend/tests/attributes/override/properties_20.phpt
  • Zend/tests/bitwise_not_precision_exception.phpt
  • Zend/tests/bug29890.phpt
  • Zend/tests/bug34617.phpt
  • Zend/tests/bug40236.phpt
  • Zend/tests/bug40770.phpt
  • Zend/tests/bug41421.phpt
  • Zend/tests/bug46701.phpt
  • Zend/tests/bug55509.phpt
  • Zend/tests/bug64677.phpt
  • Zend/tests/bug67368.phpt
  • Zend/tests/bug70258.phpt
  • Zend/tests/bug70681.phpt
  • Zend/tests/bug71300.phpt
  • Zend/tests/bug72543_2.phpt
  • Zend/tests/bug74093.phpt
  • Zend/tests/bug77494.phpt
  • Zend/tests/bug78340.phpt
  • Zend/tests/bug79668.phpt
  • Zend/tests/bug81104.phpt
  • Zend/tests/builtin_functions_basic.phpt
  • Zend/tests/class_exists_basic.phpt
  • Zend/tests/clone/ast.phpt
  • Zend/tests/clone/bug36071.phpt
  • Zend/tests/clone/bug42817.phpt
  • Zend/tests/clone/bug42818.phpt
  • Zend/tests/clone/clone_001.phpt
  • Zend/tests/clone/clone_003.phpt
  • Zend/tests/clone/clone_005.phpt
  • Zend/tests/clone/clone_with_001.phpt
  • Zend/tests/clone/clone_with_002.phpt
  • Zend/tests/clone/clone_with_003.phpt
  • Zend/tests/clone/clone_with_004.phpt
  • Zend/tests/clone/clone_with_005.phpt
  • Zend/tests/clone/clone_with_006.phpt
  • Zend/tests/clone/clone_with_007.phpt
  • Zend/tests/clone/clone_with_008.phpt
  • Zend/tests/clone/clone_with_009.phpt
  • Zend/tests/clone/clone_with_010.phpt
  • Zend/tests/clone/clone_with_011.phpt
  • Zend/tests/clone/clone_with_012.phpt
  • Zend/tests/clone/clone_with_013.phpt
  • Zend/tests/closures/bug70630.phpt
  • Zend/tests/closures/bug70685.phpt
  • Zend/tests/closures/closure_016.phpt
  • Zend/tests/closures/closure_040.phpt
  • Zend/tests/closures/closure_041.phpt
  • Zend/tests/closures/closure_043.phpt
  • Zend/tests/closures/closure_044.phpt
  • Zend/tests/closures/closure_046.phpt
  • Zend/tests/closures/closure_061.phpt
  • Zend/tests/closures/closure_062.phpt
  • Zend/tests/closures/closure_array_key_error.phpt
  • Zend/tests/closures/closure_array_offset_error.phpt
  • Zend/tests/closures/closure_call.phpt
  • Zend/tests/closures/closure_from_callable_rebinding.phpt
  • Zend/tests/closures/closure_get_current.phpt
  • Zend/tests/closures/closure_static_property_error.phpt
  • Zend/tests/closures/fcc-cache.phpt
  • Zend/tests/closures/gh12073.phpt
  • Zend/tests/closures/gh19653_1.phpt
  • Zend/tests/closures/gh19653_2.phpt
  • Zend/tests/closures/gh19653_3.phpt
  • Zend/tests/concat/bug79836.phpt
  • Zend/tests/concat/bug79836_1.phpt
  • Zend/tests/concat/bug79836_2.phpt
  • Zend/tests/concat/concat_003.phpt
  • Zend/tests/constants/008.phpt
  • Zend/tests/constants/class_constants_005.phpt
  • Zend/tests/constants/constants_001.phpt
  • Zend/tests/constants/constants_004.phpt
  • Zend/tests/constants/constants_008.phpt
  • Zend/tests/constants/gh18850.inc
  • Zend/tests/constants/gh18850.phpt
  • Zend/tests/constants/halt_compiler/bug53305.phpt
  • Zend/tests/constants/halt_compiler/halt_compiler3.phpt
  • Zend/tests/constants/halt_compiler/halt_compiler4.phpt
  • Zend/tests/constexpr/constant_expressions_dynamic.phpt
  • Zend/tests/ctor_promotion/ctor_promotion_callable_type.phpt
  • Zend/tests/ctor_promotion/ctor_promotion_final.phpt
  • Zend/tests/debug_info/debug_info.phpt
  • Zend/tests/debug_info/recursion_return_null.phpt
  • Zend/tests/declare/gh18033_2.phpt
  • Zend/tests/disable_classes_warning.phpt
  • Zend/tests/dval_to_lval_32.phpt
  • Zend/tests/dval_to_lval_64.phpt
  • Zend/tests/dynamic_call/dynamic_method_calls.phpt
  • Zend/tests/dynamic_call/variable_variables_curly_syntax.phpt
  • Zend/tests/dynamic_call/variable_variables_function_names.phpt
  • Zend/tests/enum/__debugInfo.phpt
  • Zend/tests/enum/backed-from-unknown-hash.phpt
  • Zend/tests/enum/backed-tryFrom-unknown-hash.phpt
  • Zend/tests/enum/comparison-internal.phpt
  • Zend/tests/enum/debugInfo/backed_enum_value.phpt
  • Zend/tests/enum/debugInfo/magic_method.phpt
  • Zend/tests/enum/debugInfo/missing_magic.phpt
  • Zend/tests/enum/debugInfo/param_validation.phpt
  • Zend/tests/enum/debugInfo/return_validation.phpt
  • Zend/tests/enum/debugInfo/visibility_validation.phpt
  • Zend/tests/enum/gh21760.phpt
  • Zend/tests/enum/implements-internal.phpt
  • Zend/tests/enum/instanceof-backed-enum.phpt
  • Zend/tests/enum/instanceof-unitenum.phpt
  • Zend/tests/enum/no-class-implements-backed-enum.phpt
  • Zend/tests/enum/no-clone-internal.phpt

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@henderkes henderkes deleted the reify branch June 17, 2026 13:16
@henderkes henderkes restored the reify branch June 17, 2026 13:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.