From: Brendan Hansen Date: Sat, 29 Jan 2022 02:56:26 +0000 (-0600) Subject: bugfixes with bad chars in errors and simd X-Git-Url: https://git.brendanfh.com/?a=commitdiff_plain;h=ba603c12388754a59fe1e1244dcaef13a9221b67;p=onyx.git bugfixes with bad chars in errors and simd --- diff --git a/core/intrinsics/simd.onyx b/core/intrinsics/simd.onyx index adf65f53..e052e701 100644 --- a/core/intrinsics/simd.onyx +++ b/core/intrinsics/simd.onyx @@ -1,6 +1,6 @@ package core.intrinsics.simd -simd :: package simd +#local simd :: package simd i8x16 :: #type simd.i8x16 i16x8 :: #type simd.i16x8 diff --git a/src/checker.c b/src/checker.c index 6d944690..c5231b89 100644 --- a/src/checker.c +++ b/src/checker.c @@ -1054,8 +1054,8 @@ CheckStatus check_binaryop(AstBinaryOp** pbinop) { } // NOTE: Try operator overloading before checking everything else. - if ((binop->left->type != NULL && binop->left->type->kind != Type_Kind_Basic) - || (binop->right->type != NULL && binop->right->type->kind != Type_Kind_Basic)) { + if ((binop->left->type != NULL && (binop->left->type->kind != Type_Kind_Basic || (binop->left->type->Basic.flags & Basic_Flag_SIMD) != 0)) + || (binop->right->type != NULL && (binop->right->type->kind != Type_Kind_Basic || (binop->right->type->Basic.flags & Basic_Flag_SIMD) != 0))) { AstCall *implicit_call = binaryop_try_operator_overload(binop, NULL); if (implicit_call == (AstCall *) &node_that_signals_a_yield) diff --git a/src/errors.c b/src/errors.c index 6fdf2806..f6811ca6 100644 --- a/src/errors.c +++ b/src/errors.c @@ -32,7 +32,7 @@ static void print_detailed_message(OnyxError* err, bh_file_contents* fc) { bh_printf("%b\n", err->pos.line_start, linelength); char* pointer_str = bh_alloc_array(global_scratch_allocator, char, linelength + numlen); - memset(pointer_str, ' ', numlen); + memset(pointer_str, ' ', linelength + numlen); memcpy(pointer_str + numlen - 1, err->pos.line_start, first_char); memset(pointer_str + first_char + numlen - 1, ' ', err->pos.column - first_char); memset(pointer_str + err->pos.column + numlen - 1, '~', err->pos.length - 1);