summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXinchen Hui <laruence@php.net>2011-09-23 15:08:11 +0000
committerXinchen Hui <laruence@php.net>2011-09-23 15:08:11 +0000
commitc58f254354666c312e02e5069ebb87687b44df71 (patch)
tree7a630a769daf838970afaea4b430bbad3f22a351
parentf5ec360df75f61aa65b3a78ba79f7c40d51776b6 (diff)
downloadphp-git-c58f254354666c312e02e5069ebb87687b44df71.tar.gz
Improve the warning message of incompatible arguments. (#55719)
And fix tests related.
-rw-r--r--NEWS3
-rw-r--r--Zend/tests/argument_restriction_001.phpt16
-rw-r--r--Zend/tests/argument_restriction_002.phpt16
-rw-r--r--Zend/tests/argument_restriction_003.phpt19
-rw-r--r--Zend/tests/argument_restriction_004.phpt17
-rw-r--r--Zend/tests/argument_restriction_005.phpt11
-rw-r--r--Zend/tests/bug47981.phpt2
-rw-r--r--Zend/tests/bug51421.phpt2
-rw-r--r--Zend/tests/objects_002.phpt2
-rw-r--r--Zend/tests/objects_003.phpt2
-rw-r--r--Zend/tests/objects_004.phpt2
-rw-r--r--Zend/tests/objects_005.phpt2
-rw-r--r--Zend/tests/objects_006.phpt2
-rw-r--r--Zend/tests/objects_007.phpt2
-rw-r--r--Zend/tests/objects_008.phpt2
-rw-r--r--Zend/tests/objects_009.phpt2
-rw-r--r--Zend/tests/traits/inheritance003.phpt2
-rw-r--r--Zend/zend_compile.c171
-rw-r--r--ext/standard/tests/filters/php_user_filter_01.phpt2
-rw-r--r--ext/standard/tests/filters/php_user_filter_02.phpt2
-rw-r--r--ext/standard/tests/filters/php_user_filter_03.phpt2
-rwxr-xr-xtests/classes/ctor_in_interface_01.phpt2
-rwxr-xr-xtests/classes/ctor_in_interface_03.phpt2
-rwxr-xr-xtests/classes/ctor_in_interface_04.phpt2
-rwxr-xr-xtests/classes/inheritance_003.phpt2
-rwxr-xr-xtests/classes/inheritance_004.phpt2
-rw-r--r--tests/classes/method_override_optional_arg_001.phpt2
-rw-r--r--tests/classes/method_override_optional_arg_002.phpt2
-rw-r--r--tests/classes/type_hinting_005a.phpt4
-rw-r--r--tests/classes/type_hinting_005b.phpt4
-rw-r--r--tests/classes/type_hinting_005c.phpt4
-rw-r--r--tests/classes/type_hinting_005d.phpt4
32 files changed, 279 insertions, 32 deletions
diff --git a/NEWS b/NEWS
index 8c55a4095f..7363c04058 100644
--- a/NEWS
+++ b/NEWS
@@ -1,6 +1,9 @@
PHP NEWS
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
?? ??? 2011, PHP 5.4.0 RC1
+- General improvements:
+ . Improve the warning message of incompatible arguments. (Laruence)
+
- Core:
. Fixed bug #55707 (undefined reference to `__sync_fetch_and_add_4' on Linux
parisc). (Felipe)
diff --git a/Zend/tests/argument_restriction_001.phpt b/Zend/tests/argument_restriction_001.phpt
new file mode 100644
index 0000000000..e62ad300c9
--- /dev/null
+++ b/Zend/tests/argument_restriction_001.phpt
@@ -0,0 +1,16 @@
+--TEST--
+Bug #55719 (Argument restriction should come with a more specific error message)
+--FILE--
+<?php
+Class Base {
+ public function &test($foo, array $bar, $option = NULL, $extra = "lllllllllllllllllllllllllllllllllllllllllllllllllll") {
+ }
+}
+
+class Sub extends Base {
+ public function &test() {
+ }
+}
+?>
+--EXPECTF--
+Strict Standards: Declaration of Sub::test() should be compatible with & Base::test($foo, array $bar, $option = NULL, $extra = 'llllllllll...') in %sargument_restriction_001.php on line %d
diff --git a/Zend/tests/argument_restriction_002.phpt b/Zend/tests/argument_restriction_002.phpt
new file mode 100644
index 0000000000..c6a472e0f5
--- /dev/null
+++ b/Zend/tests/argument_restriction_002.phpt
@@ -0,0 +1,16 @@
+--TEST--
+Bug #55719 (Argument restriction should come with a more specific error message)
+--FILE--
+<?php
+Abstract Class Base {
+ public function test($foo, array &$bar, $option = NULL, $extra = 3.141592653589793238462643383279502884197169399375105 ) {
+ }
+}
+
+class Sub extends Base {
+ public function test($foo, array &$bar) {
+ }
+}
+?>
+--EXPECTF--
+Strict Standards: Declaration of Sub::test() should be compatible with Base::test($foo, array &$bar, $option = NULL, $extra = 3.1415926535898) in %sargument_restriction_002.php on line %d
diff --git a/Zend/tests/argument_restriction_003.phpt b/Zend/tests/argument_restriction_003.phpt
new file mode 100644
index 0000000000..393581fcfc
--- /dev/null
+++ b/Zend/tests/argument_restriction_003.phpt
@@ -0,0 +1,19 @@
+--TEST--
+Bug #55719 (Argument restriction should come with a more specific error message)
+--FILE--
+<?php
+class Foo {
+}
+
+Abstract Class Base {
+ public function test(Foo $foo, array $bar, $option = NULL, $extra = "lllllllllllllllllllllllllllllllllllllllllllllllllll") {
+ }
+}
+
+class Sub extends Base {
+ public function test() {
+ }
+}
+?>
+--EXPECTF--
+Strict Standards: Declaration of Sub::test() should be compatible with Base::test(Foo $foo, array $bar, $option = NULL, $extra = 'llllllllll...') in %sargument_restriction_003.php on line %d
diff --git a/Zend/tests/argument_restriction_004.phpt b/Zend/tests/argument_restriction_004.phpt
new file mode 100644
index 0000000000..599b3e1604
--- /dev/null
+++ b/Zend/tests/argument_restriction_004.phpt
@@ -0,0 +1,17 @@
+--TEST--
+Bug #55719 (Argument restriction should come with a more specific error message)
+--FILE--
+<?php
+class Foo {
+}
+
+Abstract Class Base {
+ abstract public function test(Foo $foo, array $bar, $option = NULL, $extra = 16777215) ;
+}
+
+class Sub extends Base {
+ public function test(Foo $foo, array $bar, $option = NULL, $extra = 0xffffff ) {
+ }
+}
+?>
+--EXPECTF--
diff --git a/Zend/tests/argument_restriction_005.phpt b/Zend/tests/argument_restriction_005.phpt
new file mode 100644
index 0000000000..2826fe6a81
--- /dev/null
+++ b/Zend/tests/argument_restriction_005.phpt
@@ -0,0 +1,11 @@
+--TEST--
+Bug #55719 (Argument restriction should come with a more specific error message)
+--FILE--
+<?php
+class Sub implements ArrayAccess {
+ public function offsetSet() {
+ }
+}
+?>
+--EXPECTF--
+Fatal error: Declaration of Sub::offsetSet() must be compatible with ArrayAccess::offsetSet($offset, $value) in %sargument_restriction_005.php on line %d
diff --git a/Zend/tests/bug47981.phpt b/Zend/tests/bug47981.phpt
index 2d68d3706f..c16ae0ffc8 100644
--- a/Zend/tests/bug47981.phpt
+++ b/Zend/tests/bug47981.phpt
@@ -14,6 +14,6 @@ class b implements a { function f($a=1) {}}
class c extends b {function f() {}}
?>
--EXPECTF--
-string(62) "Declaration of c::f() should be compatible with that of b::f()"
+string(60) "Declaration of c::f() should be compatible with b::f($a = 1)"
diff --git a/Zend/tests/bug51421.phpt b/Zend/tests/bug51421.phpt
index 825012a289..bc1758c300 100644
--- a/Zend/tests/bug51421.phpt
+++ b/Zend/tests/bug51421.phpt
@@ -15,4 +15,4 @@ class Test extends TestInterface {
?>
--EXPECTF--
-Fatal error: Declaration of Test::__construct() must be compatible with that of TestInterface::__construct() in %s on line %d
+Fatal error: Declaration of Test::__construct() must be compatible with TestInterface::__construct(ExampleClass $var) in %s on line %d
diff --git a/Zend/tests/objects_002.phpt b/Zend/tests/objects_002.phpt
index 87ba0fdc3b..e2db140b18 100644
--- a/Zend/tests/objects_002.phpt
+++ b/Zend/tests/objects_002.phpt
@@ -20,5 +20,5 @@ class test3 extends test {
echo "Done\n";
?>
--EXPECTF--
-Strict Standards: Declaration of test3::foo() should be compatible with that of test::foo() in %s on line %d
+Strict Standards: Declaration of test3::foo() should be compatible with test::foo() in %s on line %d
Done
diff --git a/Zend/tests/objects_003.phpt b/Zend/tests/objects_003.phpt
index 1c254290f7..7e0f083267 100644
--- a/Zend/tests/objects_003.phpt
+++ b/Zend/tests/objects_003.phpt
@@ -20,5 +20,5 @@ class test3 extends test {
echo "Done\n";
?>
--EXPECTF--
-Strict Standards: Declaration of test3::foo() should be compatible with that of test::foo() in %s on line %d
+Strict Standards: Declaration of test3::foo() should be compatible with test::foo($arg) in %s on line %d
Done
diff --git a/Zend/tests/objects_004.phpt b/Zend/tests/objects_004.phpt
index 35ab4775b1..eb04124474 100644
--- a/Zend/tests/objects_004.phpt
+++ b/Zend/tests/objects_004.phpt
@@ -20,5 +20,5 @@ class test3 extends test {
echo "Done\n";
?>
--EXPECTF--
-Strict Standards: Declaration of test3::foo() should be compatible with that of test::foo() in %s on line %d
+Strict Standards: Declaration of test3::foo() should be compatible with test::foo($arg) in %s on line %d
Done
diff --git a/Zend/tests/objects_005.phpt b/Zend/tests/objects_005.phpt
index d583c9be90..908e797243 100644
--- a/Zend/tests/objects_005.phpt
+++ b/Zend/tests/objects_005.phpt
@@ -20,5 +20,5 @@ class test3 extends test {
echo "Done\n";
?>
--EXPECTF--
-Strict Standards: Declaration of test3::foo() should be compatible with that of test::foo() in %s on line %d
+Strict Standards: Declaration of test3::foo() should be compatible with & test::foo() in %s on line %d
Done
diff --git a/Zend/tests/objects_006.phpt b/Zend/tests/objects_006.phpt
index fb2e28b3af..f84a3053e9 100644
--- a/Zend/tests/objects_006.phpt
+++ b/Zend/tests/objects_006.phpt
@@ -20,5 +20,5 @@ class test3 extends test {
echo "Done\n";
?>
--EXPECTF--
-Strict Standards: Declaration of test3::foo() should be compatible with that of test::foo() in %s on line %d
+Strict Standards: Declaration of test3::foo() should be compatible with test::foo($arg, $arg2 = NULL) in %s on line %d
Done
diff --git a/Zend/tests/objects_007.phpt b/Zend/tests/objects_007.phpt
index 2fce04a17d..75e0817589 100644
--- a/Zend/tests/objects_007.phpt
+++ b/Zend/tests/objects_007.phpt
@@ -20,5 +20,5 @@ class test3 extends test {
echo "Done\n";
?>
--EXPECTF--
-Strict Standards: Declaration of test3::foo() should be compatible with that of test::foo() in %s on line %d
+Strict Standards: Declaration of test3::foo() should be compatible with test::foo($arg, &$arg2 = NULL) in %s on line %d
Done
diff --git a/Zend/tests/objects_008.phpt b/Zend/tests/objects_008.phpt
index b61d16786c..f6d5826eb8 100644
--- a/Zend/tests/objects_008.phpt
+++ b/Zend/tests/objects_008.phpt
@@ -20,5 +20,5 @@ class test3 extends test {
echo "Done\n";
?>
--EXPECTF--
-Strict Standards: Declaration of test3::foo() should be compatible with that of test::foo() in %s on line %d
+Strict Standards: Declaration of test3::foo() should be compatible with test::foo(Test $arg) in %s on line %d
Done
diff --git a/Zend/tests/objects_009.phpt b/Zend/tests/objects_009.phpt
index 5fad0046a8..04b1118e09 100644
--- a/Zend/tests/objects_009.phpt
+++ b/Zend/tests/objects_009.phpt
@@ -20,5 +20,5 @@ class test3 extends test {
echo "Done\n";
?>
--EXPECTF--
-Strict Standards: Declaration of test3::foo() should be compatible with that of test::foo() in %s on line %d
+Strict Standards: Declaration of test3::foo() should be compatible with test::foo(Test $arg) in %s on line %d
Done
diff --git a/Zend/tests/traits/inheritance003.phpt b/Zend/tests/traits/inheritance003.phpt
index ba2e4da76d..b457a73fea 100644
--- a/Zend/tests/traits/inheritance003.phpt
+++ b/Zend/tests/traits/inheritance003.phpt
@@ -35,4 +35,4 @@ $o->sayHello(array());
--EXPECTF--
World!
-Fatal error: Declaration of MyHelloWorld::sayHello() must be compatible with that of Base::sayHello() in %s on line %d
+Fatal error: Declaration of MyHelloWorld::sayHello() must be compatible with Base::sayHello(array $a) in %s on line %d
diff --git a/Zend/zend_compile.c b/Zend/zend_compile.c
index 13ee9b28d0..83de4ea60d 100644
--- a/Zend/zend_compile.c
+++ b/Zend/zend_compile.c
@@ -3010,7 +3010,169 @@ static zend_bool zend_do_perform_implementation_check(const zend_function *fe, c
}
/* }}} */
-static void do_inheritance_check_on_method(zend_function *child, zend_function *parent TSRMLS_DC)
+#define REALLOC_BUF_IF_EXCEED(buf, offset, length, size) \
+ if (UNEXPECTED(offset - buf + size >= length)) { \
+ length += size + 1; \
+ buf = erealloc(buf, length); \
+ }
+
+static char * zend_get_function_declaration(zend_function *fptr TSRMLS_DC) /* {{{ */
+{
+ char *offset, *buf;
+ zend_uint length = 1024;
+
+ offset = buf = (char *)emalloc(length * sizeof(char));
+ if (fptr->op_array.fn_flags & ZEND_ACC_RETURN_REFERENCE) {
+ *(offset++) = '&';
+ *(offset++) = ' ';
+ }
+
+ if (fptr->common.scope) {
+ memcpy(offset, fptr->common.scope->name, fptr->common.scope->name_length);
+ offset += fptr->common.scope->name_length;
+ *(offset++) = ':';
+ *(offset++) = ':';
+ }
+
+ {
+ size_t name_len = strlen(fptr->common.function_name);
+ REALLOC_BUF_IF_EXCEED(buf, offset, length, name_len);
+ memcpy(offset, fptr->common.function_name, name_len);
+ offset += name_len;
+ }
+
+ *(offset++) = '(';
+ if (fptr->common.arg_info) {
+ zend_uint i, required;
+ zend_arg_info *arg_info = fptr->common.arg_info;
+
+ required = fptr->common.required_num_args;
+ for (i = 0; i < fptr->common.num_args;) {
+ if (arg_info->class_name) {
+ REALLOC_BUF_IF_EXCEED(buf, offset, length, arg_info->class_name_len);
+ memcpy(offset, arg_info->class_name, arg_info->class_name_len);
+ offset += arg_info->class_name_len;
+ *(offset++) = ' ';
+ } else if (arg_info->type_hint) {
+ zend_uint type_name_len;
+ char *type_name = zend_get_type_by_const(arg_info->type_hint);
+ type_name_len = strlen(type_name);
+ REALLOC_BUF_IF_EXCEED(buf, offset, length, type_name_len);
+ memcpy(offset, type_name, type_name_len);
+ offset += type_name_len;
+ *(offset++) = ' ';
+ }
+
+ if (arg_info->pass_by_reference) {
+ *(offset++) = '&';
+ }
+ *(offset++) = '$';
+
+ if (arg_info->name) {
+ REALLOC_BUF_IF_EXCEED(buf, offset, length, arg_info->name_len);
+ memcpy(offset, arg_info->name, arg_info->name_len);
+ offset += arg_info->name_len;
+ } else {
+ zend_uint idx = i;
+ memcpy(offset, "param", 5);
+ offset += 5;
+ do {
+ *(offset++) = (char) (idx % 10) + '0';
+ idx /= 10;
+ } while (idx > 0);
+ }
+ if (i >= required) {
+ *(offset++) = ' ';
+ *(offset++) = '=';
+ *(offset++) = ' ';
+ if (fptr->type == ZEND_USER_FUNCTION) {
+ zend_op *precv = NULL;
+ {
+ zend_uint idx = i;
+ zend_op *op = ((zend_op_array *)fptr)->opcodes;
+ zend_op *end = op + ((zend_op_array *)fptr)->last;
+
+ ++idx;
+ while (op < end) {
+ if ((op->opcode == ZEND_RECV || op->opcode == ZEND_RECV_INIT)
+ && op->op1.num == (long)idx)
+ {
+ precv = op;
+ }
+ ++op;
+ }
+ }
+ if (precv && precv->opcode == ZEND_RECV_INIT && precv->op2_type != IS_UNUSED) {
+ zval *zv, zv_copy;
+ int use_copy;
+ ALLOC_ZVAL(zv);
+ *zv = *precv->op2.zv;
+ zval_copy_ctor(zv);
+ INIT_PZVAL(zv);
+ zval_update_constant_ex(&zv, (void*)1, fptr->common.scope TSRMLS_CC);
+ if (Z_TYPE_P(zv) == IS_BOOL) {
+ if (Z_LVAL_P(zv)) {
+ memcpy(offset, "true", 4);
+ offset += 4;
+ } else {
+ memcpy(offset, "false", 5);
+ offset += 5;
+ }
+ } else if (Z_TYPE_P(zv) == IS_NULL) {
+ memcpy(offset, "NULL", 4);
+ offset += 4;
+ } else if (Z_TYPE_P(zv) == IS_STRING) {
+ *(offset++) = '\'';
+ REALLOC_BUF_IF_EXCEED(buf, offset, length, MIN(Z_STRLEN_P(zv), 10));
+ memcpy(offset, Z_STRVAL_P(zv), MIN(Z_STRLEN_P(zv), 10));
+ offset += MIN(Z_STRLEN_P(zv), 10);
+ if (Z_STRLEN_P(zv) > 10) {
+ *(offset++) = '.';
+ *(offset++) = '.';
+ *(offset++) = '.';
+ }
+ *(offset++) = '\'';
+ } else {
+ zend_make_printable_zval(zv, &zv_copy, &use_copy);
+ if (Z_TYPE_P(zv) == IS_STRING) {
+ REALLOC_BUF_IF_EXCEED(buf, offset, length, MIN(Z_STRLEN_P(zv), Z_STRLEN_P(zv)));
+ memcpy(offset, Z_STRVAL_P(zv), Z_STRLEN_P(zv));
+ offset += Z_STRLEN_P(zv);
+ } else if (Z_TYPE_P(zv) == IS_LONG) {
+ REALLOC_BUF_IF_EXCEED(buf, offset, length, 21);
+ offset += zend_sprintf(offset, "%ld", Z_LVAL_P(zv));
+ } else if (Z_TYPE_P(zv) == IS_DOUBLE) {
+ REALLOC_BUF_IF_EXCEED(buf, offset, length, 21);
+ offset += zend_sprintf(offset, "%.*G", (int) EG(precision), Z_DVAL_P(zv));
+ }
+ if (use_copy) {
+ zval_dtor(&zv_copy);
+ }
+ }
+ zval_ptr_dtor(&zv);
+ }
+ } else {
+ memcpy(offset, "NULL", 4);
+ offset += 4;
+ }
+ }
+
+ if (++i < fptr->common.num_args) {
+ *(offset++) = ',';
+ *(offset++) = ' ';
+ }
+ arg_info++;
+ REALLOC_BUF_IF_EXCEED(buf, offset, length, 23);
+ }
+ }
+ *(offset++) = ')';
+ *offset = '\0';
+
+ return buf;
+}
+/* }}} */
+
+static void do_inheritance_check_on_method(zend_function *child, zend_function *parent TSRMLS_DC) /* {{{ */
{
zend_uint child_flags;
zend_uint parent_flags = parent->common.fn_flags;
@@ -3069,14 +3231,17 @@ static void do_inheritance_check_on_method(zend_function *child, zend_function *
if (child->common.prototype && (child->common.prototype->common.fn_flags & ZEND_ACC_ABSTRACT)) {
if (!zend_do_perform_implementation_check(child, child->common.prototype TSRMLS_CC)) {
- zend_error(E_COMPILE_ERROR, "Declaration of %s::%s() must be compatible with that of %s::%s()", ZEND_FN_SCOPE_NAME(child), child->common.function_name, ZEND_FN_SCOPE_NAME(child->common.prototype), child->common.prototype->common.function_name);
+ zend_error(E_COMPILE_ERROR, "Declaration of %s::%s() must be compatible with %s", ZEND_FN_SCOPE_NAME(child), child->common.function_name, zend_get_function_declaration(child->common.prototype TSRMLS_CC));
}
} else if (EG(error_reporting) & E_STRICT || EG(user_error_handler)) { /* Check E_STRICT (or custom error handler) before the check so that we save some time */
if (!zend_do_perform_implementation_check(child, parent TSRMLS_CC)) {
- zend_error(E_STRICT, "Declaration of %s::%s() should be compatible with that of %s::%s()", ZEND_FN_SCOPE_NAME(child), child->common.function_name, ZEND_FN_SCOPE_NAME(parent), parent->common.function_name);
+ char *method_prototype = zend_get_function_declaration(child->common.prototype TSRMLS_CC);
+ zend_error(E_STRICT, "Declaration of %s::%s() should be compatible with %s", ZEND_FN_SCOPE_NAME(child), child->common.function_name, method_prototype);
+ efree(method_prototype);
}
}
}
+/* }}} */
static zend_bool do_inherit_method_check(HashTable *child_function_table, zend_function *parent, const zend_hash_key *hash_key, zend_class_entry *child_ce) /* {{{ */
{
diff --git a/ext/standard/tests/filters/php_user_filter_01.phpt b/ext/standard/tests/filters/php_user_filter_01.phpt
index 534b9abf32..e4a9c6853c 100644
--- a/ext/standard/tests/filters/php_user_filter_01.phpt
+++ b/ext/standard/tests/filters/php_user_filter_01.phpt
@@ -14,4 +14,4 @@ class bar extends php_user_filter {
}
?>
--EXPECTF--
-Strict Standards: Declaration of bar::filter() should be compatible with that of php_user_filter::filter() in %s on line %d
+Strict Standards: Declaration of bar::filter() should be compatible with php_user_filter::filter($in, $out, &$consumed, $closing) in %s on line %d
diff --git a/ext/standard/tests/filters/php_user_filter_02.phpt b/ext/standard/tests/filters/php_user_filter_02.phpt
index 73a1f02672..2a1dbfdadf 100644
--- a/ext/standard/tests/filters/php_user_filter_02.phpt
+++ b/ext/standard/tests/filters/php_user_filter_02.phpt
@@ -9,4 +9,4 @@ class foo extends php_user_filter {
}
?>
--EXPECTF--
-Strict Standards: Declaration of foo::filter() should be compatible with that of php_user_filter::filter() in %s on line %d
+Strict Standards: Declaration of foo::filter() should be compatible with php_user_filter::filter($in, $out, &$consumed, $closing) in %s on line %d
diff --git a/ext/standard/tests/filters/php_user_filter_03.phpt b/ext/standard/tests/filters/php_user_filter_03.phpt
index 5962951eee..e9e0266381 100644
--- a/ext/standard/tests/filters/php_user_filter_03.phpt
+++ b/ext/standard/tests/filters/php_user_filter_03.phpt
@@ -9,4 +9,4 @@ class foo extends php_user_filter {
}
?>
--EXPECTF--
-Strict Standards: Declaration of foo::onCreate() should be compatible with that of php_user_filter::onCreate() in %s on line %d
+Strict Standards: Declaration of foo::onCreate() should be compatible with php_user_filter::onCreate() in %s on line %d
diff --git a/tests/classes/ctor_in_interface_01.phpt b/tests/classes/ctor_in_interface_01.phpt
index f6f9b66eab..e5ad30ebcd 100755
--- a/tests/classes/ctor_in_interface_01.phpt
+++ b/tests/classes/ctor_in_interface_01.phpt
@@ -16,4 +16,4 @@ class implem implements constr
?>
--EXPECTF--
-Fatal error: Declaration of implem::__construct() must be compatible with that of constr::__construct() in %s on line %d
+Fatal error: Declaration of implem::__construct() must be compatible with constr::__construct() in %s on line %d
diff --git a/tests/classes/ctor_in_interface_03.phpt b/tests/classes/ctor_in_interface_03.phpt
index 953d6822fd..ac73331207 100755
--- a/tests/classes/ctor_in_interface_03.phpt
+++ b/tests/classes/ctor_in_interface_03.phpt
@@ -20,4 +20,4 @@ class derived extends implem
?>
--EXPECTF--
-Fatal error: Declaration of derived::__construct() must be compatible with that of constr::__construct() in %s on line %d
+Fatal error: Declaration of derived::__construct() must be compatible with constr::__construct() in %s on line %d
diff --git a/tests/classes/ctor_in_interface_04.phpt b/tests/classes/ctor_in_interface_04.phpt
index 0016244c18..94be655b83 100755
--- a/tests/classes/ctor_in_interface_04.phpt
+++ b/tests/classes/ctor_in_interface_04.phpt
@@ -23,4 +23,4 @@ class derived extends implem
?>
--EXPECTF--
-Fatal error: Declaration of derived::__construct() must be compatible with that of constr::__construct() in %s on line %d
+Fatal error: Declaration of derived::__construct() must be compatible with constr::__construct() in %s on line %d
diff --git a/tests/classes/inheritance_003.phpt b/tests/classes/inheritance_003.phpt
index a22e5cce58..1f4eafa537 100755
--- a/tests/classes/inheritance_003.phpt
+++ b/tests/classes/inheritance_003.phpt
@@ -17,5 +17,5 @@ class B extends A
===DONE===
--EXPECTF--
-Strict Standards: Declaration of B::f() should be compatible with that of A::f() in %sinheritance_003.php on line %d
+Strict Standards: Declaration of B::f() should be compatible with A::f($x) in %sinheritance_003.php on line %d
===DONE===
diff --git a/tests/classes/inheritance_004.phpt b/tests/classes/inheritance_004.phpt
index 9c81970cc2..d1f5faf5da 100755
--- a/tests/classes/inheritance_004.phpt
+++ b/tests/classes/inheritance_004.phpt
@@ -17,5 +17,5 @@ class B extends A
===DONE===
--EXPECTF--
-Strict Standards: Declaration of B::f() should be compatible with that of A::f() in %sinheritance_004.php on line %d
+Strict Standards: Declaration of B::f() should be compatible with A::f() in %sinheritance_004.php on line %d
===DONE===
diff --git a/tests/classes/method_override_optional_arg_001.phpt b/tests/classes/method_override_optional_arg_001.phpt
index 53272fff73..333c29d128 100644
--- a/tests/classes/method_override_optional_arg_001.phpt
+++ b/tests/classes/method_override_optional_arg_001.phpt
@@ -28,6 +28,6 @@ $b->foo(1);
?>
--EXPECTF--
-Strict Standards: Declaration of C::foo() should be compatible with that of A::foo() in %s on line %d
+Strict Standards: Declaration of C::foo() should be compatible with A::foo($arg1 = 1) in %s on line %d
int(1)
int(3)
diff --git a/tests/classes/method_override_optional_arg_002.phpt b/tests/classes/method_override_optional_arg_002.phpt
index c212b8260d..669a8ca836 100644
--- a/tests/classes/method_override_optional_arg_002.phpt
+++ b/tests/classes/method_override_optional_arg_002.phpt
@@ -18,5 +18,5 @@ $b->foo();
?>
--EXPECTF--
-Strict Standards: Declaration of B::foo() should be compatible with that of A::foo() in %s on line %d
+Strict Standards: Declaration of B::foo() should be compatible with A::foo($arg = 1) in %s on line %d
foo
diff --git a/tests/classes/type_hinting_005a.phpt b/tests/classes/type_hinting_005a.phpt
index d487a44611..5e4c43b8af 100644
--- a/tests/classes/type_hinting_005a.phpt
+++ b/tests/classes/type_hinting_005a.phpt
@@ -12,7 +12,7 @@ Class D2 extends C { function f(SomeClass $a) {} }
?>
==DONE==
--EXPECTF--
-Strict Standards: Declaration of D2::f() should be compatible with that of C::f() in %s on line 8
+Strict Standards: Declaration of D2::f() should be compatible with C::f(array $a) in %s on line 8
Compatible hint.
Class hint, should be array.
-==DONE== \ No newline at end of file
+==DONE==
diff --git a/tests/classes/type_hinting_005b.phpt b/tests/classes/type_hinting_005b.phpt
index bc0d7686b5..f13ab957bb 100644
--- a/tests/classes/type_hinting_005b.phpt
+++ b/tests/classes/type_hinting_005b.phpt
@@ -9,6 +9,6 @@ Class D extends C { function f($a) {} }
?>
==DONE==
--EXPECTF--
-Strict Standards: Declaration of D::f() should be compatible with that of C::f() in %s on line 5
+Strict Standards: Declaration of D::f() should be compatible with C::f(array $a) in %s on line 5
No hint, should be array.
-==DONE== \ No newline at end of file
+==DONE==
diff --git a/tests/classes/type_hinting_005c.phpt b/tests/classes/type_hinting_005c.phpt
index d3b72412cd..30a114e2a4 100644
--- a/tests/classes/type_hinting_005c.phpt
+++ b/tests/classes/type_hinting_005c.phpt
@@ -9,6 +9,6 @@ Class D extends C { function f(array $a) {} }
?>
==DONE==
--EXPECTF--
-Strict Standards: Declaration of D::f() should be compatible with that of C::f() in %s on line 5
+Strict Standards: Declaration of D::f() should be compatible with C::f(SomeClass $a) in %s on line 5
Array hint, should be class.
-==DONE== \ No newline at end of file
+==DONE==
diff --git a/tests/classes/type_hinting_005d.phpt b/tests/classes/type_hinting_005d.phpt
index 60dda0ff24..830054d03d 100644
--- a/tests/classes/type_hinting_005d.phpt
+++ b/tests/classes/type_hinting_005d.phpt
@@ -9,6 +9,6 @@ Class D extends C { function f(array $a) {} }
?>
==DONE==
--EXPECTF--
-Strict Standards: Declaration of D::f() should be compatible with that of C::f() in %s on line 5
+Strict Standards: Declaration of D::f() should be compatible with C::f($a) in %s on line 5
Array hint, should be nothing.
-==DONE== \ No newline at end of file
+==DONE==