| 701 | } |
| 702 | |
| 703 | static const CBMType *cs_unwrap_nullable(const CBMType *t) { |
| 704 | if (!t) return t; |
| 705 | if (t->kind == CBM_TYPE_TEMPLATE) { |
| 706 | const char *n = t->data.template_type.template_name; |
| 707 | if (n && strcmp(n, "System.Nullable") == 0) { |
| 708 | if (t->data.template_type.template_args && t->data.template_type.template_args[0]) { |
| 709 | return t->data.template_type.template_args[0]; |
| 710 | } |
| 711 | } |
| 712 | } |
| 713 | return t; |
| 714 | } |
| 715 | |
| 716 | const CBMType *cs_eval_expr_type(CSLSPContext *ctx, TSNode node) { |
| 717 | if (ts_node_is_null(node) || ctx->eval_depth >= CS_EVAL_MAX_DEPTH) { |
no outgoing calls
no test coverage detected