From 33bfac2117d3a1d86cd73d7cc5bbc697d6925beb Mon Sep 17 00:00:00 2001 From: Brendan Hansen Date: Fri, 10 Sep 2021 10:30:58 -0500 Subject: [PATCH] better interop between array types --- bin/onyx | Bin 431256 -> 435384 bytes core/conv.onyx | 27 ++++++++++-- core/io/writer.onyx | 2 +- core/stdio.onyx | 2 +- include/astnodes.h | 8 ++++ modules/wasm_utils/parser.onyx | 4 +- src/astnodes.c | 73 +++++++++++++++++++++++++++++---- src/checker.c | 11 ++--- src/wasm.c | 8 ++++ 9 files changed, 114 insertions(+), 21 deletions(-) diff --git a/bin/onyx b/bin/onyx index bab7229bc9f7453430107ca2447e286db48a3b9a..0857ba0003720aa0040b276d1fba7f8f70e7e13f 100755 GIT binary patch delta 126070 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 delta 125178 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 EU&-Q|(f|Me diff --git a/core/conv.onyx b/core/conv.onyx index 00fbe9ae..d648f2a8 100644 --- a/core/conv.onyx +++ b/core/conv.onyx @@ -221,11 +221,11 @@ f64_to_str :: (f: f64, buf: [] u8, digits_after_decimal := 4) -> str { return str.{ buf.data, len }; } -str_format :: (format: str, buffer: [] u8, va: ..any) -> str { - return str_format_va(format, buffer, ~~va); +str_format :: (buffer: [] u8, format: str, va: ..any) -> str { + return str_format_va(buffer, format, ~~va); } -str_format_va :: (format: str, buffer: [] u8, va: [] any) -> str { +str_format_va :: (buffer: [] u8, format: str, va: [] any) -> str { Output :: struct { data: ^u8; count: u32; @@ -255,6 +255,7 @@ str_format_va :: (format: str, buffer: [] u8, va: [] any) -> str { Format :: struct { pretty_printing := false; quote_strings := false; + dereference := false; digits_after_decimal := cast(u32) 4; indentation := cast(u32) 0; @@ -282,6 +283,11 @@ str_format_va :: (format: str, buffer: [] u8, va: [] any) -> str { ch = format[i]; switch ch { + case #char "*" { + i += 1; + formatting.dereference = true; + } + case #char "." { i += 1; @@ -362,7 +368,20 @@ str_format_va :: (format: str, buffer: [] u8, va: [] any) -> str { print_any :: (output: ^Output, formatting: Format, v: any) { use package builtin.type_info - array :: package core.array + array :: package core.array; + + if formatting.dereference { + ti := get_type_info(v.type); + if ti.kind == .Pointer { + formatting.dereference = false; + + new_any: any; + new_any.type = (cast(^Type_Info_Pointer) ti).to; + new_any.data = *(cast(^rawptr) v.data); + print_any(output, formatting, new_any); + return; + } + } switch v.type { case bool { diff --git a/core/io/writer.onyx b/core/io/writer.onyx index 6f956358..6d9f32a9 100644 --- a/core/io/writer.onyx +++ b/core/io/writer.onyx @@ -78,7 +78,7 @@ write_range :: (use writer: ^Writer, r: range, sep := " ") { write_format :: (use writer: ^Writer, format: str, va: ..any) { // POTENTIAL BUG: this buffer will need to be bigger (or dynamic). buffer: [2048] u8; - write_str(writer, conv.str_format_va(format, ~~buffer, ~~va)); + write_str(writer, conv.str_format_va(buffer, format, va)); } write_escaped_str :: (use writer: ^Writer, s: str) { diff --git a/core/stdio.onyx b/core/stdio.onyx index 9891061b..424b8ff2 100644 --- a/core/stdio.onyx +++ b/core/stdio.onyx @@ -31,7 +31,7 @@ println :: (x) => { printf :: (format: str, va: ..any) { buffer: [8196] u8; - print(conv.str_format_va(format, ~~buffer, ~~va)); + print(conv.str_format_va(buffer, format, va)); } // This works on both slices and arrays diff --git a/include/astnodes.h b/include/astnodes.h index a3d0c4b9..227439d8 100644 --- a/include/astnodes.h +++ b/include/astnodes.h @@ -1360,6 +1360,7 @@ AstFieldAccess* make_field_access(bh_allocator a, AstTyped* node, char* field); AstAddressOf* make_address_of(bh_allocator a, AstTyped* node); AstLocal* make_local(bh_allocator a, OnyxToken* token, AstType* type_node); AstNode* make_symbol(bh_allocator a, OnyxToken* sym); +AstUnaryOp* make_cast(bh_allocator a, AstTyped* expr, Type* to); void arguments_initialize(Arguments* args); b32 fill_in_arguments(Arguments* args, AstNode* provider, char** err_msg); @@ -1434,6 +1435,13 @@ static inline b32 node_is_auto_cast(AstNode* node) { return (node->kind == Ast_Kind_Unary_Op) && (((AstUnaryOp *) node)->operation == Unary_Op_Auto_Cast); } +static inline Type* get_expression_type(AstTyped* expr) { + switch (expr->kind) { + case Ast_Kind_Block: case Ast_Kind_If: case Ast_Kind_While: return NULL; + default: return expr->type; + } +} + static inline CallingConvention type_function_get_cc(Type* type) { if (type == NULL) return CC_Undefined; if (type->kind != Type_Kind_Function) return CC_Undefined; diff --git a/modules/wasm_utils/parser.onyx b/modules/wasm_utils/parser.onyx index 1e6fb5a7..3475f97c 100644 --- a/modules/wasm_utils/parser.onyx +++ b/modules/wasm_utils/parser.onyx @@ -342,7 +342,7 @@ read_val_type :: (reader: ^io.Reader, binary: ^WasmBinary) -> WasmValueType { buf : [256] u8; _, loc := io.stream_tell(reader.stream); - s := conv.str_format("Bad wasm value type {} at {x}", ~~buf, cast(i32) byte, loc); + s := conv.str_format(buf, "Bad wasm value type {} at {x}", cast(i32) byte, loc); assert(false, s); } } @@ -393,7 +393,7 @@ parse_section_locations :: (use bin: ^WasmBinary) -> bool { case #default { buffer: [128] u8; conv :: package core.conv - assert(false, conv.str_format("Bad section number {}", ~~buffer, cast(i32) section_number)); + assert(false, conv.str_format(buffer, "Bad section number {}", cast(i32) section_number)); } } diff --git a/src/astnodes.c b/src/astnodes.c index 109ddf3b..5479bb04 100644 --- a/src/astnodes.c +++ b/src/astnodes.c @@ -543,7 +543,7 @@ b32 unify_node_and_type_(AstTyped** pnode, Type* type, b32 permanent) { AstNode* resolved = try_symbol_resolve_from_node((AstNode *) ast_type, node->token); if (resolved == NULL) return 0; - *pnode = (AstTyped *) resolved; + if (permanent) *pnode = (AstTyped *) resolved; return 1; } @@ -568,31 +568,66 @@ b32 unify_node_and_type_(AstTyped** pnode, Type* type, b32 permanent) { } // HACK: NullProcHack + // The null_proc matches any procedure, and because of that, will cause a runtime error if you + // try to call it. if (type->kind == Type_Kind_Function && (node->flags & Ast_Flag_Proc_Is_Null) != 0) return 1; - if (types_are_compatible(node->type, type)) return 1; + // The normal case where everything works perfectly. + Type* node_type = get_expression_type(node); + if (types_are_compatible(node_type, type)) return 1; + + // Here are some of the ways you can unify a node with a type if the type of the + // node does not match the given type: + // + // If the nodes type is a function type and that function has an automatic return + // value placeholder, fill in that placeholder with the actual type. // :AutoReturnType - if (node->type && node->type->kind == Type_Kind_Function - && node->type->Function.return_type == &type_auto_return + if (node_type && node_type->kind == Type_Kind_Function + && node_type->Function.return_type == &type_auto_return && type->kind == Type_Kind_Function) { - node->type->Function.return_type = type->Function.return_type; + node_type->Function.return_type = type->Function.return_type; return 1; } + + // If the node is an auto cast (~~) node, then check to see if the cast is legal + // to the destination type, and if it is change the type to cast to. if (node_is_auto_cast((AstNode *) node)) { char* dummy; - Type* from_type = ((AstUnaryOp *) node)->expr->type; + Type* from_type = get_expression_type(((AstUnaryOp *) node)->expr); if (!from_type || !cast_is_legal(from_type, type, &dummy)) { return 0; } else { - ((AstUnaryOp *) node)->type = type; + if (permanent) ((AstUnaryOp *) node)->type = type; return 1; } } + + // If the destination type is a slice, then automatically convert arrays, dynamic + // arrays, and var args, if they are the same type. This is big convenience feature + // that makes working with arrays much easier. + // [N] T -> [] T + // [..] T -> [] T + // ..T -> [] T + else if (node_type && type->kind == Type_Kind_Slice) { + if (node_type->kind == Type_Kind_Array || node_type->kind == Type_Kind_DynArray || node_type->kind == Type_Kind_VarArgs) { + char* dummy; + if (cast_is_legal(node_type, type, &dummy)) { + *pnode = (AstTyped *) make_cast(context.ast_alloc, node, type); + return 1; + } + } + } + + // If the node is a numeric literal, try to convert it to the destination type. else if (node->kind == Ast_Kind_NumLit) { if (convert_numlit_to_type((AstNumLit *) node, type)) return 1; } + + // If the node is a compound expression, and it doesn't have a type created, + // recursive call this function with the individual components of the compound + // expression. else if (node->kind == Ast_Kind_Compound) { if (type->kind != Type_Kind_Compound) return 0; @@ -609,6 +644,7 @@ b32 unify_node_and_type_(AstTyped** pnode, Type* type, b32 permanent) { return 1; } + else if (node->kind == Ast_Kind_If_Expression) { AstIfExpression* if_expr = (AstIfExpression *) node; @@ -616,13 +652,14 @@ b32 unify_node_and_type_(AstTyped** pnode, Type* type, b32 permanent) { b32 false_success = unify_node_and_type_(&if_expr->false_expr, type, permanent); if (true_success && false_success) { - if_expr->type = type; + if (permanent) if_expr->type = type; return 1; } else { return 0; } } + else if (node->kind == Ast_Kind_Alias) { AstAlias* alias = (AstAlias *) node; return unify_node_and_type_(&alias->alias, type, permanent); @@ -751,6 +788,8 @@ b32 cast_is_legal(Type* from_, Type* to_, char** err_msg) { return 0; } + // CLEANUP: These error messages should be a lot better and actually + // provide the types of the things in question. if (to->kind == Type_Kind_Slice && from->kind == Type_Kind_Array) { if (!types_are_compatible(to->Slice.elem, from->Array.elem)) { *err_msg = "Array to slice cast is not valid here because the types are different."; @@ -760,6 +799,15 @@ b32 cast_is_legal(Type* from_, Type* to_, char** err_msg) { } } + if (to->kind == Type_Kind_Slice && from->kind == Type_Kind_DynArray) { + if (!types_are_compatible(to->Slice.elem, from->DynArray.elem)) { + *err_msg = "Dynmaic array to slice cast is not valid here because the types are different."; + return 0; + } else { + return 1; + } + } + if (to->kind == Type_Kind_Slice && from->kind == Type_Kind_VarArgs) { if (!types_are_compatible(to->Slice.elem, from->VarArgs.elem)) { *err_msg = "Variadic argument to slice cast is not valid here because the types are different."; @@ -960,6 +1008,15 @@ AstNode* make_symbol(bh_allocator a, OnyxToken* sym) { return symbol; } +AstUnaryOp* make_cast(bh_allocator a, AstTyped* expr, Type* to) { + AstUnaryOp* cast = onyx_ast_node_new(a, sizeof(AstUnaryOp), Ast_Kind_Unary_Op); + cast->token = expr->token; + cast->operation = Unary_Op_Cast; + cast->expr = expr; + cast->type = to; + return cast; +} + void arguments_initialize(Arguments* args) { if (args->values == NULL) bh_arr_new(global_heap_allocator, args->values, 2); if (args->named_values == NULL) bh_arr_new(global_heap_allocator, args->named_values, 2); diff --git a/src/checker.c b/src/checker.c index b7674fcd..b948d7fa 100644 --- a/src/checker.c +++ b/src/checker.c @@ -696,7 +696,8 @@ CheckStatus check_binaryop_assignment(AstBinaryOp** pbinop) { if (binop->left->type == NULL) { resolve_expression_type(binop->right); - if (binop->right->type == NULL) { + Type* right_type = get_expression_type(binop->right); + if (right_type == NULL) { if (binop->right->entity == NULL || binop->right->entity->state > Entity_State_Check_Types) { ERROR(binop->token->pos, "Could not resolve type of right hand side to infer."); @@ -705,7 +706,7 @@ CheckStatus check_binaryop_assignment(AstBinaryOp** pbinop) { } } - if (binop->right->type->kind == Type_Kind_Compound) { + if (right_type->kind == Type_Kind_Compound) { AstCompound* lhs = (AstCompound *) binop->left; if (lhs->kind != Ast_Kind_Compound) { ERROR_(binop->token->pos, @@ -713,7 +714,7 @@ CheckStatus check_binaryop_assignment(AstBinaryOp** pbinop) { binop->right->type->Compound.count); } - i32 expr_count = binop->right->type->Compound.count; + i32 expr_count = right_type->Compound.count; if (bh_arr_length(lhs->exprs) != expr_count) { ERROR_(binop->token->pos, "Expected left hand side to have %d expressions.", @@ -721,13 +722,13 @@ CheckStatus check_binaryop_assignment(AstBinaryOp** pbinop) { } fori (i, 0, expr_count) { - lhs->exprs[i]->type = binop->right->type->Compound.types[i]; + lhs->exprs[i]->type = right_type->Compound.types[i]; } lhs->type = type_build_compound_type(context.ast_alloc, lhs); } else { - binop->left->type = binop->right->type; + binop->left->type = right_type; } } diff --git a/src/wasm.c b/src/wasm.c index 43125c52..f811c1c6 100644 --- a/src/wasm.c +++ b/src/wasm.c @@ -2754,6 +2754,14 @@ EMIT_FUNC(cast, AstUnaryOp* cast) { return; } + if (to->kind == Type_Kind_Slice && from->kind == Type_Kind_DynArray) { + WI(WI_DROP); + WI(WI_DROP); + WI(WI_DROP); + *pcode = code; + return; + } + if (to->kind == Type_Kind_Slice && from->kind == Type_Kind_VarArgs) { // Nothing needs to be done because they are identical *pcode = code; -- 2.25.1