From a5affea7bf91b3d8dd3c3cce025cf3f8215a81d5 Mon Sep 17 00:00:00 2001 From: Brendan Hansen Date: Sun, 27 Dec 2020 17:01:35 -0600 Subject: [PATCH] bugfix with reducing comptime enum expressions --- onyx | Bin 286968 -> 286968 bytes progs/poly_solidify.onyx | 9 +++++---- src/onyxutils.c | 10 +++++++--- 3 files changed, 12 insertions(+), 7 deletions(-) diff --git a/onyx b/onyx index 90cf0736fe79d3ebf3fdbdb33dfce98c88b2125a..4856420fc52d8ef561ee0d3a5809e0ae148e4da5 100755 GIT binary patch delta 26079 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 W%y0FvtLu2Srqw8nOnvQsll~v=f2(N# delta 26074 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 $B, g: proc (B) -> $C) -> C do return g(f(a)); -specific_compose_0 :: #solidify compose { B = u32 }; +specific_compose_0 :: #solidify compose { B = f32 }; specific_compose_1 :: #solidify specific_compose_0 { A = f32 }; +specific_compose_2 :: #solidify specific_compose_1 { C = f64 }; main :: proc (args: [] cstr) { printf("max(1, 2) = %i\n", math.max(1, 2)); @@ -15,8 +16,8 @@ main :: proc (args: [] cstr) { // printf("max_f32(1, 2) = %i\n", max_f32(cast(u32) 1, cast(u32) 2)); - println(specific_compose_1( + println(specific_compose_2( 2, - proc (a: f32) -> i32 { return ~~(a * 2); }, - proc (b: i32) -> i32 { return ~~(b + 6); })); + proc (a: f32) -> f32 { return ~~(a * 2); }, + proc (b: f32) -> f64 { return ~~(b + 6); })); } \ No newline at end of file diff --git a/src/onyxutils.c b/src/onyxutils.c index a43d497d..c88e6378 100644 --- a/src/onyxutils.c +++ b/src/onyxutils.c @@ -265,7 +265,9 @@ void scope_clear(Scope* scope) { #define REDUCE_BINOP_ALL(op) \ if (type_is_small_integer(res->type) || type_is_bool(res->type)) { \ res->value.i = left->value.i op right->value.i; \ - } else if (type_is_integer(res->type) || res->type->Basic.kind == Basic_Kind_Int_Unsized) { \ + } else if (type_is_integer(res->type) \ + || res->type->Basic.kind == Basic_Kind_Int_Unsized \ + || res->type->kind == Type_Kind_Enum) { \ res->value.l = left->value.l op right->value.l; \ } else if (res->type->Basic.kind == Basic_Kind_F32) { \ res->value.f = left->value.f op right->value.f; \ @@ -277,7 +279,9 @@ void scope_clear(Scope* scope) { #define REDUCE_BINOP_INT(op) \ if (type_is_small_integer(res->type) || type_is_bool(res->type)) { \ res->value.i = left->value.i op right->value.i; \ - } else if (type_is_integer(res->type) || res->type->Basic.kind == Basic_Kind_Int_Unsized) { \ + } else if (type_is_integer(res->type) \ + || res->type->Basic.kind == Basic_Kind_Int_Unsized \ + || res->type->kind == Type_Kind_Enum) { \ res->value.l = left->value.l op right->value.l; \ } \ break; @@ -387,7 +391,7 @@ AstTyped* ast_reduce(bh_allocator a, AstTyped* node) { case Ast_Kind_Binary_Op: return (AstTyped *) ast_reduce_binop(a, (AstBinaryOp *) node); case Ast_Kind_Unary_Op: return (AstTyped *) ast_reduce_unaryop(a, (AstUnaryOp *) node); case Ast_Kind_NumLit: return node; - case Ast_Kind_Enum_Value: return (AstTyped *) ast_reduce(a, (AstTyped *) ((AstEnumValue *) node)->value); + case Ast_Kind_Enum_Value: return (AstTyped *) ((AstEnumValue *) node)->value; default: return NULL; } } -- 2.25.1