aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGinger Bill <bill@gingerbill.org>2017-01-05 23:50:44 +0000
committerGinger Bill <bill@gingerbill.org>2017-01-05 23:50:44 +0000
commitfc1af0a04bfce7b64e1f776951016ea975e4cd21 (patch)
treea8d9efab75679daec2b44c37b3dd6b48cceaa765
parent4afb3f8fa41f7176cc80b4f6ad159526e8492e5e (diff)
Fix build error caused by invalid iterator types in `for`v0.0.5c
-rw-r--r--src/build.c2
-rw-r--r--src/checker/stmt.c4
-rw-r--r--src/tokenizer.c4
3 files changed, 8 insertions, 2 deletions
diff --git a/src/build.c b/src/build.c
index a34a20c61..78cc17154 100644
--- a/src/build.c
+++ b/src/build.c
@@ -149,7 +149,7 @@ String get_filepath_extension(String path) {
void init_build_context(BuildContext *bc) {
bc->ODIN_VENDOR = str_lit("odin");
- bc->ODIN_VERSION = str_lit("0.0.5a");
+ bc->ODIN_VERSION = str_lit("0.0.5c");
bc->ODIN_ROOT = odin_root_dir();
#if defined(GB_SYSTEM_WINDOWS)
diff --git a/src/checker/stmt.c b/src/checker/stmt.c
index 3a257f884..b6bf9b1d0 100644
--- a/src/checker/stmt.c
+++ b/src/checker/stmt.c
@@ -654,7 +654,9 @@ void check_stmt_internal(Checker *c, AstNode *node, u32 flags) {
if (val == NULL) {
gbString s = expr_to_string(operand.expr);
- error_node(node, "Cannot iterate over %s", s);
+ gbString t = type_to_string(operand.type);
+ error_node(operand.expr, "Cannot iterate over `%s` of type `%s`", s, t);
+ gb_string_free(t);
gb_string_free(s);
}
}
diff --git a/src/tokenizer.c b/src/tokenizer.c
index c5037aaa7..b4ddc33dd 100644
--- a/src/tokenizer.c
+++ b/src/tokenizer.c
@@ -198,6 +198,8 @@ void error_va(Token token, char *fmt, va_list va) {
gb_printf_err("%.*s(%td:%td) %s\n",
LIT(token.pos.file), token.pos.line, token.pos.column,
gb_bprintf_va(fmt, va));
+ } else if (token.pos.line == 0) {
+ gb_printf_err("Error: %s\n", gb_bprintf_va(fmt, va));
}
gb_mutex_unlock(&global_error_collector.mutex);
@@ -212,6 +214,8 @@ void syntax_error_va(Token token, char *fmt, va_list va) {
gb_printf_err("%.*s(%td:%td) Syntax Error: %s\n",
LIT(token.pos.file), token.pos.line, token.pos.column,
gb_bprintf_va(fmt, va));
+ } else if (token.pos.line == 0) {
+ gb_printf_err("Error: %s\n", gb_bprintf_va(fmt, va));
}
gb_mutex_unlock(&global_error_collector.mutex);