diff options
Diffstat (limited to 'boot/evaluator.cc')
| -rw-r--r-- | boot/evaluator.cc | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/boot/evaluator.cc b/boot/evaluator.cc index 7eb612b..990f358 100644 --- a/boot/evaluator.cc +++ b/boot/evaluator.cc @@ -399,7 +399,8 @@ namespace elna::boot { type const resolved = resolve_underlying_type(subject); - if (is_primitive_type(resolved, "Int")) + if (is_primitive_type(resolved, "Int") + || resolved.get<enumeration_type>() != nullptr) { return target.int_size; } @@ -415,6 +416,15 @@ namespace elna::boot { return target.float_size; } + else if (is_primitive_type(resolved, "Bool")) + { + return target.bool_size; + } + else if (is_primitive_type(resolved, "String") + || resolved.get<slice_type>() != nullptr) + { + return target.pointer_size + target.word_size; + } else if (is_primitive_type(resolved, "Pointer") || resolved.get<pointer_type>() != nullptr) { |
