aboutsummaryrefslogtreecommitdiff
path: root/boot/type_check.cc
diff options
context:
space:
mode:
authorEugen Wissner <belka@caraus.de>2026-08-18 13:31:47 +0200
committerEugen Wissner <belka@caraus.de>2026-08-18 13:31:47 +0200
commit4f77ad5d019618893c59a0f8d5bfa6b98e50a3be (patch)
treed9e01460ecf94a491be476fbca76b6608276d967 /boot/type_check.cc
parent4b7c87a9b53f5317e9f7982bd779d53a66960bdc (diff)
downloadelna-4f77ad5d019618893c59a0f8d5bfa6b98e50a3be.tar.gz
Make Int and Word aliases to fixed-size types
Diffstat (limited to 'boot/type_check.cc')
-rw-r--r--boot/type_check.cc6
1 files changed, 4 insertions, 2 deletions
diff --git a/boot/type_check.cc b/boot/type_check.cc
index e58a50e..d830763 100644
--- a/boot/type_check.cc
+++ b/boot/type_check.cc
@@ -569,7 +569,8 @@ namespace elna::boot
.right = case_label->type_decoration,
.operation = binary_operator::equals
};
- add_error<type_mismatch_error>(case_label->position(), condition_type, binary_error);
+ add_error<type_mismatch_error>(case_label->position(),
+ statement->condition().type_decoration, binary_error);
}
}
}
@@ -843,7 +844,8 @@ namespace elna::boot
}
else if (operation == unary_operator::minus)
{
- if (!is_primitive_type(resolved, "Int")
+ auto signed_primitive = resolved.get<primitive_type>();
+ if ((signed_primitive == nullptr || !signed_primitive->identifier.starts_with("Int"))
&& !is_primitive_type(resolved, "Float"))
{
add_error<type_mismatch_error>(expression->position(),