diff options
| author | Eugen Wissner <belka@caraus.de> | 2026-08-18 13:31:47 +0200 |
|---|---|---|
| committer | Eugen Wissner <belka@caraus.de> | 2026-08-18 13:31:47 +0200 |
| commit | 4f77ad5d019618893c59a0f8d5bfa6b98e50a3be (patch) | |
| tree | d9e01460ecf94a491be476fbca76b6608276d967 /boot/type_check.cc | |
| parent | 4b7c87a9b53f5317e9f7982bd779d53a66960bdc (diff) | |
| download | elna-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.cc | 6 |
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(), |
