| 734 | } |
| 735 | |
| 736 | static const CBMType *cs_unwrap_nullable(const CBMType *t) { |
| 737 | if (!t) return t; |
| 738 | if (t->kind == CBM_TYPE_TEMPLATE) { |
| 739 | const char *n = t->data.template_type.template_name; |
| 740 | if (n && strcmp(n, "System.Nullable") == 0) { |
| 741 | if (t->data.template_type.template_args && t->data.template_type.template_args[0]) { |
| 742 | return t->data.template_type.template_args[0]; |
| 743 | } |
| 744 | } |
| 745 | } |
| 746 | return t; |
| 747 | } |
| 748 | |
| 749 | const CBMType *cs_eval_expr_type(CSLSPContext *ctx, TSNode node) { |
| 750 | if (ts_node_is_null(node) || ctx->eval_depth >= CS_EVAL_MAX_DEPTH) { |
no outgoing calls
no test coverage detected