From 1fa6f4ec2a81243329f81c4f82f4b9dc65d1544b Mon Sep 17 00:00:00 2001 From: Kyler Date: Sun, 30 Nov 2025 23:07:06 -0700 Subject: [PATCH] Fixed type_of --- SLS_C/src/builtin.c | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/SLS_C/src/builtin.c b/SLS_C/src/builtin.c index fdaf05d..4f8cc9d 100644 --- a/SLS_C/src/builtin.c +++ b/SLS_C/src/builtin.c @@ -2131,14 +2131,23 @@ Boolean builtin_tan(InterpreterState *interpreter_state) { } Boolean builtin_type_of(InterpreterState *interpreter_state) { - if (interpreter_state->stack == NULL) return FALSE; - return push_token(interpreter_state, (Token){ + if (interpreter_state->stack == NULL) + return FALSE; + + StackItem *node = interpreter_state->stack; + interpreter_state->stack = interpreter_state->stack->next; + node->next = NULL; + + Boolean return_value = push_token(interpreter_state, (Token){ .type = TOKEN_IDENTIFIER, .identifier = (Identifier){ .is_literal = TRUE, - .name = sls_str_malloc(STACK_TYPES_TYPES[interpreter_state->stack->type], TYPE_NAMES_SAFE_LENGTH), + .name = sls_str_malloc(STACK_TYPES_TYPES[node->type], TYPE_NAMES_SAFE_LENGTH), }, }); + + clean_stack(node); + return return_value; } Boolean builtin_while(InterpreterState *interpreter_state) {