From fc1af0a04bfce7b64e1f776951016ea975e4cd21 Mon Sep 17 00:00:00 2001 From: Ginger Bill Date: Thu, 5 Jan 2017 23:50:44 +0000 Subject: [PATCH] Fix build error caused by invalid iterator types in `for` --- src/build.c | 2 +- src/checker/stmt.c | 4 +++- src/tokenizer.c | 4 ++++ 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);