Rather than zend_get_type_by_const(Z_TYPE_P()).
} else {
zend_error_noreturn(E_COMPILE_ERROR,
"Cannot use %s as default value for property %s::$%s of type %s",
- zend_get_type_by_const(Z_TYPE(value_zv)),
+ zend_zval_type_name(&value_zv),
ZSTR_VAL(ce->name), ZSTR_VAL(name), ZSTR_VAL(str));
}
}
/* Unlikely case that happen if class_ast is constant folded.
* Handle it here, to avoid needing a CONST specialization in the VM. */
zend_error_noreturn(E_COMPILE_ERROR, "Cannot use ::class on value of type %s",
- zend_get_type_by_const(Z_TYPE(expr_node.u.constant)));
+ zend_zval_type_name(&expr_node.u.constant));
}
zend_emit_op_tmp(result, ZEND_FETCH_CLASS_NAME, &expr_node, NULL);
type_str = zend_type_to_string(info->type);
zend_type_error("Cannot assign %s to property %s::$%s of type %s",
- Z_TYPE_P(property) == IS_OBJECT ? ZSTR_VAL(Z_OBJCE_P(property)->name) : zend_get_type_by_const(Z_TYPE_P(property)),
+ Z_TYPE_P(property) == IS_OBJECT ? ZSTR_VAL(Z_OBJCE_P(property)->name) : zend_zval_type_name(property),
ZSTR_VAL(info->ce->name),
zend_get_unmangled_property_name(info->name),
ZSTR_VAL(type_str));
static zend_never_inline ZEND_COLD void ZEND_FASTCALL zend_invalid_method_call(zval *object, zval *function_name)
{
- zend_throw_error(NULL, "Call to a member function %s() on %s", Z_STRVAL_P(function_name), zend_get_type_by_const(Z_TYPE_P(object)));
+ zend_throw_error(NULL, "Call to a member function %s() on %s",
+ Z_STRVAL_P(function_name), zend_zval_type_name(object));
}
static zend_never_inline ZEND_COLD void ZEND_FASTCALL zend_non_static_method_call(const zend_function *fbc)
}
if (!EG(exception)) {
zend_type_error("array_key_exists(): Argument #2 ($array) must be of type array, %s given",
- zend_get_type_by_const(Z_TYPE_P(subject))
- );
+ zend_zval_type_name(subject));
}
}
zend_string *type1_str = zend_type_to_string(prop1->type);
zend_string *type2_str = zend_type_to_string(prop2->type);
zend_type_error("Reference with value of type %s held by property %s::$%s of type %s is not compatible with property %s::$%s of type %s",
- Z_TYPE_P(zv) == IS_OBJECT ? ZSTR_VAL(Z_OBJCE_P(zv)->name) : zend_get_type_by_const(Z_TYPE_P(zv)),
+ Z_TYPE_P(zv) == IS_OBJECT ? ZSTR_VAL(Z_OBJCE_P(zv)->name) : zend_zval_type_name(zv),
ZSTR_VAL(prop1->ce->name),
zend_get_unmangled_property_name(prop1->name),
ZSTR_VAL(type1_str),
ZEND_API ZEND_COLD void zend_throw_ref_type_error_zval(zend_property_info *prop, zval *zv) {
zend_string *type_str = zend_type_to_string(prop->type);
zend_type_error("Cannot assign %s to reference held by property %s::$%s of type %s",
- Z_TYPE_P(zv) == IS_OBJECT ? ZSTR_VAL(Z_OBJCE_P(zv)->name) : zend_get_type_by_const(Z_TYPE_P(zv)),
+ Z_TYPE_P(zv) == IS_OBJECT ? ZSTR_VAL(Z_OBJCE_P(zv)->name) : zend_zval_type_name(zv),
ZSTR_VAL(prop->ce->name),
zend_get_unmangled_property_name(prop->name),
ZSTR_VAL(type_str)
zend_string *type1_str = zend_type_to_string(prop1->type);
zend_string *type2_str = zend_type_to_string(prop2->type);
zend_type_error("Cannot assign %s to reference held by property %s::$%s of type %s and property %s::$%s of type %s, as this would result in an inconsistent type conversion",
- Z_TYPE_P(zv) == IS_OBJECT ? ZSTR_VAL(Z_OBJCE_P(zv)->name) : zend_get_type_by_const(Z_TYPE_P(zv)),
+ Z_TYPE_P(zv) == IS_OBJECT ? ZSTR_VAL(Z_OBJCE_P(zv)->name) : zend_zval_type_name(zv),
ZSTR_VAL(prop1->ce->name),
zend_get_unmangled_property_name(prop1->name),
ZSTR_VAL(type1_str),
}
zend_type_error("Unsupported operand types: %s %s %s",
- zend_get_type_by_const(Z_TYPE_P(op1)), operator, zend_get_type_by_const(Z_TYPE_P(op2)));
+ zend_zval_type_name(op1), operator, zend_zval_type_name(op2));
}
/* }}} */
if (result != op1) {
ZVAL_UNDEF(result);
}
- zend_type_error("Cannot perform bitwise not on %s",
- zend_get_type_by_const(Z_TYPE_P(op1)));
+ zend_type_error("Cannot perform bitwise not on %s", zend_zval_type_name(op1));
return FAILURE;
}
}
/* break missing intentionally */
case IS_RESOURCE:
case IS_ARRAY:
- zend_type_error("Cannot increment %s", zend_get_type_by_const(Z_TYPE_P(op1)));
+ zend_type_error("Cannot increment %s", zend_zval_type_name(op1));
return FAILURE;
EMPTY_SWITCH_DEFAULT_CASE()
}
/* break missing intentionally */
case IS_RESOURCE:
case IS_ARRAY:
- zend_type_error("Cannot decrement %s", zend_get_type_by_const(Z_TYPE_P(op1)));
+ zend_type_error("Cannot decrement %s", zend_zval_type_name(op1));
return FAILURE;
EMPTY_SWITCH_DEFAULT_CASE()
}
}
}
zend_throw_error(NULL, "Value of type %s is not callable",
- zend_get_type_by_const(Z_TYPE_P(function_name)));
+ zend_zval_type_name(function_name));
call = NULL;
}
ZEND_VM_C_GOTO(send_array);
}
}
- zend_type_error("call_user_func_array(): Argument #2 ($args) must be of type array, %s given", zend_get_type_by_const(Z_TYPE_P(args)));
+ zend_type_error("call_user_func_array(): Argument #2 ($args) must be of type array, %s given", zend_zval_type_name(args));
FREE_UNFETCHED_OP2();
FREE_OP1();
HANDLE_EXCEPTION();
}
}
} else {
- zend_error(E_WARNING, "foreach() argument must be of type array|object, %s given", zend_get_type_by_const(Z_TYPE_P(array_ptr)));
+ zend_error(E_WARNING, "foreach() argument must be of type array|object, %s given", zend_zval_type_name(array_ptr));
ZVAL_UNDEF(EX_VAR(opline->result.var));
Z_FE_ITER_P(EX_VAR(opline->result.var)) = (uint32_t)-1;
FREE_OP1();
}
}
} else {
- zend_error(E_WARNING, "foreach() argument must be of type array|object, %s given", zend_get_type_by_const(Z_TYPE_P(array_ptr)));
+ zend_error(E_WARNING, "foreach() argument must be of type array|object, %s given", zend_zval_type_name(array_ptr));
ZVAL_UNDEF(EX_VAR(opline->result.var));
Z_FE_ITER_P(EX_VAR(opline->result.var)) = (uint32_t)-1;
if (OP1_TYPE == IS_VAR) {
value_type = Z_TYPE_INFO_P(value);
}
} else {
- zend_error(E_WARNING, "foreach() argument must be of type array|object, %s given", zend_get_type_by_const(Z_TYPE_P(array)));
+ zend_error(E_WARNING, "foreach() argument must be of type array|object, %s given", zend_zval_type_name(array));
if (UNEXPECTED(EG(exception))) {
UNDEF_RESULT();
HANDLE_EXCEPTION();
zval_ptr_dtor(&tmp);
}
if (!EG(exception)) {
- zend_type_error("strlen(): Argument #1 ($str) must be of type string, %s given", zend_get_type_by_const(Z_TYPE_P(value)));
+ zend_type_error("strlen(): Argument #1 ($str) must be of type string, %s given", zend_zval_type_name(value));
}
ZVAL_UNDEF(EX_VAR(opline->result.var));
} while (0);
if (UNEXPECTED(Z_TYPE_P(op) != IS_OBJECT)) {
ZVAL_DEREF(op);
if (Z_TYPE_P(op) != IS_OBJECT) {
- zend_type_error("Cannot use ::class on value of type %s",
- zend_get_type_by_const(Z_TYPE_P(op)));
+ zend_type_error("Cannot use ::class on value of type %s", zend_zval_type_name(op));
ZVAL_UNDEF(EX_VAR(opline->result.var));
FREE_OP1();
HANDLE_EXCEPTION();
if (OP1_TYPE == IS_CV && UNEXPECTED(Z_TYPE_P(op1) == IS_UNDEF)) {
ZVAL_UNDEFINED_OP1();
}
- zend_type_error("get_class(): Argument #1 ($object) must be of type object, %s given", zend_get_type_by_const(Z_TYPE_P(op1)));
+ zend_type_error("get_class(): Argument #1 ($object) must be of type object, %s given", zend_zval_type_name(op1));
ZVAL_UNDEF(EX_VAR(opline->result.var));
}
break;
goto send_array;
}
}
- zend_type_error("call_user_func_array(): Argument #2 ($args) must be of type array, %s given", zend_get_type_by_const(Z_TYPE_P(args)));
+ zend_type_error("call_user_func_array(): Argument #2 ($args) must be of type array, %s given", zend_zval_type_name(args));
FREE_UNFETCHED_OP(opline->op2_type, opline->op2.var);
FREE_OP(opline->op1_type, opline->op1.var);
HANDLE_EXCEPTION();
}
}
zend_throw_error(NULL, "Value of type %s is not callable",
- zend_get_type_by_const(Z_TYPE_P(function_name)));
+ zend_zval_type_name(function_name));
call = NULL;
}
}
}
zend_throw_error(NULL, "Value of type %s is not callable",
- zend_get_type_by_const(Z_TYPE_P(function_name)));
+ zend_zval_type_name(function_name));
call = NULL;
}
}
}
zend_throw_error(NULL, "Value of type %s is not callable",
- zend_get_type_by_const(Z_TYPE_P(function_name)));
+ zend_zval_type_name(function_name));
call = NULL;
}
}
}
} else {
- zend_error(E_WARNING, "foreach() argument must be of type array|object, %s given", zend_get_type_by_const(Z_TYPE_P(array_ptr)));
+ zend_error(E_WARNING, "foreach() argument must be of type array|object, %s given", zend_zval_type_name(array_ptr));
ZVAL_UNDEF(EX_VAR(opline->result.var));
Z_FE_ITER_P(EX_VAR(opline->result.var)) = (uint32_t)-1;
}
}
} else {
- zend_error(E_WARNING, "foreach() argument must be of type array|object, %s given", zend_get_type_by_const(Z_TYPE_P(array_ptr)));
+ zend_error(E_WARNING, "foreach() argument must be of type array|object, %s given", zend_zval_type_name(array_ptr));
ZVAL_UNDEF(EX_VAR(opline->result.var));
Z_FE_ITER_P(EX_VAR(opline->result.var)) = (uint32_t)-1;
if (IS_CONST == IS_VAR) {
zval_ptr_dtor(&tmp);
}
if (!EG(exception)) {
- zend_type_error("strlen(): Argument #1 ($str) must be of type string, %s given", zend_get_type_by_const(Z_TYPE_P(value)));
+ zend_type_error("strlen(): Argument #1 ($str) must be of type string, %s given", zend_zval_type_name(value));
}
ZVAL_UNDEF(EX_VAR(opline->result.var));
} while (0);
if (IS_CONST == IS_CV && UNEXPECTED(Z_TYPE_P(op1) == IS_UNDEF)) {
ZVAL_UNDEFINED_OP1();
}
- zend_type_error("get_class(): Argument #1 ($object) must be of type object, %s given", zend_get_type_by_const(Z_TYPE_P(op1)));
+ zend_type_error("get_class(): Argument #1 ($object) must be of type object, %s given", zend_zval_type_name(op1));
ZVAL_UNDEF(EX_VAR(opline->result.var));
}
break;
zval_ptr_dtor(&tmp);
}
if (!EG(exception)) {
- zend_type_error("strlen(): Argument #1 ($str) must be of type string, %s given", zend_get_type_by_const(Z_TYPE_P(value)));
+ zend_type_error("strlen(): Argument #1 ($str) must be of type string, %s given", zend_zval_type_name(value));
}
ZVAL_UNDEF(EX_VAR(opline->result.var));
} while (0);
if (UNEXPECTED(Z_TYPE_P(op) != IS_OBJECT)) {
ZVAL_DEREF(op);
if (Z_TYPE_P(op) != IS_OBJECT) {
- zend_type_error("Cannot use ::class on value of type %s",
- zend_get_type_by_const(Z_TYPE_P(op)));
+ zend_type_error("Cannot use ::class on value of type %s", zend_zval_type_name(op));
ZVAL_UNDEF(EX_VAR(opline->result.var));
zval_ptr_dtor_nogc(EX_VAR(opline->op1.var));
HANDLE_EXCEPTION();
if ((IS_TMP_VAR|IS_VAR) == IS_CV && UNEXPECTED(Z_TYPE_P(op1) == IS_UNDEF)) {
ZVAL_UNDEFINED_OP1();
}
- zend_type_error("get_class(): Argument #1 ($object) must be of type object, %s given", zend_get_type_by_const(Z_TYPE_P(op1)));
+ zend_type_error("get_class(): Argument #1 ($object) must be of type object, %s given", zend_zval_type_name(op1));
ZVAL_UNDEF(EX_VAR(opline->result.var));
}
break;
}
}
} else {
- zend_error(E_WARNING, "foreach() argument must be of type array|object, %s given", zend_get_type_by_const(Z_TYPE_P(array_ptr)));
+ zend_error(E_WARNING, "foreach() argument must be of type array|object, %s given", zend_zval_type_name(array_ptr));
ZVAL_UNDEF(EX_VAR(opline->result.var));
Z_FE_ITER_P(EX_VAR(opline->result.var)) = (uint32_t)-1;
zval_ptr_dtor_nogc(EX_VAR(opline->op1.var));
}
}
} else {
- zend_error(E_WARNING, "foreach() argument must be of type array|object, %s given", zend_get_type_by_const(Z_TYPE_P(array_ptr)));
+ zend_error(E_WARNING, "foreach() argument must be of type array|object, %s given", zend_zval_type_name(array_ptr));
ZVAL_UNDEF(EX_VAR(opline->result.var));
Z_FE_ITER_P(EX_VAR(opline->result.var)) = (uint32_t)-1;
if (IS_TMP_VAR == IS_VAR) {
}
}
} else {
- zend_error(E_WARNING, "foreach() argument must be of type array|object, %s given", zend_get_type_by_const(Z_TYPE_P(array_ptr)));
+ zend_error(E_WARNING, "foreach() argument must be of type array|object, %s given", zend_zval_type_name(array_ptr));
ZVAL_UNDEF(EX_VAR(opline->result.var));
Z_FE_ITER_P(EX_VAR(opline->result.var)) = (uint32_t)-1;
zval_ptr_dtor_nogc(EX_VAR(opline->op1.var));
}
}
} else {
- zend_error(E_WARNING, "foreach() argument must be of type array|object, %s given", zend_get_type_by_const(Z_TYPE_P(array_ptr)));
+ zend_error(E_WARNING, "foreach() argument must be of type array|object, %s given", zend_zval_type_name(array_ptr));
ZVAL_UNDEF(EX_VAR(opline->result.var));
Z_FE_ITER_P(EX_VAR(opline->result.var)) = (uint32_t)-1;
if (IS_VAR == IS_VAR) {
value_type = Z_TYPE_INFO_P(value);
}
} else {
- zend_error(E_WARNING, "foreach() argument must be of type array|object, %s given", zend_get_type_by_const(Z_TYPE_P(array)));
+ zend_error(E_WARNING, "foreach() argument must be of type array|object, %s given", zend_zval_type_name(array));
if (UNEXPECTED(EG(exception))) {
UNDEF_RESULT();
HANDLE_EXCEPTION();
if (UNEXPECTED(Z_TYPE_P(op) != IS_OBJECT)) {
ZVAL_DEREF(op);
if (Z_TYPE_P(op) != IS_OBJECT) {
- zend_type_error("Cannot use ::class on value of type %s",
- zend_get_type_by_const(Z_TYPE_P(op)));
+ zend_type_error("Cannot use ::class on value of type %s", zend_zval_type_name(op));
ZVAL_UNDEF(EX_VAR(opline->result.var));
HANDLE_EXCEPTION();
if (IS_UNUSED == IS_CV && UNEXPECTED(Z_TYPE_P(op1) == IS_UNDEF)) {
ZVAL_UNDEFINED_OP1();
}
- zend_type_error("get_class(): Argument #1 ($object) must be of type object, %s given", zend_get_type_by_const(Z_TYPE_P(op1)));
+ zend_type_error("get_class(): Argument #1 ($object) must be of type object, %s given", zend_zval_type_name(op1));
ZVAL_UNDEF(EX_VAR(opline->result.var));
}
break;
}
}
} else {
- zend_error(E_WARNING, "foreach() argument must be of type array|object, %s given", zend_get_type_by_const(Z_TYPE_P(array_ptr)));
+ zend_error(E_WARNING, "foreach() argument must be of type array|object, %s given", zend_zval_type_name(array_ptr));
ZVAL_UNDEF(EX_VAR(opline->result.var));
Z_FE_ITER_P(EX_VAR(opline->result.var)) = (uint32_t)-1;
}
}
} else {
- zend_error(E_WARNING, "foreach() argument must be of type array|object, %s given", zend_get_type_by_const(Z_TYPE_P(array_ptr)));
+ zend_error(E_WARNING, "foreach() argument must be of type array|object, %s given", zend_zval_type_name(array_ptr));
ZVAL_UNDEF(EX_VAR(opline->result.var));
Z_FE_ITER_P(EX_VAR(opline->result.var)) = (uint32_t)-1;
if (IS_CV == IS_VAR) {
zval_ptr_dtor(&tmp);
}
if (!EG(exception)) {
- zend_type_error("strlen(): Argument #1 ($str) must be of type string, %s given", zend_get_type_by_const(Z_TYPE_P(value)));
+ zend_type_error("strlen(): Argument #1 ($str) must be of type string, %s given", zend_zval_type_name(value));
}
ZVAL_UNDEF(EX_VAR(opline->result.var));
} while (0);
if (UNEXPECTED(Z_TYPE_P(op) != IS_OBJECT)) {
ZVAL_DEREF(op);
if (Z_TYPE_P(op) != IS_OBJECT) {
- zend_type_error("Cannot use ::class on value of type %s",
- zend_get_type_by_const(Z_TYPE_P(op)));
+ zend_type_error("Cannot use ::class on value of type %s", zend_zval_type_name(op));
ZVAL_UNDEF(EX_VAR(opline->result.var));
HANDLE_EXCEPTION();
if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_P(op1) == IS_UNDEF)) {
ZVAL_UNDEFINED_OP1();
}
- zend_type_error("get_class(): Argument #1 ($object) must be of type object, %s given", zend_get_type_by_const(Z_TYPE_P(op1)));
+ zend_type_error("get_class(): Argument #1 ($object) must be of type object, %s given", zend_zval_type_name(op1));
ZVAL_UNDEF(EX_VAR(opline->result.var));
}
break;
zend_throw_error(zend_ffi_exception_ce, "Passing incompatible argument %d of C function '%s', expecting '%s', found '%s'", n + 1, ZSTR_VAL(EX(func)->internal_function.function_name), buf1.start, buf2.start);
}
} else {
- zend_throw_error(zend_ffi_exception_ce, "Passing incompatible argument %d of C function '%s', expecting '%s', found PHP '%s'", n + 1, ZSTR_VAL(EX(func)->internal_function.function_name), buf1.start, zend_get_type_by_const(Z_TYPE_P(arg)));
+ zend_throw_error(zend_ffi_exception_ce, "Passing incompatible argument %d of C function '%s', expecting '%s', found PHP '%s'", n + 1, ZSTR_VAL(EX(func)->internal_function.function_name), buf1.start, zend_zval_type_name(arg));
}
}
}
zend_throw_error(zend_ffi_exception_ce, "Incompatible types when assigning to type '%s' from type '%s'", buf1.start, buf2.start);
}
} else {
- zend_throw_error(zend_ffi_exception_ce, "Incompatible types when assigning to type '%s' from PHP '%s'", buf1.start, zend_get_type_by_const(Z_TYPE_P(arg)));
+ zend_throw_error(zend_ffi_exception_ce, "Incompatible types when assigning to type '%s' from PHP '%s'", buf1.start, zend_zval_type_name(arg));
}
}
}
goto finish;
}
if (Z_TYPE_P(ztarget) != IS_LONG) {
- zend_value_error("Redirection target must be of type int, %s given", zend_get_type_by_const(Z_TYPE_P(ztarget)));
+ zend_value_error("Redirection target must be of type int, %s given", zend_zval_type_name(ztarget));
goto finish;
}
} break;
default:
- zend_argument_type_error(2, "must be of type zero-terminated string or array, %s given", zend_get_type_by_const(Z_TYPE_P(option_buffer)));
+ zend_argument_type_error(2, "must be of type zero-terminated string or array, %s given", zend_zval_type_name(option_buffer));
return 0;
}
}