1
0
mirror of https://github.com/php/php-src.git synced 2026-03-24 00:02:20 +01:00
Files
archived-php-src/Zend/tests/traits/bugs/gh13177.phpt
Dmitry Stogov ccc6c0f78c Fix GH-15709: Crashing tests on Windows x64 (#17095)
This is a quick fix for the problem.
It'll work while all the JIT-ed functions have the same "fixed stack frame".
Unwinder uses hard-coded unwind data for this "fixed stack frame".

* Preallocate space for Win64 shadow args

* typo

* Setup unwinder for JIT functions

* Revert "Dynamically xfail test case which fails on CI"

This reverts commit 7cc327fd5a.

* Revert "Dynamically xfail test case which fails on CI"

This reverts commit bdde797159.

* Revert "Dynamically xfail test cases which fail on CI (GH-15710)"

This reverts commit 6d5962074f.

* Remove XFAIL sections

* Add hard-coded SEH unwind data for EXITCALL

* Fix unwind data

* Fix Windows multi-process support

* Typo
2024-12-13 02:05:45 +03:00

64 lines
1.2 KiB
PHP

--TEST--
GH-13177 (PHP 8.3.2: final private constructor not allowed when used in trait)
--FILE--
<?php
trait Bar {
final private function __construct() {}
}
final class Foo1 {
use Bar;
}
final class Foo2 {
use Bar {
__construct as final;
}
}
class Foo3 {
use Bar {
__construct as final;
}
}
trait TraitNonConstructor {
private final function test() {}
}
class Foo4 {
use TraitNonConstructor { test as __construct; }
}
for ($i = 1; $i <= 4; $i++) {
$rc = new ReflectionClass("Foo$i");
echo $rc->getMethod("__construct"), "\n";
}
class Foo5 extends Foo3 {
private function __construct() {}
}
?>
--EXPECTF--
Warning: Private methods cannot be final as they are never overridden by other classes in %s on line %d
Method [ <user, ctor> final private method __construct ] {
@@ %sgh13177.php 4 - 4
}
Method [ <user, ctor> final private method __construct ] {
@@ %sgh13177.php 4 - 4
}
Method [ <user, ctor> final private method __construct ] {
@@ %sgh13177.php 4 - 4
}
Method [ <user, ctor> final private method __construct ] {
@@ %sgh13177.php 24 - 24
}
Fatal error: Cannot override final method Foo3::__construct() in %s on line %d