aboutsummaryrefslogtreecommitdiff
path: root/boot/name_analysis.cc
diff options
context:
space:
mode:
Diffstat (limited to 'boot/name_analysis.cc')
-rw-r--r--boot/name_analysis.cc15
1 files changed, 8 insertions, 7 deletions
diff --git a/boot/name_analysis.cc b/boot/name_analysis.cc
index b8cd83e..7ced7ea 100644
--- a/boot/name_analysis.cc
+++ b/boot/name_analysis.cc
@@ -789,15 +789,16 @@ namespace elna::boot
}
}
- void name_analysis_visitor::visit(literal<std::int32_t> *literal)
- {
- literal->type_decoration = lookup_primitive_type("Int");
- this->current_type = literal->type_decoration;
- }
-
void name_analysis_visitor::visit(literal<integer_literal> *literal)
{
- literal->type_decoration = lookup_primitive_type("Word");
+ if (literal->value.is_signed())
+ {
+ literal->type_decoration = lookup_primitive_type("Int");
+ }
+ else
+ {
+ literal->type_decoration = lookup_primitive_type("Word");
+ }
this->current_type = literal->type_decoration;
}