diff options
| author | gingerBill <gingerBill@users.noreply.github.com> | 2026-02-11 14:05:06 +0000 |
|---|---|---|
| committer | gingerBill <gingerBill@users.noreply.github.com> | 2026-02-11 14:05:06 +0000 |
| commit | b1633b9ebb68cb682a656f1026056f77afcdfb45 (patch) | |
| tree | c9414cbdff10309683afd87e5af0bea3692afdd7 /src/parser.cpp | |
| parent | 9e547b4f8224fe233a91d53c96801a3df94d986d (diff) | |
Require all values from a procedure iterator if the procedure is marked with `@(require_results)`
Diffstat (limited to 'src/parser.cpp')
| -rw-r--r-- | src/parser.cpp | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/parser.cpp b/src/parser.cpp index 0efe2714a..159eb65f8 100644 --- a/src/parser.cpp +++ b/src/parser.cpp @@ -514,6 +514,22 @@ gb_internal void error(Ast *node, char const *fmt, ...) { } } +gb_internal void error_range(TokenPos start, TokenPos end, char const *fmt, ...) { + GB_ASSERT(start.file_id == end.file_id); + GB_ASSERT(start.line == end.line); + GB_ASSERT(start.column <= end.column); + GB_ASSERT(start.offset <= end.offset); + + va_list va; + va_start(va, fmt); + error_va(start, end, fmt, va); + va_end(va); + if (start.file_id != 0) { + AstFile *f = thread_safe_get_ast_file_from_id(start.file_id); + f->error_count += 1; + } +} + gb_internal void syntax_error_with_verbose(Ast *node, char const *fmt, ...) { Token token = {}; TokenPos end_pos = {}; |