| 1639 | } php_narrowing_t; |
| 1640 | |
| 1641 | static const char *is_func_to_builtin(const char *name) { |
| 1642 | if (!name) |
| 1643 | return NULL; |
| 1644 | if (strcmp(name, "is_string") == 0) |
| 1645 | return "string"; |
| 1646 | if (strcmp(name, "is_int") == 0 || strcmp(name, "is_integer") == 0 || |
| 1647 | strcmp(name, "is_long") == 0) |
| 1648 | return "int"; |
| 1649 | if (strcmp(name, "is_float") == 0 || strcmp(name, "is_double") == 0 || |
| 1650 | strcmp(name, "is_real") == 0) |
| 1651 | return "float"; |
| 1652 | if (strcmp(name, "is_bool") == 0) |
| 1653 | return "bool"; |
| 1654 | if (strcmp(name, "is_array") == 0) |
| 1655 | return "array"; |
| 1656 | if (strcmp(name, "is_object") == 0) |
| 1657 | return "object"; |
| 1658 | if (strcmp(name, "is_callable") == 0) |
| 1659 | return "callable"; |
| 1660 | if (strcmp(name, "is_iterable") == 0) |
| 1661 | return "iterable"; |
| 1662 | if (strcmp(name, "is_numeric") == 0) |
| 1663 | return "float"; |
| 1664 | if (strcmp(name, "is_countable") == 0) |
| 1665 | return "iterable"; |
| 1666 | if (strcmp(name, "is_resource") == 0) |
| 1667 | return "resource"; |
| 1668 | return NULL; |
| 1669 | } |
| 1670 | |
| 1671 | /* Parse a narrowing predicate. On success fill out and return true. |
| 1672 | * |
no outgoing calls
no test coverage detected