mirror of
https://github.com/php/php-src.git
synced 2024-09-21 18:07:23 +00:00
Don't print preload warning for non-top-level classes
Dynamically declared classes categorically do not get linked during preloading, even if all their dependencies are known. The warning is misleading in this case, and there isn't anything the user can do to address it.
This commit is contained in:
parent
b5746a4c7f
commit
b1b0c81e39
@ -4034,7 +4034,8 @@ static void preload_link(void)
|
||||
if (ce->type == ZEND_INTERNAL_CLASS) {
|
||||
break;
|
||||
}
|
||||
if (!(ce->ce_flags & ZEND_ACC_LINKED)) {
|
||||
if ((ce->ce_flags & (ZEND_ACC_TOP_LEVEL|ZEND_ACC_ANON_CLASS))
|
||||
&& !(ce->ce_flags & ZEND_ACC_LINKED)) {
|
||||
zend_string *key = zend_string_tolower(ce->name);
|
||||
if (!(ce->ce_flags & ZEND_ACC_ANON_CLASS)
|
||||
&& zend_hash_exists(EG(class_table), key)) {
|
||||
|
@ -18,8 +18,6 @@ class Bar {
|
||||
var_dump(foo());
|
||||
?>
|
||||
--EXPECTF--
|
||||
Warning: Can't preload unlinked class Foo: Unknown parent Bar in %spreload_bug78937.inc on line 6
|
||||
|
||||
Warning: Can't preload unlinked class Bar@anonymous: Unknown parent Bar in %spreload_bug78937.inc on line 3
|
||||
object(Bar@anonymous)#%d (0) {
|
||||
}
|
||||
|
@ -19,8 +19,6 @@ class Bar {
|
||||
var_dump(foo());
|
||||
?>
|
||||
--EXPECTF--
|
||||
Warning: Can't preload unlinked class Foo: Unknown parent Bar in %spreload_bug78937.inc on line 6
|
||||
|
||||
Warning: Can't preload unlinked class Bar@anonymous: Unknown parent Bar in %spreload_bug78937.inc on line 3
|
||||
object(Bar@anonymous)#%d (0) {
|
||||
}
|
||||
|
@ -17,8 +17,6 @@ include(__DIR__ . "/preload_bug78937.inc");
|
||||
var_dump(foo());
|
||||
?>
|
||||
--EXPECTF--
|
||||
Warning: Can't preload unlinked class Foo: Unknown parent Bar in %spreload_bug78937.inc on line 6
|
||||
|
||||
Warning: Can't preload unlinked class Bar@anonymous: Unknown parent Bar in %spreload_bug78937.inc on line 3
|
||||
|
||||
Fatal error: Uncaught Error: Class "Bar" not found in %spreload_bug78937.inc:3
|
||||
|
@ -19,8 +19,6 @@ bar();
|
||||
var_dump(new Foo);
|
||||
?>
|
||||
--EXPECTF--
|
||||
Warning: Can't preload unlinked class Foo: Unknown parent Bar in %spreload_bug78937.inc on line 6
|
||||
|
||||
Warning: Can't preload unlinked class Bar@anonymous: Unknown parent Bar in %spreload_bug78937.inc on line 3
|
||||
object(Foo)#%d (0) {
|
||||
}
|
||||
|
@ -20,8 +20,6 @@ bar();
|
||||
var_dump(new Foo);
|
||||
?>
|
||||
--EXPECTF--
|
||||
Warning: Can't preload unlinked class Foo: Unknown parent Bar in %spreload_bug78937.inc on line 6
|
||||
|
||||
Warning: Can't preload unlinked class Bar@anonymous: Unknown parent Bar in %spreload_bug78937.inc on line 3
|
||||
object(Foo)#%d (0) {
|
||||
}
|
||||
|
@ -18,8 +18,6 @@ bar();
|
||||
var_dump(new Foo);
|
||||
?>
|
||||
--EXPECTF--
|
||||
Warning: Can't preload unlinked class Foo: Unknown parent Bar in %spreload_bug78937.inc on line 6
|
||||
|
||||
Warning: Can't preload unlinked class Bar@anonymous: Unknown parent Bar in %spreload_bug78937.inc on line 3
|
||||
|
||||
Fatal error: Uncaught Error: Class "Bar" not found in %spreload_bug78937.inc:6
|
||||
|
@ -17,9 +17,7 @@ var_dump(MyEnum::Foo);
|
||||
var_dump(MyEnum::Bar);
|
||||
|
||||
?>
|
||||
--EXPECTF--
|
||||
--EXPECT--
|
||||
enum(MyEnum::Bar)
|
||||
|
||||
Warning: Can't preload unlinked class MyEnum2: Unknown reason in %s on line %d
|
||||
enum(MyEnum::Foo)
|
||||
enum(MyEnum::Bar)
|
||||
|
Loading…
Reference in New Issue
Block a user