diff options
Diffstat (limited to 'boot')
| -rw-r--r-- | boot/semantic.cc | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/boot/semantic.cc b/boot/semantic.cc index d8a3c41..3486830 100644 --- a/boot/semantic.cc +++ b/boot/semantic.cc @@ -749,6 +749,17 @@ namespace elna::boot case binary_operator::greater_equal: expression->type_decoration = lookup_primitive_type("Bool"); break; + case binary_operator::subtraction: + if (expression->lhs().type_decoration.get<pointer_type>() + && expression->rhs().type_decoration.get<pointer_type>()) + { + expression->type_decoration = lookup_primitive_type("Int"); + } + else + { + expression->type_decoration = expression->lhs().type_decoration; + } + break; default: expression->type_decoration = expression->lhs().type_decoration; break; |
