bugfixes with bad chars in errors and simd
authorBrendan Hansen <brendan.f.hansen@gmail.com>
Sat, 29 Jan 2022 02:56:26 +0000 (20:56 -0600)
committerBrendan Hansen <brendan.f.hansen@gmail.com>
Sat, 29 Jan 2022 02:56:26 +0000 (20:56 -0600)
core/intrinsics/simd.onyx
src/checker.c
src/errors.c

index adf65f538a6655afeae7fb6dbf58d00e4a21155b..e052e70105d7a821043bb0b32cd0ca3a4cd10a44 100644 (file)
@@ -1,6 +1,6 @@
 package core.intrinsics.simd
 
-simd :: package simd
+#local simd :: package simd
 
 i8x16 :: #type simd.i8x16
 i16x8 :: #type simd.i16x8
index 6d9446906e38b912747648e7302b3216401fba69..c5231b89959e7b66f33ffc5179e4f187995f0436 100644 (file)
@@ -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)
index 6fdf2806f781da0ecf5bd40b230e12335d16c525..f6811ca661b3d817b2031ed2efc374999635c84f 100644 (file)
@@ -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);