chore: upgrade project dependencies to latest compatible versions across all modules

This commit is contained in:
2025-12-03 22:51:38 +00:00
parent f83de7abcd
commit e768ed066c
6 changed files with 502 additions and 5 deletions
+6
View File
@@ -221,6 +221,7 @@ static const char* _rava_opcode_name(RavaOpCode_e opcode) {
case RAVA_OP_LABEL: return "LABEL";
case RAVA_OP_CALL: return "CALL";
case RAVA_OP_CALL_STATIC: return "CALL_STATIC";
case RAVA_OP_CALL_RECURSIVE: return "CALL_RECURSIVE";
case RAVA_OP_RETURN: return "RETURN";
case RAVA_OP_RETURN_VOID: return "RETURN_VOID";
case RAVA_OP_NEW: return "NEW";
@@ -274,6 +275,11 @@ void rava_ir_print(RavaProgram_t *program) {
instr->operand.call.class_name,
instr->operand.call.method_name);
break;
case RAVA_OP_CALL_RECURSIVE:
printf(" %s.%s (recursive)",
instr->operand.call.class_name,
instr->operand.call.method_name);
break;
default:
break;
}
+2
View File
@@ -53,6 +53,7 @@ typedef enum {
RAVA_OP_CALL,
RAVA_OP_CALL_STATIC,
RAVA_OP_CALL_RECURSIVE,
RAVA_OP_CALL_VIRTUAL,
RAVA_OP_CALL_SUPER,
RAVA_OP_CALL_NATIVE,
@@ -139,6 +140,7 @@ typedef union {
char *class_name;
char *method_name;
int arg_count;
void *cached_method;
} call;
struct {
char *class_name;
+6 -1
View File
@@ -747,8 +747,13 @@ static void _rava_ir_gen_expression(RavaIRGenerator_t *gen, RavaASTNode_t *expr)
}
instr.opcode = RAVA_OP_CALL_STATIC;
if (expr->data.call.callee->type == RAVA_AST_IDENTIFIER_EXPR) {
const char *method_name = expr->data.call.callee->data.identifier.name;
if (gen->current_method && strcmp(gen->current_method->name, method_name) == 0) {
instr.opcode = RAVA_OP_CALL_RECURSIVE;
instr.operand.call.cached_method = (void*)gen->current_method;
}
instr.operand.call.class_name = strdup(gen->current_class->name);
instr.operand.call.method_name = strdup(expr->data.call.callee->data.identifier.name);
instr.operand.call.method_name = strdup(method_name);
instr.operand.call.arg_count = expr->data.call.arguments_count;
}
_rava_ir_emit(gen, instr);