--------------[ TESTCASE ]--------------
string(9) "no-return"
Success: without a return statement is always valid.
--------------[ TESTCASE ]--------------
string(15) "no-return-value"
Success: a return statement without a value is always valid.
--------------[ TESTCASE ]--------------
string(5) "$this"
Success: throwable: Using $this when not in object context
--------------[ TESTCASE ]--------------
object(ShouldTypeError)#4 (0) {
}
Error: why is it not a return TypeError?
--------------[ TESTCASE ]--------------
string(11) "Const hello"
Error: why is it not a return TypeError?
--------------[ TESTCASE ]--------------
string(3) "abc"
Error: why is it not a return TypeError?
--------------[ TESTCASE ]--------------
int(1)
Error: why is it not a return TypeError?
--------------[ TESTCASE ]--------------
float(1.23)
Error: why is it not a return TypeError?
--------------[ TESTCASE ]--------------
NULL
Error: why is it not a return TypeError?
--------------[ TESTCASE ]--------------
bool(true)
Success: without a return statement is always valid.
--------------[ TESTCASE ]--------------
bool(false)
Error: why is it not a return TypeError?
--------------[ TESTCASE ]--------------
array(3) {
[0]=>
string(1) "a"
[1]=>
string(1) "b"
[2]=>
string(1) "c"
}
Error: why is it not a return TypeError?
--------------[ TESTCASE ]--------------
array(4) {
["a"]=>
string(1) "a"
["b"]=>
string(1) "b"
["c"]=>
string(1) "c"
[0]=>
string(4) "Zero"
}
Error: why is it not a return TypeError?
--------------[ TESTCASE ]--------------
string(5) "never"
Success: throwable: Undefined constant "never"
--------------[ TESTCASE ]--------------
string(4) "void"
Success: throwable: Undefined constant "void"
--------------[ TESTCASE ]--------------
enum(SomeEnum::Spades)
Error: why is it not a return TypeError?
--------------[ TESTCASE ]--------------
object(Closure)#6 (3) {
["name"]=>
string(22) "{closure:/in/sXXe8:67}"
["file"]=>
string(9) "/in/sXXe8"
["line"]=>
int(67)
}
Error: why is it not a return TypeError?
--------------[ TESTCASE ]--------------
object(Closure)#1 (3) {
["name"]=>
string(22) "{closure:/in/sXXe8:17}"
["file"]=>
string(9) "/in/sXXe8"
["line"]=>
int(17)
}
Error: why is it not a return TypeError?
--------------[ TESTCASE ]--------------
object(Closure)#2 (1) {
["function"]=>
string(12) "SomeFunction"
}
Error: why is it not a return TypeError?
--------------[ TESTCASE ]--------------
object(Closure)#3 (1) {
["function"]=>
string(12) "SomeFunction"
}
Error: why is it not a return TypeError?
--------------[ TESTCASE ]--------------
object(DateTimeImmutable)#7 (3) {
["date"]=>
string(26) "2026-01-30 13:31:14.025598"
["timezone_type"]=>
int(3)
["timezone"]=>
string(16) "Europe/Amsterdam"
}
Error: why is it not a return TypeError?