From 34b2dbcacc4b07ee5d32e05ab0b7bb1f89435a47 Mon Sep 17 00:00:00 2001 From: Brendan Hansen Date: Fri, 1 Jan 2021 14:17:11 -0600 Subject: [PATCH] fix auto-cast bug with overloaded procs --- bin/onyx | Bin 287224 -> 287272 bytes docs/bugs | 2 +- src/onyxutils.c | 4 ++-- src/onyxwasm.c | 15 ++++++++++----- tests/overload_with_autocast | 2 ++ tests/overload_with_autocast.onyx | 16 ++++++++++++++++ 6 files changed, 31 insertions(+), 8 deletions(-) create mode 100644 tests/overload_with_autocast create mode 100644 tests/overload_with_autocast.onyx diff --git a/bin/onyx b/bin/onyx index 297704e57c3bf140828b5b1e883f1fafe5bd0bc3..27ee833f4b9a6119cefa6523676a68ceec73d127 100755 GIT binary patch delta 47245 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 delta 46878 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 Va~(&HQg0P|&+%NVJlA-K|1YIgHiiHI diff --git a/docs/bugs b/docs/bugs index 583d9344..56bdc2eb 100644 --- a/docs/bugs +++ b/docs/bugs @@ -1,6 +1,6 @@ List of known bugs: -[ ] Using an auto-cast on an argument when calling an overloaded proc leads +[X] Using an auto-cast on an argument when calling an overloaded proc leads to an unexpected error. Take the following example: ``` overloaded :: proc { diff --git a/src/onyxutils.c b/src/onyxutils.c index 9308525e..132a43cc 100644 --- a/src/onyxutils.c +++ b/src/onyxutils.c @@ -875,7 +875,7 @@ b32 convert_numlit_to_type(AstNumLit* num, Type* type) { if (type->Basic.size == 8) { // TODO(Brendan): Check these boundary conditions if (bh_abs(num->value.l) >= (1ull << 52)) { - onyx_report_error(num->token->pos, "Integer '%l' does not fit in 32-bit float exactly.", num->value.l); + onyx_report_error(num->token->pos, "Integer '%l' does not fit in 64-bit float exactly.", num->value.l); return 0; } @@ -932,7 +932,7 @@ b32 type_check_or_auto_cast(AstTyped** pnode, Type* type) { // If the node is an auto cast, we convert it to a cast node which will reports errors if // the cast is illegal in the code generation. ((AstUnaryOp *) node)->type = type; - ((AstUnaryOp *) node)->operation = Unary_Op_Cast; + // ((AstUnaryOp *) node)->operation = Unary_Op_Cast; return 1; } else if (node->kind == Ast_Kind_NumLit) { diff --git a/src/onyxwasm.c b/src/onyxwasm.c index 99d8dac9..a563d589 100644 --- a/src/onyxwasm.c +++ b/src/onyxwasm.c @@ -1346,12 +1346,17 @@ EMIT_FUNC(unaryop, AstUnaryOp* unop) { TypeBasic* type = &unop->type->Basic; - if (type->kind == Basic_Kind_I32 || type->kind == Basic_Kind_U32 - || type->kind == Basic_Kind_I16 || type->kind == Basic_Kind_U16 - || type->kind == Basic_Kind_I8 || type->kind == Basic_Kind_U8) { + if (type->kind == Basic_Kind_I8 || type->kind == Basic_Kind_U8) { + WID(WI_I32_CONST, 0xff); + WI(WI_I32_XOR); + } + else if (type->kind == Basic_Kind_I16 || type->kind == Basic_Kind_U16) { + WID(WI_I32_CONST, 0xffff); + WI(WI_I32_XOR); + } + else if (type->kind == Basic_Kind_I32 || type->kind == Basic_Kind_U32) { WID(WI_I32_CONST, 0xffffffff); WI(WI_I32_XOR); - } else if (type->kind == Basic_Kind_I64 || type->kind == Basic_Kind_U64) { WIL(WI_I64_CONST, 0xffffffffffffffff); @@ -1364,7 +1369,7 @@ EMIT_FUNC(unaryop, AstUnaryOp* unop) { case Unary_Op_Cast: emit_cast(mod, &code, unop); break; // NOTE: Any remaining auto casts can be ignored since it means that a cast was not necessary. - brendanfh 2020/09/19 - case Unary_Op_Auto_Cast: emit_expression(mod, &code, unop->expr); break; + case Unary_Op_Auto_Cast: emit_cast(mod, &code, unop); break; } *pcode = code; diff --git a/tests/overload_with_autocast b/tests/overload_with_autocast new file mode 100644 index 00000000..1eb3461e --- /dev/null +++ b/tests/overload_with_autocast @@ -0,0 +1,2 @@ +Called i32, i32 +Called f32, str diff --git a/tests/overload_with_autocast.onyx b/tests/overload_with_autocast.onyx new file mode 100644 index 00000000..7788c70f --- /dev/null +++ b/tests/overload_with_autocast.onyx @@ -0,0 +1,16 @@ +#include_file "core/std/js" + +use package core + +overloaded :: proc { + proc (x: f32, y: str) do println("Called f32, str"); , + proc (x: i32, y: i32) do println("Called i32, i32"); , +} + +main :: proc (args: [] cstr) { + x: i32 = 1234; + overloaded(~~x, 4); + + y: i32 = 1234; + overloaded(~~x, "Test"); +} -- 2.25.1