Skip to content

Commit c322da0

Browse files
authored
Fix misleading pass by reference error message (php#10639)
1 parent 9bcdf21 commit c322da0

22 files changed

+31
-31
lines changed

Zend/tests/bug72038.phpt

+2-2
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,6 @@ function test(&$param) {
2525

2626
?>
2727
--EXPECT--
28-
test(): Argument #1 ($param) cannot be passed by reference
29-
test(): Argument #1 ($param) cannot be passed by reference
28+
test(): Argument #1 ($param) could not be passed by reference
29+
test(): Argument #1 ($param) could not be passed by reference
3030
int(1)

Zend/tests/bug73663_2.phpt

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ change(list($val) = $array);
1212
var_dump($array);
1313
?>
1414
--EXPECTF--
15-
Fatal error: Uncaught Error: change(): Argument #1 ($ref) cannot be passed by reference in %s:%d
15+
Fatal error: Uncaught Error: change(): Argument #1 ($ref) could not be passed by reference in %s:%d
1616
Stack trace:
1717
#0 {main}
1818
thrown in %s on line %d

Zend/tests/bug78154.phpt

+2-2
Original file line numberDiff line numberDiff line change
@@ -22,5 +22,5 @@ namespace Foo {
2222

2323
?>
2424
--EXPECT--
25-
Exception: similar_text(): Argument #3 ($percent) cannot be passed by reference
26-
Exception: similar_text(): Argument #3 ($percent) cannot be passed by reference
25+
Exception: similar_text(): Argument #3 ($percent) could not be passed by reference
26+
Exception: similar_text(): Argument #3 ($percent) could not be passed by reference

Zend/tests/bug79783.phpt

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ Bug #79783: Segfault in php_str_replace_common
55
str_replace("a", "b", "c", strlen("d"));
66
?>
77
--EXPECTF--
8-
Fatal error: Uncaught Error: str_replace(): Argument #4 ($count) cannot be passed by reference in %s:%d
8+
Fatal error: Uncaught Error: str_replace(): Argument #4 ($count) could not be passed by reference in %s:%d
99
Stack trace:
1010
#0 {main}
1111
thrown in %s on line %d

Zend/tests/closure_019.phpt

+1-1
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ int(9)
2626
Notice: Only variable references should be returned by reference in %sclosure_019.php on line 4
2727
int(81)
2828

29-
Fatal error: Uncaught Error: {closure}(): Argument #1 ($x) cannot be passed by reference in %s:%d
29+
Fatal error: Uncaught Error: {closure}(): Argument #1 ($x) could not be passed by reference in %s:%d
3030
Stack trace:
3131
#0 %s(%d): test()
3232
#1 {main}

Zend/tests/errmsg_022.phpt

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ foo(1);
1111
echo "Done\n";
1212
?>
1313
--EXPECTF--
14-
Fatal error: Uncaught Error: foo(): Argument #1 ($var) cannot be passed by reference in %s:%d
14+
Fatal error: Uncaught Error: foo(): Argument #1 ($var) could not be passed by reference in %s:%d
1515
Stack trace:
1616
#0 {main}
1717
thrown in %s on line %d

Zend/tests/match/027.phpt

+1-1
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ main();
3030
usesValue 0
3131
i is 0
3232

33-
Fatal error: Uncaught Error: Test::usesRef(): Argument #1 ($x) cannot be passed by reference in %s:%d
33+
Fatal error: Uncaught Error: Test::usesRef(): Argument #1 ($x) could not be passed by reference in %s:%d
3434
Stack trace:
3535
#0 %s(%d): main()
3636
#1 {main}

Zend/tests/match/028.phpt

+1-1
Original file line numberDiff line numberDiff line change
@@ -34,4 +34,4 @@ try {
3434
usesValue 42
3535
usesValue 42
3636
int(42)
37-
Caught Test::usesRef(): Argument #1 ($x) cannot be passed by reference
37+
Caught Test::usesRef(): Argument #1 ($x) could not be passed by reference

Zend/tests/named_params/cannot_pass_by_ref.phpt

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,4 +10,4 @@ try {
1010
}
1111
?>
1212
--EXPECT--
13-
test(): Argument #2 ($e) cannot be passed by reference
13+
test(): Argument #2 ($e) could not be passed by reference

Zend/tests/nullsafe_operator/016.phpt

+4-4
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ test(new Foo());
2929

3030
?>
3131
--EXPECT--
32-
set(): Argument #1 ($ref) cannot be passed by reference
33-
set(): Argument #1 ($ref) cannot be passed by reference
34-
set(): Argument #1 ($ref) cannot be passed by reference
35-
set(): Argument #1 ($ref) cannot be passed by reference
32+
set(): Argument #1 ($ref) could not be passed by reference
33+
set(): Argument #1 ($ref) could not be passed by reference
34+
set(): Argument #1 ($ref) could not be passed by reference
35+
set(): Argument #1 ($ref) could not be passed by reference

Zend/tests/restrict_globals/invalid_pass_by_ref.phpt

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
--TEST--
2-
$GLOBALS cannot be passed by reference (runtime error)
2+
$GLOBALS must be passed by reference (runtime error)
33
--FILE--
44
<?php
55

@@ -19,5 +19,5 @@ function by_ref2(&$ref) {}
1919

2020
?>
2121
--EXPECT--
22-
by_ref(): Argument #1 ($ref) cannot be passed by reference
23-
by_ref2(): Argument #1 ($ref) cannot be passed by reference
22+
by_ref(): Argument #1 ($ref) could not be passed by reference
23+
by_ref2(): Argument #1 ($ref) could not be passed by reference

Zend/tests/variadic/by_ref_error.phpt

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ test(1);
99

1010
?>
1111
--EXPECTF--
12-
Fatal error: Uncaught Error: test(): Argument #1 cannot be passed by reference in %s:%d
12+
Fatal error: Uncaught Error: test(): Argument #1 could not be passed by reference in %s:%d
1313
Stack trace:
1414
#0 {main}
1515
thrown in %s on line %d

Zend/zend_execute.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -595,7 +595,7 @@ ZEND_API ZEND_COLD void ZEND_FASTCALL zend_cannot_pass_by_reference(uint32_t arg
595595
zend_string *func_name = get_function_or_method_name(EX(call)->func);
596596
const char *param_name = get_function_arg_name(EX(call)->func, arg_num);
597597

598-
zend_throw_error(NULL, "%s(): Argument #%d%s%s%s cannot be passed by reference",
598+
zend_throw_error(NULL, "%s(): Argument #%d%s%s%s could not be passed by reference",
599599
ZSTR_VAL(func_name), arg_num, param_name ? " ($" : "", param_name ? param_name : "", param_name ? ")" : ""
600600
);
601601

ext/opcache/tests/optimize_func_calls.phpt

+1-1
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,7 @@ Array
128128
string(7) "changed"
129129
string(7) "changed"
130130

131-
Fatal error: Uncaught Error: ref(): Argument #1 ($b) cannot be passed by reference in %soptimize_func_calls.php:%d
131+
Fatal error: Uncaught Error: ref(): Argument #1 ($b) could not be passed by reference in %soptimize_func_calls.php:%d
132132
Stack trace:
133133
#0 {main}
134134
thrown in %soptimize_func_calls.php on line %d

ext/pcre/tests/preg_match_all_error3.phpt

+1-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ echo "Done";
1717
--EXPECTF--
1818
*** Testing preg_match_all() : error conditions ***
1919

20-
Fatal error: Uncaught Error: preg_match_all(): Argument #3 ($matches) cannot be passed by reference in %s:%d
20+
Fatal error: Uncaught Error: preg_match_all(): Argument #3 ($matches) could not be passed by reference in %s:%d
2121
Stack trace:
2222
#0 {main}
2323
thrown in %s on line %d

ext/pdo_mysql/tests/bug_37445.phpt

+1-1
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ $stmt = $db->prepare("SELECT 1");
1919
$stmt->bindParam(':a', 'b');
2020
?>
2121
--EXPECTF--
22-
Fatal error: Uncaught Error: PDOStatement::bindParam(): Argument #2 ($var) cannot be passed by reference in %sbug_37445.php:%d
22+
Fatal error: Uncaught Error: PDOStatement::bindParam(): Argument #2 ($var) could not be passed by reference in %sbug_37445.php:%d
2323
Stack trace:
2424
#0 {main}
2525
thrown in %sbug_37445.php on line %d

ext/standard/tests/array/array_next_error2.phpt

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ function f() {
88
var_dump(next(array(1, 2)));
99
?>
1010
--EXPECTF--
11-
Fatal error: Uncaught Error: next(): Argument #1 ($array) cannot be passed by reference in %s:%d
11+
Fatal error: Uncaught Error: next(): Argument #1 ($array) could not be passed by reference in %s:%d
1212
Stack trace:
1313
#0 {main}
1414
thrown in %s on line %d

ext/standard/tests/array/bug31158.phpt

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ __();
1414
echo "ok\n";
1515
?>
1616
--EXPECTF--
17-
Fatal error: Uncaught Error: array_splice(): Argument #1 ($array) cannot be passed by reference in %s:%d
17+
Fatal error: Uncaught Error: array_splice(): Argument #1 ($array) could not be passed by reference in %s:%d
1818
Stack trace:
1919
#0 %s(%d): __()
2020
#1 {main}

ext/standard/tests/array/prev_error3.phpt

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ prev - ensure we cannot pass a temporary
1010
var_dump(prev(array(1, 2)));
1111
?>
1212
--EXPECTF--
13-
Fatal error: Uncaught Error: prev(): Argument #1 ($array) cannot be passed by reference in %s:%d
13+
Fatal error: Uncaught Error: prev(): Argument #1 ($array) could not be passed by reference in %s:%d
1414
Stack trace:
1515
#0 {main}
1616
thrown in %s on line %d

tests/classes/constants_error_003.phpt

+1-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ Basic class support - attempting to pass a class constant by reference.
1616
var_dump(aclass::myConst);
1717
?>
1818
--EXPECTF--
19-
Fatal error: Uncaught Error: f(): Argument #1 ($a) cannot be passed by reference in %s:%d
19+
Fatal error: Uncaught Error: f(): Argument #1 ($a) could not be passed by reference in %s:%d
2020
Stack trace:
2121
#0 {main}
2222
thrown in %s on line %d

tests/lang/passByReference_002.phpt

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ f(2);
1212

1313
?>
1414
--EXPECTF--
15-
Fatal error: Uncaught Error: f(): Argument #1 ($arg1) cannot be passed by reference in %s:%d
15+
Fatal error: Uncaught Error: f(): Argument #1 ($arg1) could not be passed by reference in %s:%d
1616
Stack trace:
1717
#0 {main}
1818
thrown in %s on line %d

tests/lang/passByReference_010.phpt

+3-3
Original file line numberDiff line numberDiff line change
@@ -50,11 +50,11 @@ try {
5050
?>
5151
--EXPECT--
5252
---> Pass constant assignment by reference:
53-
Exception: f(): Argument #1 ($a) cannot be passed by reference
53+
Exception: f(): Argument #1 ($a) could not be passed by reference
5454

5555

5656
---> Pass variable assignment by reference:
57-
Exception: f(): Argument #1 ($a) cannot be passed by reference
57+
Exception: f(): Argument #1 ($a) could not be passed by reference
5858

5959

6060
---> Pass reference assignment by reference:
@@ -63,4 +63,4 @@ string(9) "a.changed"
6363

6464

6565
---> Pass concat assignment by reference:
66-
Exception: f(): Argument #1 ($a) cannot be passed by reference
66+
Exception: f(): Argument #1 ($a) could not be passed by reference

0 commit comments

Comments
 (0)