aboutsummaryrefslogtreecommitdiff
path: root/src/checker/expr.cpp
diff options
context:
space:
mode:
authorgingerBill <ginger.bill.22@gmail.com>2016-08-16 20:08:40 +0100
committergingerBill <ginger.bill.22@gmail.com>2016-08-16 20:08:40 +0100
commite8530ca883edd79c188443ced54cea2c5d3ad4ed (patch)
tree4e264d51cbbbe41f0dc7eed16bcdbb73f372c844 /src/checker/expr.cpp
parent2d49a615630eb27d95c7cde67722f419a1977996 (diff)
Win32 Demo: OpenGL Context
Diffstat (limited to 'src/checker/expr.cpp')
-rw-r--r--src/checker/expr.cpp9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/checker/expr.cpp b/src/checker/expr.cpp
index f5b3d2158..542afb853 100644
--- a/src/checker/expr.cpp
+++ b/src/checker/expr.cpp
@@ -600,10 +600,10 @@ void check_is_expressible(Checker *c, Operand *o, Type *type) {
if (!is_type_integer(o->type) && is_type_integer(type)) {
error(&c->error_collector, ast_node_token(o->expr), "`%s` truncated to `%s`", a, b);
} else {
- error(&c->error_collector, ast_node_token(o->expr), "`%s` overflows `%s`", a, b);
+ error(&c->error_collector, ast_node_token(o->expr), "`%s = %lld` overflows `%s`", a, o->value.value_integer, b);
}
} else {
- error(&c->error_collector, ast_node_token(o->expr), "Cannot convert `%s` to `%s`", a, b);
+ error(&c->error_collector, ast_node_token(o->expr), "Cannot convert `%s` to `%s`", a, b);
}
o->mode = Addressing_Invalid;
@@ -867,6 +867,11 @@ b32 check_castable_to(Checker *c, Operand *operand, Type *y) {
return true;
}
+ // proc <-> proc
+ if (is_type_proc(xb), is_type_proc(yb)) {
+ return true;
+ }
+
return false;
}