diff options
author | Nikita Popov <nikita.ppv@gmail.com> | 2019-01-29 12:14:54 +0100 |
---|---|---|
committer | Nikita Popov <nikita.ppv@gmail.com> | 2019-01-29 13:04:20 +0100 |
commit | 682b54f68748715f85e9ac4a267477d9ac61918a (patch) | |
tree | ce6512a63b300d6b0bf1059078992cad81120cf9 /Zend | |
parent | 4d8dc2b05e7126bfcd5b639ca632906f96d5ff65 (diff) | |
download | php-git-682b54f68748715f85e9ac4a267477d9ac61918a.tar.gz |
Remove support for legacy constructors
This has been deprecated in PHP 7.0 by
https://wiki.php.net/rfc/remove_php4_constructors.
Diffstat (limited to 'Zend')
-rw-r--r-- | Zend/tests/bug38942.phpt | 18 | ||||
-rw-r--r-- | Zend/tests/bug39127.phpt | 22 | ||||
-rw-r--r-- | Zend/tests/bug40784.phpt | 25 | ||||
-rw-r--r-- | Zend/tests/bug43323.phpt | 14 | ||||
-rw-r--r-- | Zend/tests/bug50261.phpt | 39 | ||||
-rw-r--r-- | Zend/tests/bug52051.phpt | 34 | ||||
-rw-r--r-- | Zend/tests/bug52160.phpt | 34 | ||||
-rw-r--r-- | Zend/tests/dynamic_call_001.phpt | 22 | ||||
-rw-r--r-- | Zend/tests/return_types/023.phpt | 12 | ||||
-rw-r--r-- | Zend/tests/traits/bug55554a.phpt | 33 | ||||
-rw-r--r-- | Zend/tests/traits/bug55554b.phpt | 55 | ||||
-rw-r--r-- | Zend/tests/traits/bug55554c.phpt | 44 | ||||
-rw-r--r-- | Zend/tests/traits/bug55554d.phpt | 29 | ||||
-rw-r--r-- | Zend/tests/traits/bug55554e.phpt | 28 | ||||
-rw-r--r-- | Zend/tests/traits/bug55554f.phpt | 27 | ||||
-rw-r--r-- | Zend/tests/traits/bug55554g.phpt | 27 | ||||
-rw-r--r-- | Zend/tests/traits/noctor001.phpt | 29 | ||||
-rw-r--r-- | Zend/zend_API.c | 9 | ||||
-rw-r--r-- | Zend/zend_compile.c | 12 | ||||
-rw-r--r-- | Zend/zend_inheritance.c | 41 | ||||
-rw-r--r-- | Zend/zend_inheritance.h | 1 |
21 files changed, 4 insertions, 551 deletions
diff --git a/Zend/tests/bug38942.phpt b/Zend/tests/bug38942.phpt deleted file mode 100644 index d0335b1071..0000000000 --- a/Zend/tests/bug38942.phpt +++ /dev/null @@ -1,18 +0,0 @@ ---TEST-- -Bug #38942 (Double old-style-ctor inheritance) ---FILE-- -<?php -class foo { - public function foo() {} -} - -class bar extends foo { -} -print_r(get_class_methods("bar")); -?> ---EXPECTF-- -Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; foo has a deprecated constructor in %s on line %d -Array -( - [0] => foo -) diff --git a/Zend/tests/bug39127.phpt b/Zend/tests/bug39127.phpt deleted file mode 100644 index 31fb6d27d5..0000000000 --- a/Zend/tests/bug39127.phpt +++ /dev/null @@ -1,22 +0,0 @@ ---TEST-- -Bug #39127 (Old-style constructor fallbacks produce strange results) ---FILE-- -<?php - -class a { function a() { var_dump("a::a() called"); } } -class b extends a {} - -$b = new b; -var_dump(is_callable(array($b,"a"))); -var_dump(is_callable(array($b,"b"))); -var_dump(is_callable(array($b,"__construct"))); - -echo "Done\n"; -?> ---EXPECTF-- -Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; a has a deprecated constructor in %s on line %d -string(13) "a::a() called" -bool(true) -bool(false) -bool(false) -Done diff --git a/Zend/tests/bug40784.phpt b/Zend/tests/bug40784.phpt deleted file mode 100644 index ac2b2331b2..0000000000 --- a/Zend/tests/bug40784.phpt +++ /dev/null @@ -1,25 +0,0 @@ ---TEST-- -Bug #40784 (Case sensivity in constructor's fallback) ---FILE-- -<?php - -class A { - function A () { echo "I'm A\n"; } -} - -class B extends A { - function __construct() { - parent::__construct(); - parent::__constrUct(); - } -} - -$b = new B; - -echo "Done\n"; -?> ---EXPECTF-- -Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; A has a deprecated constructor in %s on line %d -I'm A -I'm A -Done diff --git a/Zend/tests/bug43323.phpt b/Zend/tests/bug43323.phpt deleted file mode 100644 index 74abe766e5..0000000000 --- a/Zend/tests/bug43323.phpt +++ /dev/null @@ -1,14 +0,0 @@ ---TEST-- -Bug #43323 (Wrong count abstract methods) ---FILE-- -<?php -abstract class bar { - abstract public function bar(); -} - -class foo extends bar { -} ---EXPECTF-- -Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; bar has a deprecated constructor in %s on line %d - -Fatal error: Class foo contains 1 abstract method and must therefore be declared abstract or implement the remaining methods (bar::bar) in %sbug43323.php on line 7 diff --git a/Zend/tests/bug50261.phpt b/Zend/tests/bug50261.phpt deleted file mode 100644 index 321e9cfb8b..0000000000 --- a/Zend/tests/bug50261.phpt +++ /dev/null @@ -1,39 +0,0 @@ ---TEST-- -Bug #50261 (Crash When Calling Parent Constructor with call_user_func()) ---FILE-- -<?php - -class testClass { - function testClass($x) { - echo __METHOD__, " (". $x . ")\n"; - } -} - -class testClass2 extends testClass { - function __construct() { - static $x = 0; - - if ($x) { - print "Infinite loop...\n"; - } else { - $x++; - - parent::__construct(1); - testclass::__construct(2); - call_user_func(array('parent', '__construct'), 3); - call_user_func(array('testclass', '__construct'), 4); - call_user_func(array('testclass', 'testclass'), 5); - } - } -} - -new testClass2; - -?> ---EXPECTF-- -Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; testClass has a deprecated constructor in %s on line %d -testClass::testClass (1) -testClass::testClass (2) -testClass::testClass (3) -testClass::testClass (4) -testClass::testClass (5) diff --git a/Zend/tests/bug52051.phpt b/Zend/tests/bug52051.phpt deleted file mode 100644 index acfddbc36d..0000000000 --- a/Zend/tests/bug52051.phpt +++ /dev/null @@ -1,34 +0,0 @@ ---TEST-- -Bug #52051 (handling of case sensitivity of old-style constructors changed in 5.3+) ---FILE-- -<?php - -class AA { - function AA() { echo "foo\n"; } -} -class bb extends AA {} -class CC extends bb { - function CC() { parent::bb(); } -} -new CC(); - -class A { - function A() { echo "bar\n"; } -} -class B extends A {} -class C extends B { - function C() { parent::B(); } -} -new C(); - -?> ---EXPECTF-- -Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; AA has a deprecated constructor in %s on line %d - -Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; CC has a deprecated constructor in %s on line %d - -Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; A has a deprecated constructor in %s on line %d - -Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; C has a deprecated constructor in %s on line %d -foo -bar diff --git a/Zend/tests/bug52160.phpt b/Zend/tests/bug52160.phpt deleted file mode 100644 index a0e5a9d7ae..0000000000 --- a/Zend/tests/bug52160.phpt +++ /dev/null @@ -1,34 +0,0 @@ ---TEST-- -Bug #52160 (Invalid E_STRICT redefined constructor error) ---FILE-- -<?php - -class bar { - function __construct() { } - static function bar() { - var_dump(1); - } -} - -bar::bar(); - -class foo { - static function foo() { - var_dump(2); - } - function __construct() { } -} - -foo::foo(); - -class baz { - static function baz() { - var_dump(3); - } -} - -?> ---EXPECTF-- -Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; baz has a deprecated constructor in %s on line %d - -Fatal error: Constructor baz::baz() cannot be static in %s on line %d diff --git a/Zend/tests/dynamic_call_001.phpt b/Zend/tests/dynamic_call_001.phpt deleted file mode 100644 index 7f8a6c0b3d..0000000000 --- a/Zend/tests/dynamic_call_001.phpt +++ /dev/null @@ -1,22 +0,0 @@ ---TEST-- -Testing dynamic call to constructor (old-style) ---FILE-- -<?php - -class foo { - public function foo() { - } -} - -$a = 'foo'; - -$a::$a(); - -?> ---EXPECTF-- -Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; foo has a deprecated constructor in %s on line %d - -Fatal error: Uncaught Error: Non-static method foo::foo() cannot be called statically in %s:%d -Stack trace: -#0 {main} - thrown in %s on line %d diff --git a/Zend/tests/return_types/023.phpt b/Zend/tests/return_types/023.phpt deleted file mode 100644 index e8e8732ef1..0000000000 --- a/Zend/tests/return_types/023.phpt +++ /dev/null @@ -1,12 +0,0 @@ ---TEST-- -PHP 4 Constructors cannot declare a return type ---FILE-- -<?php - -class Foo { - function foo() : Foo {} -} ---EXPECTF-- -Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; Foo has a deprecated constructor in %s on line %d - -Fatal error: Constructor %s::%s() cannot declare a return type in %s on line %d diff --git a/Zend/tests/traits/bug55554a.phpt b/Zend/tests/traits/bug55554a.phpt deleted file mode 100644 index dd844ba661..0000000000 --- a/Zend/tests/traits/bug55554a.phpt +++ /dev/null @@ -1,33 +0,0 @@ ---TEST-- -Bug #55137 (Legacy constructor not registered for class) ---FILE-- -<?php - -// All constructors should be registered as such - -trait TConstructor { - public function constructor() { - echo "ctor executed\n"; - } -} - -class NewConstructor { - use TConstructor { - constructor as __construct; - } -} - -class LegacyConstructor { - use TConstructor { - constructor as LegacyConstructor; - } -} - -echo "New constructor: "; -$o = new NewConstructor; - -echo "Legacy constructor: "; -$o = new LegacyConstructor; ---EXPECT-- -New constructor: ctor executed -Legacy constructor: ctor executed diff --git a/Zend/tests/traits/bug55554b.phpt b/Zend/tests/traits/bug55554b.phpt deleted file mode 100644 index 65ecb7adaf..0000000000 --- a/Zend/tests/traits/bug55554b.phpt +++ /dev/null @@ -1,55 +0,0 @@ ---TEST-- -Bug #55137 (Legacy constructor not registered for class) ---FILE-- -<?php - -trait TConstructor { - public function foo() { - echo "foo executed\n"; - } - public function bar() { - echo "bar executed\n"; - } -} - -class OverridingIsSilent1 { - use TConstructor { - foo as __construct; - } - - public function __construct() { - echo "OverridingIsSilent1 __construct\n"; - } -} - -$o = new OverridingIsSilent1; - -class OverridingIsSilent2 { - use TConstructor { - foo as OverridingIsSilent2; - } - - public function OverridingIsSilent2() { - echo "OverridingIsSilent2 OverridingIsSilent2\n"; - } -} - -$o = new OverridingIsSilent2; - -class ReportCollision { - use TConstructor { - bar as ReportCollision; - foo as __construct; - } -} - - -echo "ReportCollision: "; -$o = new ReportCollision; ---EXPECTF-- -OverridingIsSilent1 __construct - -Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; OverridingIsSilent2 has a deprecated constructor in %s on line %d -OverridingIsSilent2 OverridingIsSilent2 - -Fatal error: ReportCollision has colliding constructor definitions coming from traits in %s on line %d diff --git a/Zend/tests/traits/bug55554c.phpt b/Zend/tests/traits/bug55554c.phpt deleted file mode 100644 index 420689259e..0000000000 --- a/Zend/tests/traits/bug55554c.phpt +++ /dev/null @@ -1,44 +0,0 @@ ---TEST-- -Bug #55137 (Legacy constructor not registered for class) ---FILE-- -<?php - -// Test that the behavior is consistent with the existing handling of new -// and legacy constructors. -// Here, the traits conflicts are overridden by local definitions, -// and the two constructor definitions do not directly collide in that case. - -trait TC1 { - public function __construct() { - echo "TC1 executed\n"; - } - public function ReportCollision() { - echo "TC1 executed\n"; - } -} - -trait TC2 { - public function __construct() { - echo "TC2 executed\n"; - } - public function ReportCollision() { - echo "TC1 executed\n"; - } -} - -class ReportCollision { - use TC1, TC2; - - public function __construct() { - echo "New constructor executed\n"; - } - public function ReportCollision() { - echo "Legacy constructor executed\n"; - } -} - - -echo "ReportCollision: "; -$o = new ReportCollision; ---EXPECT-- -ReportCollision: New constructor executed diff --git a/Zend/tests/traits/bug55554d.phpt b/Zend/tests/traits/bug55554d.phpt deleted file mode 100644 index 88564a83c1..0000000000 --- a/Zend/tests/traits/bug55554d.phpt +++ /dev/null @@ -1,29 +0,0 @@ ---TEST-- -Bug #55137 (Legacy constructor not registered for class) ---FILE-- -<?php - -// Test mixed constructors from different traits, we are more strict about -// these cases, since that can lead to un-expected behavior. -// It is not consistent with the normal constructor handling, but -// here we have a chance to be more strict for the new traits. - -trait TNew { - public function __construct() { - echo "TNew executed\n"; - } -} - -trait TLegacy { - public function ReportCollision() { - echo "ReportCollision executed\n"; - } -} - -class ReportCollision { - use TNew, TLegacy; -} - -$o = new ReportCollision; ---EXPECTF-- -Fatal error: ReportCollision has colliding constructor definitions coming from traits in %s on line %d diff --git a/Zend/tests/traits/bug55554e.phpt b/Zend/tests/traits/bug55554e.phpt deleted file mode 100644 index ed1c324831..0000000000 --- a/Zend/tests/traits/bug55554e.phpt +++ /dev/null @@ -1,28 +0,0 @@ ---TEST-- -Bug #55137 (Legacy constructor not registered for class) ---FILE-- -<?php - -// Ensuring that the collision still occurs as expected. - -trait TC1 { - public function ReportCollision() { - echo "TC1 executed\n"; - } -} - -trait TC2 { - public function ReportCollision() { - echo "TC1 executed\n"; - } -} - -class ReportCollision { - use TC1, TC2; -} - - -echo "ReportCollision: "; -$o = new ReportCollision; ---EXPECTF-- -Fatal error: Trait method ReportCollision has not been applied, because there are collisions with other trait methods on ReportCollision in %s on line %d diff --git a/Zend/tests/traits/bug55554f.phpt b/Zend/tests/traits/bug55554f.phpt deleted file mode 100644 index d7d4fc007d..0000000000 --- a/Zend/tests/traits/bug55554f.phpt +++ /dev/null @@ -1,27 +0,0 @@ ---TEST-- -Bug #55137 (Legacy constructor not registered for class) ---FILE-- -<?php - -// Ensuring that inconsistent constructor use results in an error to avoid -// problems creeping in. - -trait TNew { - public function __construct() { - echo "TNew executed\n"; - } -} - -class ReportCollision { - use TNew; - - public function ReportCollision() { - echo "ReportCollision executed\n"; - } -} - - -echo "ReportCollision: "; -$o = new ReportCollision; ---EXPECTF-- -Fatal error: ReportCollision has colliding constructor definitions coming from traits in %s on line %d diff --git a/Zend/tests/traits/bug55554g.phpt b/Zend/tests/traits/bug55554g.phpt deleted file mode 100644 index d7de8216b0..0000000000 --- a/Zend/tests/traits/bug55554g.phpt +++ /dev/null @@ -1,27 +0,0 @@ ---TEST-- -Bug #55137 (Legacy constructor not registered for class) ---FILE-- -<?php - -// Ensuring that inconsistent constructor use results in an error to avoid -// problems creeping in. - -trait TLegacy { - public function ReportCollision() { - echo "TLegacy executed\n"; - } -} - -class ReportCollision { - use TLegacy; - - public function __construct() { - echo "ReportCollision executed\n"; - } -} - - -echo "ReportCollision: "; -$o = new ReportCollision; ---EXPECTF-- -Fatal error: ReportCollision has colliding constructor definitions coming from traits in %s on line %d diff --git a/Zend/tests/traits/noctor001.phpt b/Zend/tests/traits/noctor001.phpt deleted file mode 100644 index 19fe8dbd0d..0000000000 --- a/Zend/tests/traits/noctor001.phpt +++ /dev/null @@ -1,29 +0,0 @@ ---TEST-- -Don't mark trait methods as constructor ---FILE-- -<?php -trait Foo { - public function Foo() { - } -} - -class Bar { - use Foo; - public function Bar() { - } -} - -$rfoofoo = new ReflectionMethod('Foo::Foo'); -var_dump($rfoofoo->isConstructor()); - -$rbarfoo = new ReflectionMethod('Bar::Foo'); -var_dump($rbarfoo->isConstructor()); - -$rbarbar = new ReflectionMethod('Bar::Bar'); -var_dump($rbarbar->isConstructor()); -?> ---EXPECTF-- -Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; Bar has a deprecated constructor in %s on line %d -bool(false) -bool(false) -bool(true) diff --git a/Zend/zend_API.c b/Zend/zend_API.c index a6aa4e5837..2ec6d34145 100644 --- a/Zend/zend_API.c +++ b/Zend/zend_API.c @@ -2262,13 +2262,8 @@ ZEND_API int zend_register_functions(zend_class_entry *scope, const zend_functio } if (scope) { - /* Look for ctor, dtor, clone - * If it's an old-style constructor, store it only if we don't have - * a constructor already. - */ - if ((fname_len == class_name_len) && !ctor && !memcmp(ZSTR_VAL(lowercase_name), lc_class_name, class_name_len+1)) { - ctor = reg_function; - } else if (ZSTR_VAL(lowercase_name)[0] != '_' || ZSTR_VAL(lowercase_name)[1] != '_') { + /* Look for ctor, dtor, clone */ + if (ZSTR_VAL(lowercase_name)[0] != '_' || ZSTR_VAL(lowercase_name)[1] != '_') { reg_function = NULL; } else if (zend_string_equals_literal(lowercase_name, ZEND_CONSTRUCTOR_FUNC_NAME)) { ctor = reg_function; diff --git a/Zend/zend_compile.c b/Zend/zend_compile.c index cfe03e71f9..0d7f8b1b25 100644 --- a/Zend/zend_compile.c +++ b/Zend/zend_compile.c @@ -5539,7 +5539,6 @@ void zend_begin_method_decl(zend_op_array *op_array, zend_string *name, zend_boo { zend_class_entry *ce = CG(active_class_entry); zend_bool in_interface = (ce->ce_flags & ZEND_ACC_INTERFACE) != 0; - zend_bool in_trait = (ce->ce_flags & ZEND_ACC_TRAIT) != 0; zend_bool is_public = (op_array->fn_flags & ZEND_ACC_PUBLIC) != 0; zend_bool is_static = (op_array->fn_flags & ZEND_ACC_STATIC) != 0; @@ -5631,11 +5630,7 @@ void zend_begin_method_decl(zend_op_array *op_array, zend_string *name, zend_boo } } } else { - if (!in_trait && zend_string_equals_ci(lcname, ce->name)) { - if (!ce->constructor) { - ce->constructor = (zend_function *) op_array; - } - } else if (ZSTR_VAL(lcname)[0] != '_' || ZSTR_VAL(lcname)[1] != '_') { + if (ZSTR_VAL(lcname)[0] != '_' || ZSTR_VAL(lcname)[1] != '_') { if (!is_static) { op_array->fn_flags |= ZEND_ACC_ALLOW_STATIC; } @@ -6253,11 +6248,6 @@ void zend_compile_class_decl(zend_ast *ast, zend_bool toplevel) /* {{{ */ /* Reset lineno for final opcodes and errors */ CG(zend_lineno) = ast->lineno; - if (!(ce->ce_flags & ZEND_ACC_IMPLEMENT_TRAITS)) { - /* For traits this check is delayed until after trait binding */ - zend_check_deprecated_constructor(ce); - } - if (ce->constructor) { if (ce->constructor->common.fn_flags & ZEND_ACC_STATIC) { zend_error_noreturn(E_COMPILE_ERROR, "Constructor %s::%s() cannot be static", diff --git a/Zend/zend_inheritance.c b/Zend/zend_inheritance.c index 9dc26088f7..804e16dda6 100644 --- a/Zend/zend_inheritance.c +++ b/Zend/zend_inheritance.c @@ -1287,14 +1287,11 @@ static void zend_do_implement_interfaces(zend_class_entry *ce) /* {{{ */ static void zend_add_magic_methods(zend_class_entry* ce, zend_string* mname, zend_function* fe) /* {{{ */ { - if (ZSTR_LEN(ce->name) != ZSTR_LEN(mname) && (ZSTR_VAL(mname)[0] != '_' || ZSTR_VAL(mname)[1] != '_')) { + if (ZSTR_VAL(mname)[0] != '_' || ZSTR_VAL(mname)[1] != '_') { /* pass */ } else if (zend_string_equals_literal(mname, ZEND_CLONE_FUNC_NAME)) { ce->clone = fe; } else if (zend_string_equals_literal(mname, ZEND_CONSTRUCTOR_FUNC_NAME)) { - if (ce->constructor && (!ce->parent || ce->constructor != ce->parent->constructor)) { - zend_error_noreturn(E_COMPILE_ERROR, "%s has colliding constructor definitions coming from traits", ZSTR_VAL(ce->name)); - } ce->constructor = fe; } else if (zend_string_equals_literal(mname, ZEND_DESTRUCTOR_FUNC_NAME)) { ce->destructor = fe; @@ -1318,16 +1315,6 @@ static void zend_add_magic_methods(zend_class_entry* ce, zend_string* mname, zen ce->__tostring = fe; } else if (zend_string_equals_literal(mname, ZEND_DEBUGINFO_FUNC_NAME)) { ce->__debugInfo = fe; - } else if (ZSTR_LEN(ce->name) == ZSTR_LEN(mname)) { - zend_string *lowercase_name = zend_string_tolower(ce->name); - lowercase_name = zend_new_interned_string(lowercase_name); - if (!memcmp(ZSTR_VAL(mname), ZSTR_VAL(lowercase_name), ZSTR_LEN(mname))) { - if (ce->constructor && (!ce->parent || ce->constructor != ce->parent->constructor)) { - zend_error_noreturn(E_COMPILE_ERROR, "%s has colliding constructor definitions coming from traits", ZSTR_VAL(ce->name)); - } - ce->constructor = fe; - } - zend_string_release_ex(lowercase_name, 0); } } /* }}} */ @@ -1934,32 +1921,6 @@ static void zend_do_bind_traits(zend_class_entry *ce) /* {{{ */ zend_do_traits_property_binding(ce, traits); efree(traits); - - /* Emit E_DEPRECATED for PHP 4 constructors */ - zend_check_deprecated_constructor(ce); -} -/* }}} */ - - -static zend_bool zend_has_deprecated_constructor(const zend_class_entry *ce) /* {{{ */ -{ - const zend_string *constructor_name; - if (!ce->constructor) { - return 0; - } - constructor_name = ce->constructor->common.function_name; - return !zend_binary_strcasecmp( - ZSTR_VAL(ce->name), ZSTR_LEN(ce->name), - ZSTR_VAL(constructor_name), ZSTR_LEN(constructor_name) - ); -} -/* }}} */ - -void zend_check_deprecated_constructor(const zend_class_entry *ce) /* {{{ */ -{ - if (zend_has_deprecated_constructor(ce)) { - zend_error(E_DEPRECATED, "Methods with the same name as their class will not be constructors in a future version of PHP; %s has a deprecated constructor", ZSTR_VAL(ce->name)); - } } /* }}} */ diff --git a/Zend/zend_inheritance.h b/Zend/zend_inheritance.h index a882f6461f..341edbeab9 100644 --- a/Zend/zend_inheritance.h +++ b/Zend/zend_inheritance.h @@ -30,7 +30,6 @@ ZEND_API void zend_do_inheritance(zend_class_entry *ce, zend_class_entry *parent ZEND_API void zend_do_link_class(zend_class_entry *ce, zend_class_entry *parent_ce); void zend_verify_abstract_class(zend_class_entry *ce); -void zend_check_deprecated_constructor(const zend_class_entry *ce); void zend_build_properties_info_table(zend_class_entry *ce); END_EXTERN_C() |