From 6104baddf4c1710411e48a096a092e813b00a67b Mon Sep 17 00:00:00 2001 From: Brendan Hansen Date: Thu, 31 Dec 2020 11:32:33 -0600 Subject: [PATCH] added 'null_proc' to builtin.onyx represents a procedure that matches every type; used for having a 'null' procedure when one isn't necessary --- bin/onyx | Bin 287224 -> 287224 bytes core/builtin.onyx | 4 +++- include/onyxastnodes.h | 3 +++ src/onyx.c | 2 +- src/onyxparser.c | 5 +++++ src/onyxutils.c | 3 +++ 6 files changed, 15 insertions(+), 2 deletions(-) diff --git a/bin/onyx b/bin/onyx index 9117f73bf5b83c3ee10bc304e1952eae8e6ff18b..297704e57c3bf140828b5b1e883f1fafe5bd0bc3 100755 GIT binary patch delta 58821 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 bool { return true; } -null :: cast(rawptr) 0; +// HACK: NullProcHack +null_proc :: proc () #null --- +null :: cast(rawptr) 0; OnyxContext :: struct { allocator : Allocator; diff --git a/include/onyxastnodes.h b/include/onyxastnodes.h index 578518d9..d94d8e5e 100644 --- a/include/onyxastnodes.h +++ b/include/onyxastnodes.h @@ -197,6 +197,9 @@ typedef enum AstFlags { Ast_Flag_Cannot_Take_Addr = BH_BIT(20), Ast_Flag_Struct_Mem_Used = BH_BIT(21), + + // HACK: NullProcHack + Ast_Flag_Proc_Is_Null = BH_BIT(22), } AstFlags; typedef enum UnaryOp { diff --git a/src/onyx.c b/src/onyx.c index b1e6c362..1f743b27 100644 --- a/src/onyx.c +++ b/src/onyx.c @@ -517,7 +517,7 @@ static i32 onyx_compile(CompilerState* compiler_state) { if (ent.expr->token) { OnyxFilePos pos = ent.expr->token->pos; - printf("\e[0K%s on %s:%d:%d\n", entity_state_strings[ent.state], pos.filename, pos.line, pos.column); + printf("\e[0K%s on %s in %s:%d:%d\n", entity_state_strings[ent.state], entity_type_strings[ent.type], pos.filename, pos.line, pos.column); } } diff --git a/src/onyxparser.c b/src/onyxparser.c index d7633124..2c11b7c9 100644 --- a/src/onyxparser.c +++ b/src/onyxparser.c @@ -1846,6 +1846,11 @@ static AstFunction* parse_function_definition(OnyxParser* parser) { } } + // HACK: NullProcHack + else if (parse_possible_directive(parser, "null")) { + func_def->flags |= Ast_Flag_Proc_Is_Null; + } + else { OnyxToken* directive_token = expect_token(parser, '#'); OnyxToken* symbol_token = expect_token(parser, Token_Type_Symbol); diff --git a/src/onyxutils.c b/src/onyxutils.c index 2042a8b1..9308525e 100644 --- a/src/onyxutils.c +++ b/src/onyxutils.c @@ -924,6 +924,9 @@ b32 type_check_or_auto_cast(AstTyped** pnode, Type* type) { node = *pnode; } + // HACK: NullProcHack + 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; if (node_is_auto_cast((AstNode *) node)) { // If the node is an auto cast, we convert it to a cast node which will reports errors if -- 2.25.1