From 08c022a236b7002cc720f02311a333333ea088ab Mon Sep 17 00:00:00 2001 From: Brendan Hansen Date: Sun, 19 Jul 2020 21:26:10 -0500 Subject: [PATCH] integers are implicitly converted if they are the same size --- onyx | Bin 275224 -> 275336 bytes progs/arrays.onyx | 14 +++++++------- src/onyxchecker.c | 13 +++++++++++-- src/onyxtypes.c | 6 +++++- 4 files changed, 23 insertions(+), 10 deletions(-) diff --git a/onyx b/onyx index deefae6b1fd5570dbcc721f8cf2e93d9430fd83d..69bdc1a0b091e26b8e1169024eacfb27ff0a1087 100755 GIT binary patch delta 24310 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 delta 24094 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 rawptr { heap_u32 :: __heap_start as ^u32; curr_offset := *heap_u32; - if curr_offset == 0 as u32 curr_offset = 8 as u32; + if curr_offset == 0 curr_offset = 8; *heap_u32 = curr_offset + size; return ((__heap_start as u32) + curr_offset) as rawptr; } - +alloc_2darr :: proc (rows: u32, cols: u32) -> ^^i32 { + arr := alloc(rows * 4) as ^^i32; + for i: 0, cols arr[i] = alloc(cols * 4) as ^i32; + return arr; +} multi_arr_test :: proc #export "main" { - arrs := alloc((10 * 4) as u32) as ^^i32; - - for i: 0, 10 { - arrs[i] = alloc((10 * 4) as u32) as ^i32; - } + arrs := alloc_2darr(10, 10); for y: 0, 10 for x: 0, 10 arrs[y][x] = x + y * 10; for y: 0, 10 for x: 0, 10 print(arrs[x][y]); diff --git a/src/onyxchecker.c b/src/onyxchecker.c index 1542cc99..d5626dcb 100644 --- a/src/onyxchecker.c +++ b/src/onyxchecker.c @@ -85,20 +85,29 @@ CHECK(for, AstFor* fornode) { if (check_expression(fornode->step)) return 1; // HACK - if (fornode->start->type != &basic_types[Basic_Kind_I32]) { + if (!types_are_compatible(fornode->start->type, &basic_types[Basic_Kind_I32])) { onyx_message_add(Msg_Type_Literal, fornode->start->token->pos, "expected expression of type i32 for start"); return 1; } - if (fornode->end->type != &basic_types[Basic_Kind_I32]) { + if (!types_are_compatible(fornode->end->type, &basic_types[Basic_Kind_I32])) { onyx_message_add(Msg_Type_Literal, fornode->end->token->pos, "expected expression of type i32 for end"); return 1; } + if (fornode->step) + if (!types_are_compatible(fornode->step->type, &basic_types[Basic_Kind_I32])) { + onyx_message_add(Msg_Type_Literal, + fornode->start->token->pos, + "expected expression of type i32 for step"); + return 1; + } + + if (check_statement(fornode->stmt)) return 1; return 0; diff --git a/src/onyxtypes.c b/src/onyxtypes.c index 118651e6..f8e9cd30 100644 --- a/src/onyxtypes.c +++ b/src/onyxtypes.c @@ -33,7 +33,11 @@ b32 types_are_compatible(Type* t1, Type* t2) { case Type_Kind_Basic: if (t2->kind == Type_Kind_Basic) { // HACK: Not sure if this is right way to check this? - return t1 == t2; + if (t1 == t2) return 1; + + if ((t1->Basic.flags & Basic_Flag_Integer) && (t2->Basic.flags & Basic_Flag_Integer)) { + return t1->Basic.size == t2->Basic.size; + } } break; -- 2.25.1