From 37669b1734b7cc2daf3b1755c6a3c985adb896f8 Mon Sep 17 00:00:00 2001 From: Bruce Hill Date: Sat, 17 Aug 2024 15:07:22 -0400 Subject: Bugfix for Int64$hash() being referenced --- structs.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'structs.c') diff --git a/structs.c b/structs.c index 6647320a..fb22eef6 100644 --- a/structs.c +++ b/structs.c @@ -148,11 +148,20 @@ void compile_struct_def(env_t *env, ast_t *ast) typeinfo = CORD_all(typeinfo, ".compare=(void*)", type_to_cord(member_t), "$compare, " ".equal=(void*)", type_to_cord(member_t), "$equal, "); goto got_methods; - case TextType: case IntType: + case TextType: typeinfo = CORD_all(typeinfo, ".hash=(void*)", type_to_cord(member_t), "$hash", ", ", ".compare=(void*)", type_to_cord(member_t), "$compare, " ".equal=(void*)", type_to_cord(member_t), "$equal, "); goto got_methods; + case IntType: + if (Match(member_t, IntType)->bits == 0) + typeinfo = CORD_all(typeinfo, ".hash=(void*)Int$hash", ", ", + ".compare=(void*)Int$compare, " + ".equal=(void*)Int$equal, "); + else + typeinfo = CORD_all(typeinfo, ".compare=(void*)", type_to_cord(member_t), "$compare, " + ".equal=(void*)", type_to_cord(member_t), "$equal, "); + goto got_methods; case BoolType: goto got_methods; default: break; } -- cgit v1.2.3