aboutsummaryrefslogtreecommitdiff
path: root/src/parser.cpp
diff options
context:
space:
mode:
authorgingerBill <gingerBill@users.noreply.github.com>2026-02-11 14:05:06 +0000
committergingerBill <gingerBill@users.noreply.github.com>2026-02-11 14:05:06 +0000
commitb1633b9ebb68cb682a656f1026056f77afcdfb45 (patch)
treec9414cbdff10309683afd87e5af0bea3692afdd7 /src/parser.cpp
parent9e547b4f8224fe233a91d53c96801a3df94d986d (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.cpp16
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 = {};