From: Brendan Hansen Date: Mon, 10 Aug 2020 19:54:58 +0000 (-0500) Subject: bugfix with compile time expression as array size X-Git-Url: https://git.brendanfh.com/?a=commitdiff_plain;h=3ec3fa2f447b9301426ca6eba7b3d575a7b7ed7f;p=onyx.git bugfix with compile time expression as array size --- diff --git a/onyx b/onyx index 1b601253..0304ad6c 100755 Binary files a/onyx and b/onyx differ diff --git a/progs/stack_based.onyx b/progs/stack_based.onyx index bae44419..7ddfcd13 100644 --- a/progs/stack_based.onyx +++ b/progs/stack_based.onyx @@ -101,4 +101,8 @@ start :: proc #export { } print(soa.y[3]); print_ptr(^soa.y[3]); + + fancy : [5 + 3 * 4] i32; + fancy[2] = 123; + print(fancy[2]); } \ No newline at end of file diff --git a/src/onyxchecker.c b/src/onyxchecker.c index 973f8cb8..8354c391 100644 --- a/src/onyxchecker.c +++ b/src/onyxchecker.c @@ -30,6 +30,10 @@ CHECK(function_header, AstFunction* func); CHECK(memres, AstMemRes* memres); static inline void fill_in_type(AstTyped* node) { + if (node->type_node && node->type_node->kind == Ast_Kind_Array_Type) { + if (((AstArrayType *) node->type_node)->count_expr) check_expression(&((AstArrayType *) node->type_node)->count_expr); + } + if (node->type == NULL) node->type = type_build_from_ast(semstate.allocator, node->type_node); }