authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2019-03-01 15:35:29-05:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2019-03-01 15:35:29-05:00
log582fdc28691a8837af19ac1e9b3ad27ee2eeb315
tree399706b70bf46fa6b5c152e505e2e681fe4c695d
parentfaf76032f136c33e951b2c2ad85bcd4536e7dd75
signaturelock-open Commit is signed but in an unrecognized format.

fix dependency loops, pub, tests, use decls, root source

* fix dependency loop detection - closes #679 - closes #1500 * fix `pub` * fix tests * fix use decls * main package file gets a special "" namespace path

18 files changed, 825 insertions(+), 731 deletions(-)

src-self-hosted/compilation.zig+1-1
......@@ -47,7 +47,7 @@ pub const ZigCompiler = struct {
4747
4848 var lazy_init_targets = std.lazyInit(void);
4949
50 fn init(loop: *event.Loop) !ZigCompiler {
50 pub fn init(loop: *event.Loop) !ZigCompiler {
5151 lazy_init_targets.get() orelse {
5252 Target.initializeAll();
5353 lazy_init_targets.resolve();
src/all_types.hpp+1-2
......@@ -369,8 +369,6 @@ struct Tld {
369369
370370 ZigType *import;
371371 Scope *parent_scope;
372 // set this flag temporarily to detect infinite loops
373 bool dep_loop_flag;
374372 TldResolution resolution;
375373};
376374
......@@ -380,6 +378,7 @@ struct TldVar {
380378 ZigVar *var;
381379 Buf *extern_lib_name;
382380 Buf *section_name;
381 bool analyzing_type; // flag to detect dependency loops
383382};
384383
385384struct TldFn {
src/analyze.cpp+61-26
......@@ -1900,7 +1900,9 @@ static Error resolve_enum_type(CodeGen *g, ZigType *enum_type) {
19001900 if (!enum_type->data.enumeration.reported_infinite_err) {
19011901 enum_type->data.enumeration.is_invalid = true;
19021902 enum_type->data.enumeration.reported_infinite_err = true;
1903 add_node_error(g, decl_node, buf_sprintf("enum '%s' contains itself", buf_ptr(&enum_type->name)));
1903 ErrorMsg *msg = add_node_error(g, decl_node,
1904 buf_sprintf("enum '%s' contains itself", buf_ptr(&enum_type->name)));
1905 emit_error_notes_for_ref_stack(g, msg);
19041906 }
19051907 return ErrorSemanticAnalyzeFail;
19061908 }
......@@ -2071,8 +2073,9 @@ static Error resolve_struct_type(CodeGen *g, ZigType *struct_type) {
20712073 if (struct_type->data.structure.resolve_loop_flag) {
20722074 if (struct_type->data.structure.resolve_status != ResolveStatusInvalid) {
20732075 struct_type->data.structure.resolve_status = ResolveStatusInvalid;
2074 add_node_error(g, decl_node,
2076 ErrorMsg *msg = add_node_error(g, decl_node,
20752077 buf_sprintf("struct '%s' contains itself", buf_ptr(&struct_type->name)));
2078 emit_error_notes_for_ref_stack(g, msg);
20762079 }
20772080 return ErrorSemanticAnalyzeFail;
20782081 }
......@@ -2296,7 +2299,9 @@ static Error resolve_union_type(CodeGen *g, ZigType *union_type) {
22962299 if (!union_type->data.unionation.reported_infinite_err) {
22972300 union_type->data.unionation.reported_infinite_err = true;
22982301 union_type->data.unionation.is_invalid = true;
2299 add_node_error(g, decl_node, buf_sprintf("union '%s' contains itself", buf_ptr(&union_type->name)));
2302 ErrorMsg *msg = add_node_error(g, decl_node,
2303 buf_sprintf("union '%s' contains itself", buf_ptr(&union_type->name)));
2304 emit_error_notes_for_ref_stack(g, msg);
23002305 }
23012306 return ErrorSemanticAnalyzeFail;
23022307 }
......@@ -2527,8 +2532,9 @@ static Error resolve_enum_zero_bits(CodeGen *g, ZigType *enum_type) {
25272532 return ErrorNone;
25282533
25292534 if (enum_type->data.enumeration.zero_bits_loop_flag) {
2530 add_node_error(g, enum_type->data.enumeration.decl_node,
2535 ErrorMsg *msg = add_node_error(g, enum_type->data.enumeration.decl_node,
25312536 buf_sprintf("'%s' depends on itself", buf_ptr(&enum_type->name)));
2537 emit_error_notes_for_ref_stack(g, msg);
25322538 enum_type->data.enumeration.is_invalid = true;
25332539 return ErrorSemanticAnalyzeFail;
25342540 }
......@@ -2800,8 +2806,9 @@ static Error resolve_struct_alignment(CodeGen *g, ZigType *struct_type) {
28002806 if (struct_type->data.structure.resolve_loop_flag) {
28012807 if (struct_type->data.structure.resolve_status != ResolveStatusInvalid) {
28022808 struct_type->data.structure.resolve_status = ResolveStatusInvalid;
2803 add_node_error(g, decl_node,
2809 ErrorMsg *msg = add_node_error(g, decl_node,
28042810 buf_sprintf("struct '%s' contains itself", buf_ptr(&struct_type->name)));
2811 emit_error_notes_for_ref_stack(g, msg);
28052812 }
28062813 return ErrorSemanticAnalyzeFail;
28072814 }
......@@ -3239,7 +3246,7 @@ static void get_fully_qualified_decl_name(Buf *buf, Tld *tld) {
32393246 }
32403247 ScopeDecls *decls_scope = reinterpret_cast<ScopeDecls *>(scope);
32413248 buf_append_buf(buf, &decls_scope->container_type->name);
3242 buf_append_char(buf, NAMESPACE_SEP_CHAR);
3249 if (buf_len(buf) != 0) buf_append_char(buf, NAMESPACE_SEP_CHAR);
32433250 buf_append_buf(buf, tld->name);
32443251}
32453252
......@@ -3775,8 +3782,16 @@ static void resolve_decl_var(CodeGen *g, TldVar *tld_var) {
37753782
37763783 ZigType *explicit_type = nullptr;
37773784 if (var_decl->type) {
3778 ZigType *proposed_type = analyze_type_expr(g, tld_var->base.parent_scope, var_decl->type);
3779 explicit_type = validate_var_type(g, var_decl->type, proposed_type);
3785 if (tld_var->analyzing_type) {
3786 ErrorMsg *msg = add_node_error(g, var_decl->type,
3787 buf_sprintf("type of '%s' depends on itself", buf_ptr(tld_var->base.name)));
3788 emit_error_notes_for_ref_stack(g, msg);
3789 explicit_type = g->builtin_types.entry_invalid;
3790 } else {
3791 tld_var->analyzing_type = true;
3792 ZigType *proposed_type = analyze_type_expr(g, tld_var->base.parent_scope, var_decl->type);
3793 explicit_type = validate_var_type(g, var_decl->type, proposed_type);
3794 }
37803795 }
37813796
37823797 assert(!is_export || !is_extern);
......@@ -3863,7 +3878,8 @@ void resolve_top_level_decl(CodeGen *g, Tld *tld, AstNode *source_node) {
38633878 if (tld->resolution != TldResolutionUnresolved)
38643879 return;
38653880
3866 tld->dep_loop_flag = true;
3881 assert(tld->resolution != TldResolutionResolving);
3882 tld->resolution = TldResolutionResolving;
38673883 g->tld_ref_source_node_stack.append(source_node);
38683884
38693885 switch (tld->id) {
......@@ -3894,27 +3910,31 @@ void resolve_top_level_decl(CodeGen *g, Tld *tld, AstNode *source_node) {
38943910 }
38953911
38963912 tld->resolution = TldResolutionOk;
3897 tld->dep_loop_flag = false;
38983913 g->tld_ref_source_node_stack.pop();
38993914}
39003915
3916Tld *find_container_decl(CodeGen *g, ScopeDecls *decls_scope, Buf *name) {
3917 // resolve all the use decls
3918 for (size_t i = 0; i < decls_scope->use_decls.length; i += 1) {
3919 AstNode *use_decl_node = decls_scope->use_decls.at(i);
3920 if (use_decl_node->data.use.resolution == TldResolutionUnresolved) {
3921 preview_use_decl(g, use_decl_node);
3922 resolve_use_decl(g, use_decl_node);
3923 }
3924 }
3925
3926 auto entry = decls_scope->decl_table.maybe_get(name);
3927 return (entry == nullptr) ? nullptr : entry->value;
3928}
3929
39013930Tld *find_decl(CodeGen *g, Scope *scope, Buf *name) {
39023931 while (scope) {
39033932 if (scope->id == ScopeIdDecls) {
39043933 ScopeDecls *decls_scope = (ScopeDecls *)scope;
39053934
3906 // resolve all the use decls
3907 for (size_t i = 0; i < decls_scope->use_decls.length; i += 1) {
3908 AstNode *use_decl_node = decls_scope->use_decls.at(i);
3909 if (use_decl_node->data.use.resolution == TldResolutionUnresolved) {
3910 preview_use_decl(g, use_decl_node);
3911 resolve_use_decl(g, use_decl_node);
3912 }
3913 }
3914
3915 auto entry = decls_scope->decl_table.maybe_get(name);
3916 if (entry)
3917 return entry->value;
3935 Tld *result = find_container_decl(g, decls_scope, name);
3936 if (result != nullptr)
3937 return result;
39183938 }
39193939 scope = scope->parent;
39203940 }
......@@ -4475,10 +4495,12 @@ ZigType *add_source_file(CodeGen *g, ZigPackage *package, Buf *resolved_path, Bu
44754495 Buf resolved_root_src_dir = os_path_resolve(&pkg_root_src_dir, 1);
44764496 Buf namespace_name = BUF_INIT;
44774497 buf_init_from_buf(&namespace_name, &package->pkg_path);
4478 if (buf_len(&namespace_name) != 0) buf_append_char(&namespace_name, NAMESPACE_SEP_CHAR);
4479 buf_append_mem(&namespace_name, buf_ptr(&noextname) + buf_len(&resolved_root_src_dir) + 1,
4480 buf_len(&noextname) - (buf_len(&resolved_root_src_dir) + 1));
4481 buf_replace(&namespace_name, ZIG_OS_SEP_CHAR, NAMESPACE_SEP_CHAR);
4498 if (source_kind == SourceKindNonRoot) {
4499 if (buf_len(&namespace_name) != 0) buf_append_char(&namespace_name, NAMESPACE_SEP_CHAR);
4500 buf_append_mem(&namespace_name, buf_ptr(&noextname) + buf_len(&resolved_root_src_dir) + 1,
4501 buf_len(&noextname) - (buf_len(&resolved_root_src_dir) + 1));
4502 buf_replace(&namespace_name, ZIG_OS_SEP_CHAR, NAMESPACE_SEP_CHAR);
4503 }
44824504
44834505 RootStruct *root_struct = allocate<RootStruct>(1);
44844506 root_struct->package = package;
......@@ -6806,3 +6828,16 @@ bool ptr_allows_addr_zero(ZigType *ptr_type) {
68066828 }
68076829 return false;
68086830}
6831
6832void emit_error_notes_for_ref_stack(CodeGen *g, ErrorMsg *msg) {
6833 size_t i = g->tld_ref_source_node_stack.length;
6834 for (;;) {
6835 if (i == 0)
6836 break;
6837 i -= 1;
6838 AstNode *source_node = g->tld_ref_source_node_stack.at(i);
6839 if (source_node) {
6840 msg = add_error_note(g, msg, source_node, buf_sprintf("referenced here"));
6841 }
6842 }
6843}
src/analyze.hpp+3
......@@ -14,6 +14,7 @@ void semantic_analyze(CodeGen *g);
1414ErrorMsg *add_node_error(CodeGen *g, AstNode *node, Buf *msg);
1515ErrorMsg *add_token_error(CodeGen *g, ZigType *owner, Token *token, Buf *msg);
1616ErrorMsg *add_error_note(CodeGen *g, ErrorMsg *parent_msg, AstNode *node, Buf *msg);
17void emit_error_notes_for_ref_stack(CodeGen *g, ErrorMsg *msg);
1718ZigType *new_type_table_entry(ZigTypeId id);
1819ZigType *get_pointer_to_type(CodeGen *g, ZigType *child_type, bool is_const);
1920ZigType *get_pointer_to_type_extra(CodeGen *g, ZigType *child_type, bool is_const,
......@@ -49,6 +50,7 @@ bool type_is_nonnull_ptr(ZigType *type);
4950
5051enum SourceKind {
5152 SourceKindRoot,
53 SourceKindPkgMain,
5254 SourceKindNonRoot,
5355};
5456ZigType *add_source_file(CodeGen *g, ZigPackage *package, Buf *abs_full_path, Buf *source_code,
......@@ -56,6 +58,7 @@ ZigType *add_source_file(CodeGen *g, ZigPackage *package, Buf *abs_full_path, Bu
5658
5759ZigVar *find_variable(CodeGen *g, Scope *orig_context, Buf *name, ScopeFnDef **crossed_fndef_scope);
5860Tld *find_decl(CodeGen *g, Scope *scope, Buf *name);
61Tld *find_container_decl(CodeGen *g, ScopeDecls *decls_scope, Buf *name);
5962void resolve_top_level_decl(CodeGen *g, Tld *tld, AstNode *source_node);
6063bool type_is_codegen_pointer(ZigType *type);
6164
src/codegen.cpp+2-2
......@@ -7748,7 +7748,7 @@ static Error define_builtin_compile_vars(CodeGen *g) {
77487748 g->std_package->package_table.put(buf_create_from_str("builtin"), g->compile_var_package);
77497749 g->std_package->package_table.put(buf_create_from_str("std"), g->std_package);
77507750 g->compile_var_import = add_source_file(g, g->compile_var_package, builtin_zig_path, contents,
7751 SourceKindNonRoot);
7751 SourceKindPkgMain);
77527752
77537753 return ErrorNone;
77547754}
......@@ -7987,7 +7987,7 @@ static ZigType *add_special_code(CodeGen *g, ZigPackage *package, const char *ba
79877987 zig_panic("unable to open '%s': %s\n", buf_ptr(&path_to_code_src), err_str(err));
79887988 }
79897989
7990 return add_source_file(g, package, resolved_path, import_code, SourceKindNonRoot);
7990 return add_source_file(g, package, resolved_path, import_code, SourceKindPkgMain);
79917991}
79927992
79937993static ZigPackage *create_bootstrap_pkg(CodeGen *g, ZigPackage *pkg_with_main) {
src/ir.cpp+57-29
......@@ -15753,12 +15753,17 @@ static IrInstruction *ir_analyze_instruction_field_ptr(IrAnalyze *ira, IrInstruc
1575315753 }
1575415754 }
1575515755 ScopeDecls *container_scope = get_container_scope(child_type);
15756 if (container_scope != nullptr) {
15757 auto entry = container_scope->decl_table.maybe_get(field_name);
15758 Tld *tld = entry ? entry->value : nullptr;
15759 if (tld) {
15760 return ir_analyze_decl_ref(ira, &field_ptr_instruction->base, tld);
15756 Tld *tld = find_container_decl(ira->codegen, container_scope, field_name);
15757 if (tld) {
15758 if (tld->visib_mod == VisibModPrivate &&
15759 tld->import != get_scope_import(field_ptr_instruction->base.scope))
15760 {
15761 ErrorMsg *msg = ir_add_error(ira, &field_ptr_instruction->base,
15762 buf_sprintf("'%s' is private", buf_ptr(field_name)));
15763 add_error_note(ira->codegen, msg, tld->source_node, buf_sprintf("declared here"));
15764 return ira->codegen->invalid_instruction;
1576115765 }
15766 return ir_analyze_decl_ref(ira, &field_ptr_instruction->base, tld);
1576215767 }
1576315768 if (child_type->id == ZigTypeIdUnion &&
1576415769 (child_type->data.unionation.decl_node->data.container_decl.init_arg_expr != nullptr ||
......@@ -15776,9 +15781,11 @@ static IrInstruction *ir_analyze_instruction_field_ptr(IrAnalyze *ira, IrInstruc
1577615781 ConstPtrMutComptimeConst, ptr_is_const, ptr_is_volatile, 0);
1577715782 }
1577815783 }
15784 const char *container_name = (child_type == ira->codegen->root_import) ?
15785 "root source file" : buf_ptr(buf_sprintf("container '%s'", buf_ptr(&child_type->name)));
1577915786 ir_add_error(ira, &field_ptr_instruction->base,
15780 buf_sprintf("container '%s' has no member called '%s'",
15781 buf_ptr(&child_type->name), buf_ptr(field_name)));
15787 buf_sprintf("%s has no member called '%s'",
15788 container_name, buf_ptr(field_name)));
1578215789 return ira->codegen->invalid_instruction;
1578315790 } else if (child_type->id == ZigTypeIdErrorSet) {
1578415791 ErrorTableEntry *err_entry;
......@@ -16999,10 +17006,12 @@ static IrInstruction *ir_analyze_instruction_import(IrAnalyze *ira, IrInstructio
1699917006 assert(import->data.structure.root_struct->package);
1700017007 ZigPackage *target_package;
1700117008 auto package_entry = import->data.structure.root_struct->package->package_table.maybe_get(import_target_str);
17009 SourceKind source_kind;
1700217010 if (package_entry) {
1700317011 target_package = package_entry->value;
1700417012 import_target_path = &target_package->root_src_path;
1700517013 search_dir = &target_package->root_src_dir;
17014 source_kind = SourceKindPkgMain;
1700617015 } else {
1700717016 // try it as a filename
1700817017 target_package = import->data.structure.root_struct->package;
......@@ -17011,6 +17020,8 @@ static IrInstruction *ir_analyze_instruction_import(IrAnalyze *ira, IrInstructio
1701117020 // search relative to importing file
1701217021 search_dir = buf_alloc();
1701317022 os_path_dirname(import->data.structure.root_struct->path, search_dir);
17023
17024 source_kind = SourceKindNonRoot;
1701417025 }
1701517026
1701617027 Buf full_path = BUF_INIT;
......@@ -17039,8 +17050,7 @@ static IrInstruction *ir_analyze_instruction_import(IrAnalyze *ira, IrInstructio
1703917050 }
1704017051 }
1704117052
17042 ZigType *target_import = add_source_file(ira->codegen, target_package, resolved_path, import_code,
17043 SourceKindNonRoot);
17053 ZigType *target_import = add_source_file(ira->codegen, target_package, resolved_path, import_code, source_kind);
1704417054
1704517055 return ir_const_type(ira, &import_instruction->base, target_import);
1704617056}
......@@ -17375,17 +17385,7 @@ static IrInstruction *ir_analyze_instruction_compile_err(IrAnalyze *ira,
1737517385 return ira->codegen->invalid_instruction;
1737617386
1737717387 ErrorMsg *msg = ir_add_error(ira, &instruction->base, msg_buf);
17378 size_t i = ira->codegen->tld_ref_source_node_stack.length;
17379 for (;;) {
17380 if (i == 0)
17381 break;
17382 i -= 1;
17383 AstNode *source_node = ira->codegen->tld_ref_source_node_stack.at(i);
17384 if (source_node) {
17385 add_error_note(ira->codegen, msg, source_node,
17386 buf_sprintf("referenced here"));
17387 }
17388 }
17388 emit_error_notes_for_ref_stack(ira->codegen, msg);
1738917389
1739017390 return ira->codegen->invalid_instruction;
1739117391}
......@@ -17642,6 +17642,12 @@ static IrInstruction *ir_analyze_instruction_bit_offset_of(IrAnalyze *ira,
1764217642 return ir_const_unsigned(ira, &instruction->base, bit_offset);
1764317643}
1764417644
17645static IrInstruction *ir_error_dependency_loop(IrAnalyze *ira, IrInstruction *source_instr) {
17646 ErrorMsg *msg = ir_add_error(ira, source_instr, buf_sprintf("dependency loop detected"));
17647 emit_error_notes_for_ref_stack(ira->codegen, msg);
17648 return ira->codegen->invalid_instruction;
17649}
17650
1764517651static void ensure_field_index(ZigType *type, const char *field_name, size_t index) {
1764617652 Buf *field_name_buf;
1764717653
......@@ -17688,7 +17694,9 @@ static ZigType *ir_type_info_get_type(IrAnalyze *ira, const char *type_name, Zig
1768817694 return var->const_value->data.x_type;
1768917695}
1769017696
17691static Error ir_make_type_info_defs(IrAnalyze *ira, ConstExprValue *out_val, ScopeDecls *decls_scope) {
17697static Error ir_make_type_info_defs(IrAnalyze *ira, IrInstruction *source_instr, ConstExprValue *out_val,
17698 ScopeDecls *decls_scope)
17699{
1769217700 Error err;
1769317701 ZigType *type_info_definition_type = ir_type_info_get_type(ira, "Definition", nullptr);
1769417702 if ((err = ensure_complete_type(ira->codegen, type_info_definition_type)))
......@@ -17808,6 +17816,11 @@ static Error ir_make_type_info_defs(IrAnalyze *ira, ConstExprValue *out_val, Sco
1780817816 ZigFn *fn_entry = ((TldFn *)curr_entry->value)->fn_entry;
1780917817 assert(!fn_entry->is_test);
1781017818
17819 if (fn_entry->type_entry == nullptr) {
17820 ir_error_dependency_loop(ira, source_instr);
17821 return ErrorSemanticAnalyzeFail;
17822 }
17823
1781117824 AstNodeFnProto *fn_node = (AstNodeFnProto *)(fn_entry->proto_node);
1781217825
1781317826 ConstExprValue *fn_def_val = create_const_vals(1);
......@@ -18013,7 +18026,9 @@ static void make_enum_field_val(IrAnalyze *ira, ConstExprValue *enum_field_val,
1801318026 enum_field_val->data.x_struct.fields = inner_fields;
1801418027}
1801518028
18016static Error ir_make_type_info_value(IrAnalyze *ira, AstNode *source_node, ZigType *type_entry, ConstExprValue **out) {
18029static Error ir_make_type_info_value(IrAnalyze *ira, IrInstruction *source_instr, ZigType *type_entry,
18030 ConstExprValue **out)
18031{
1801718032 Error err;
1801818033 assert(type_entry != nullptr);
1801918034 assert(!type_is_invalid(type_entry));
......@@ -18224,8 +18239,11 @@ static Error ir_make_type_info_value(IrAnalyze *ira, AstNode *source_node, ZigTy
1822418239 }
1822518240 // defs: []TypeInfo.Definition
1822618241 ensure_field_index(result->type, "defs", 3);
18227 if ((err = ir_make_type_info_defs(ira, &fields[3], type_entry->data.enumeration.decls_scope)))
18242 if ((err = ir_make_type_info_defs(ira, source_instr, &fields[3],
18243 type_entry->data.enumeration.decls_scope)))
18244 {
1822818245 return err;
18246 }
1822918247
1823018248 break;
1823118249 }
......@@ -18242,11 +18260,11 @@ static Error ir_make_type_info_value(IrAnalyze *ira, AstNode *source_node, ZigTy
1824218260 ensure_field_index(result->type, "errors", 0);
1824318261
1824418262 ZigType *type_info_error_type = ir_type_info_get_type(ira, "Error", nullptr);
18245 if (!resolve_inferred_error_set(ira->codegen, type_entry, source_node)) {
18263 if (!resolve_inferred_error_set(ira->codegen, type_entry, source_instr->source_node)) {
1824618264 return ErrorSemanticAnalyzeFail;
1824718265 }
1824818266 if (type_is_global_error_set(type_entry)) {
18249 ir_add_error_node(ira, source_node,
18267 ir_add_error(ira, source_instr,
1825018268 buf_sprintf("TODO: compiler bug: implement @typeInfo support for anyerror. https://github.com/ziglang/zig/issues/1936"));
1825118269 return ErrorSemanticAnalyzeFail;
1825218270 }
......@@ -18388,8 +18406,11 @@ static Error ir_make_type_info_value(IrAnalyze *ira, AstNode *source_node, ZigTy
1838818406 }
1838918407 // defs: []TypeInfo.Definition
1839018408 ensure_field_index(result->type, "defs", 3);
18391 if ((err = ir_make_type_info_defs(ira, &fields[3], type_entry->data.unionation.decls_scope)))
18409 if ((err = ir_make_type_info_defs(ira, source_instr, &fields[3],
18410 type_entry->data.unionation.decls_scope)))
18411 {
1839218412 return err;
18413 }
1839318414
1839418415 break;
1839518416 }
......@@ -18463,8 +18484,11 @@ static Error ir_make_type_info_value(IrAnalyze *ira, AstNode *source_node, ZigTy
1846318484 }
1846418485 // defs: []TypeInfo.Definition
1846518486 ensure_field_index(result->type, "defs", 2);
18466 if ((err = ir_make_type_info_defs(ira, &fields[2], type_entry->data.structure.decls_scope)))
18487 if ((err = ir_make_type_info_defs(ira, source_instr, &fields[2],
18488 type_entry->data.structure.decls_scope)))
18489 {
1846718490 return err;
18491 }
1846818492
1846918493 break;
1847018494 }
......@@ -18576,7 +18600,7 @@ static Error ir_make_type_info_value(IrAnalyze *ira, AstNode *source_node, ZigTy
1857618600 {
1857718601 ZigType *fn_type = type_entry->data.bound_fn.fn_type;
1857818602 assert(fn_type->id == ZigTypeIdFn);
18579 if ((err = ir_make_type_info_value(ira, source_node, fn_type, &result)))
18603 if ((err = ir_make_type_info_value(ira, source_instr, fn_type, &result)))
1858018604 return err;
1858118605
1858218606 break;
......@@ -18601,7 +18625,7 @@ static IrInstruction *ir_analyze_instruction_type_info(IrAnalyze *ira,
1860118625 ZigType *result_type = ir_type_info_get_type(ira, nullptr, nullptr);
1860218626
1860318627 ConstExprValue *payload;
18604 if ((err = ir_make_type_info_value(ira, instruction->base.source_node, type_entry, &payload)))
18628 if ((err = ir_make_type_info_value(ira, &instruction->base, type_entry, &payload)))
1860518629 return ira->codegen->invalid_instruction;
1860618630
1860718631 IrInstruction *result = ir_const(ira, &instruction->base, result_type);
......@@ -21504,6 +21528,10 @@ static IrInstruction *ir_analyze_instruction_decl_ref(IrAnalyze *ira,
2150421528 TldVar *tld_var = (TldVar *)tld;
2150521529 ZigVar *var = tld_var->var;
2150621530
21531 if (var == nullptr) {
21532 return ir_error_dependency_loop(ira, &instruction->base);
21533 }
21534
2150721535 IrInstruction *var_ptr = ir_get_var_ptr(ira, &instruction->base, var);
2150821536 if (type_is_invalid(var_ptr->value.type))
2150921537 return ira->codegen->invalid_instruction;
std/crypto/blake2.zig+2-2
......@@ -34,8 +34,8 @@ pub const Blake2s256 = Blake2s(256);
3434fn Blake2s(comptime out_len: usize) type {
3535 return struct {
3636 const Self = @This();
37 const block_length = 64;
38 const digest_length = out_len / 8;
37 pub const block_length = 64;
38 pub const digest_length = out_len / 8;
3939
4040 const iv = [8]u32{
4141 0x6A09E667,
std/crypto/md5.zig+2-2
......@@ -29,8 +29,8 @@ fn Rp(a: usize, b: usize, c: usize, d: usize, k: usize, s: u32, t: u32) RoundPar
2929
3030pub const Md5 = struct {
3131 const Self = @This();
32 const block_length = 64;
33 const digest_length = 16;
32 pub const block_length = 64;
33 pub const digest_length = 16;
3434
3535 s: [4]u32,
3636 // Streaming Cache
std/crypto/sha1.zig+2-2
......@@ -26,8 +26,8 @@ fn Rp(a: usize, b: usize, c: usize, d: usize, e: usize, i: u32) RoundParam {
2626
2727pub const Sha1 = struct {
2828 const Self = @This();
29 const block_length = 64;
30 const digest_length = 20;
29 pub const block_length = 64;
30 pub const digest_length = 20;
3131
3232 s: [5]u32,
3333 // Streaming Cache
std/crypto/sha2.zig+2-2
......@@ -78,8 +78,8 @@ pub const Sha256 = Sha2_32(Sha256Params);
7878fn Sha2_32(comptime params: Sha2Params32) type {
7979 return struct {
8080 const Self = @This();
81 const block_length = 64;
82 const digest_length = params.out_len / 8;
81 pub const block_length = 64;
82 pub const digest_length = params.out_len / 8;
8383
8484 s: [8]u32,
8585 // Streaming Cache
std/crypto/sha3.zig+2-2
......@@ -13,8 +13,8 @@ pub const Sha3_512 = Keccak(512, 0x06);
1313fn Keccak(comptime bits: usize, comptime delim: u8) type {
1414 return struct {
1515 const Self = @This();
16 const block_length = 200;
17 const digest_length = bits / 8;
16 pub const block_length = 200;
17 pub const digest_length = bits / 8;
1818
1919 s: [200]u8,
2020 offset: usize,
std/pdb.zig+1-3
......@@ -12,7 +12,6 @@ const ArrayList = std.ArrayList;
1212// Note: most of this is based on information gathered from LLVM source code,
1313// documentation and/or contributors.
1414
15
1615// https://llvm.org/docs/PDB/DbiStream.html#stream-header
1716pub const DbiStreamHeader = packed struct {
1817 VersionSignature: i32,
......@@ -393,10 +392,9 @@ pub const LineNumberEntry = packed struct {
393392 Flags: u32,
394393
395394 /// TODO runtime crash when I make the actual type of Flags this
396 const Flags = packed struct {
395 pub const Flags = packed struct {
397396 /// Start line number
398397 Start: u24,
399
400398 /// Delta of lines to the end of the expression. Still unclear.
401399 // TODO figure out the point of this field.
402400 End: u7,
std/zig/ast.zig+6-6
......@@ -617,7 +617,7 @@ pub const Node = struct {
617617
618618 pub const DeclList = Root.DeclList;
619619
620 const InitArg = union(enum) {
620 pub const InitArg = union(enum) {
621621 None,
622622 Enum: ?*Node,
623623 Type: *Node,
......@@ -1744,7 +1744,7 @@ pub const Node = struct {
17441744 kind: Kind,
17451745 rhs: ?*Node,
17461746
1747 const Kind = union(enum) {
1747 pub const Kind = union(enum) {
17481748 Break: ?*Node,
17491749 Continue: ?*Node,
17501750 Return,
......@@ -2022,7 +2022,7 @@ pub const Node = struct {
20222022 kind: Kind,
20232023 rparen: TokenIndex,
20242024
2025 const Kind = union(enum) {
2025 pub const Kind = union(enum) {
20262026 Variable: *Identifier,
20272027 Return: *Node,
20282028 };
......@@ -2101,9 +2101,9 @@ pub const Node = struct {
21012101 clobbers: ClobberList,
21022102 rparen: TokenIndex,
21032103
2104 const OutputList = SegmentedList(*AsmOutput, 2);
2105 const InputList = SegmentedList(*AsmInput, 2);
2106 const ClobberList = SegmentedList(TokenIndex, 2);
2104 pub const OutputList = SegmentedList(*AsmOutput, 2);
2105 pub const InputList = SegmentedList(*AsmInput, 2);
2106 pub const ClobberList = SegmentedList(TokenIndex, 2);
21072107
21082108 pub fn iterate(self: *Asm, index: usize) ?*Node {
21092109 var i = index;
test/compile_errors.zig+652-650
......@@ -2,6 +2,68 @@ const tests = @import("tests.zig");
22const builtin = @import("builtin");
33
44pub fn addCases(cases: *tests.CompileErrorContext) void {
5 cases.add(
6 "bogus compile var",
7 \\const x = @import("builtin").bogus;
8 \\export fn entry() usize { return @sizeOf(@typeOf(x)); }
9 ,
10 "tmp.zig:1:29: error: container 'builtin' has no member called 'bogus'",
11 );
12
13 cases.add(
14 "wrong panic signature, runtime function",
15 \\test "" {}
16 \\
17 \\pub fn panic() void {}
18 \\
19 ,
20 "tmp.zig:3:5: error: expected type 'fn([]const u8, ?*builtin.StackTrace) noreturn', found 'fn() void'",
21 );
22
23 cases.add(
24 "wrong panic signature, generic function",
25 \\pub fn panic(comptime msg: []const u8, error_return_trace: ?*builtin.StackTrace) noreturn {
26 \\ while (true) {}
27 \\}
28 ,
29 "tmp.zig:1:5: error: expected type 'fn([]const u8, ?*builtin.StackTrace) noreturn', found 'fn([]const u8,var)var'",
30 "tmp.zig:1:5: note: only one of the functions is generic",
31 );
32
33 cases.add(
34 "direct struct loop",
35 \\const A = struct { a : A, };
36 \\export fn entry() usize { return @sizeOf(A); }
37 ,
38 "tmp.zig:1:11: error: struct 'A' contains itself",
39 );
40
41 cases.add(
42 "indirect struct loop",
43 \\const A = struct { b : B, };
44 \\const B = struct { c : C, };
45 \\const C = struct { a : A, };
46 \\export fn entry() usize { return @sizeOf(A); }
47 ,
48 "tmp.zig:1:11: error: struct 'A' contains itself",
49 );
50
51 cases.add(
52 "instantiating an undefined value for an invalid struct that contains itself",
53 \\const Foo = struct {
54 \\ x: Foo,
55 \\};
56 \\
57 \\var foo: Foo = undefined;
58 \\
59 \\export fn entry() usize {
60 \\ return @sizeOf(@typeOf(foo.x));
61 \\}
62 ,
63 "tmp.zig:1:13: error: struct 'Foo' contains itself",
64 "tmp.zig:8:28: note: referenced here",
65 );
66
567 cases.add(
668 "@typeInfo causing depend on itself compile error",
769 \\const start = struct {
......@@ -16,7 +78,9 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
1678 \\ var boom = start.crash();
1779 \\}
1880 ,
19 ".tmp_source.zig:2:5: error: 'crash' depends on itself",
81 "tmp.zig:7:9: error: dependency loop detected",
82 "tmp.zig:2:19: note: called from here",
83 "tmp.zig:10:21: note: referenced here",
2084 );
2185
2286 cases.add(
......@@ -29,7 +93,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
2993 \\ var s: Foo = Foo.E;
3094 \\}
3195 ,
32 ".tmp_source.zig:1:17: error: 'Foo' depends on itself",
96 "tmp.zig:1:17: error: 'Foo' depends on itself",
3397 );
3498
3599 cases.add(
......@@ -40,7 +104,9 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
40104 \\ const c = a + b;
41105 \\}
42106 ,
43 ".tmp_source.zig:1:1: error: 'a' depends on itself",
107 "tmp.zig:2:19: error: dependency loop detected",
108 "tmp.zig:1:19: note: referenced here",
109 "tmp.zig:4:15: note: referenced here",
44110 );
45111
46112 cases.addTest(
......@@ -59,7 +125,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
59125 \\const InvalidToken = struct {};
60126 \\const ExpectedVarDeclOrFn = struct {};
61127 ,
62 ".tmp_source.zig:4:9: error: not an enum type",
128 "tmp.zig:4:9: error: not an enum type",
63129 );
64130
65131 cases.addTest(
......@@ -70,7 +136,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
70136 \\ var x: AB = undefined;
71137 \\}
72138 ,
73 ".tmp_source.zig:2:18: error: invalid operands to binary expression: 'error{A}' and 'error{B}'",
139 "tmp.zig:2:18: error: invalid operands to binary expression: 'error{A}' and 'error{B}'",
74140 );
75141
76142 if (builtin.os == builtin.Os.linux) {
......@@ -81,7 +147,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
81147 \\ exit(0);
82148 \\}
83149 ,
84 ".tmp_source.zig:3:5: error: dependency on library c must be explicitly specified in the build command",
150 "tmp.zig:3:5: error: dependency on library c must be explicitly specified in the build command",
85151 );
86152
87153 cases.addTest(
......@@ -91,8 +157,8 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
91157 \\ _ = c.printf(c"hello, world!\n");
92158 \\}
93159 ,
94 ".tmp_source.zig:1:11: error: C import failed",
95 ".tmp_source.zig:1:11: note: libc headers not available; compilation does not link against libc",
160 "tmp.zig:1:11: error: C import failed",
161 "tmp.zig:1:11: note: libc headers not available; compilation does not link against libc",
96162 );
97163 }
98164
......@@ -104,8 +170,8 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
104170 \\ var x = a + b;
105171 \\}
106172 ,
107 ".tmp_source.zig:4:15: error: operation caused overflow",
108 ".tmp_source.zig:4:15: note: when computing vector element at index 2",
173 "tmp.zig:4:15: error: operation caused overflow",
174 "tmp.zig:4:15: note: when computing vector element at index 2",
109175 );
110176
111177 cases.addTest(
......@@ -152,14 +218,14 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
152218 \\ B,
153219 \\};
154220 ,
155 ".tmp_source.zig:2:5: error: type 'anyerror' not allowed in packed struct; no guaranteed in-memory representation",
156 ".tmp_source.zig:5:5: error: array of 'u24' not allowed in packed struct due to padding bits",
157 ".tmp_source.zig:8:5: error: type 'anyerror' not allowed in packed struct; no guaranteed in-memory representation",
158 ".tmp_source.zig:11:5: error: non-packed, non-extern struct 'S' not allowed in packed struct; no guaranteed in-memory representation",
159 ".tmp_source.zig:14:5: error: non-packed, non-extern struct 'U' not allowed in packed struct; no guaranteed in-memory representation",
160 ".tmp_source.zig:17:5: error: type '?anyerror' not allowed in packed struct; no guaranteed in-memory representation",
161 ".tmp_source.zig:20:5: error: type 'Enum' not allowed in packed struct; no guaranteed in-memory representation",
162 ".tmp_source.zig:38:14: note: enum declaration does not specify an integer tag type",
221 "tmp.zig:2:5: error: type 'anyerror' not allowed in packed struct; no guaranteed in-memory representation",
222 "tmp.zig:5:5: error: array of 'u24' not allowed in packed struct due to padding bits",
223 "tmp.zig:8:5: error: type 'anyerror' not allowed in packed struct; no guaranteed in-memory representation",
224 "tmp.zig:11:5: error: non-packed, non-extern struct 'S' not allowed in packed struct; no guaranteed in-memory representation",
225 "tmp.zig:14:5: error: non-packed, non-extern struct 'U' not allowed in packed struct; no guaranteed in-memory representation",
226 "tmp.zig:17:5: error: type '?anyerror' not allowed in packed struct; no guaranteed in-memory representation",
227 "tmp.zig:20:5: error: type 'Enum' not allowed in packed struct; no guaranteed in-memory representation",
228 "tmp.zig:38:14: note: enum declaration does not specify an integer tag type",
163229 );
164230
165231 cases.addCase(x: {
......@@ -172,7 +238,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
172238 \\ x += 1;
173239 \\}
174240 ,
175 ".tmp_source.zig:2:5: error: use of undeclared identifier 'x'",
241 "tmp.zig:2:5: error: use of undeclared identifier 'x'",
176242 );
177243 tc.expect_exact = true;
178244 break :x tc;
......@@ -184,7 +250,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
184250 \\ return 0;
185251 \\}
186252 ,
187 ".tmp_source.zig:1:15: error: parameter of type 'var' not allowed in function with calling convention 'ccc'",
253 "tmp.zig:1:15: error: parameter of type 'var' not allowed in function with calling convention 'ccc'",
188254 );
189255
190256 cases.addTest(
......@@ -194,7 +260,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
194260 \\ var y: [*c]c_void = x;
195261 \\}
196262 ,
197 ".tmp_source.zig:3:12: error: C pointers cannot point opaque types",
263 "tmp.zig:3:12: error: C pointers cannot point opaque types",
198264 );
199265
200266 cases.addTest(
......@@ -214,8 +280,8 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
214280 \\ var bar: Bar = undefined;
215281 \\}
216282 ,
217 ".tmp_source.zig:3:8: error: opaque types have unknown size and therefore cannot be directly embedded in structs",
218 ".tmp_source.zig:7:10: error: opaque types have unknown size and therefore cannot be directly embedded in unions",
283 "tmp.zig:3:8: error: opaque types have unknown size and therefore cannot be directly embedded in structs",
284 "tmp.zig:7:10: error: opaque types have unknown size and therefore cannot be directly embedded in unions",
219285 );
220286
221287 cases.addTest(
......@@ -245,13 +311,13 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
245311 \\ var x: [*c]u32 = y;
246312 \\}
247313 ,
248 ".tmp_source.zig:3:27: error: cast increases pointer alignment",
249 ".tmp_source.zig:7:18: error: cast discards const qualifier",
250 ".tmp_source.zig:11:19: error: expected type '*u32', found '[*c]u8'",
251 ".tmp_source.zig:11:19: note: pointer type child 'u8' cannot cast into pointer type child 'u32'",
252 ".tmp_source.zig:15:22: error: cast increases pointer alignment",
253 ".tmp_source.zig:19:21: error: cast discards const qualifier",
254 ".tmp_source.zig:23:22: error: expected type '[*c]u32', found '*u8'",
314 "tmp.zig:3:27: error: cast increases pointer alignment",
315 "tmp.zig:7:18: error: cast discards const qualifier",
316 "tmp.zig:11:19: error: expected type '*u32', found '[*c]u8'",
317 "tmp.zig:11:19: note: pointer type child 'u8' cannot cast into pointer type child 'u32'",
318 "tmp.zig:15:22: error: cast increases pointer alignment",
319 "tmp.zig:19:21: error: cast discards const qualifier",
320 "tmp.zig:23:22: error: expected type '[*c]u32', found '*u8'",
255321 );
256322
257323 cases.addTest(
......@@ -261,7 +327,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
261327 \\ var zig_ptr: *u8 = c_ptr;
262328 \\}
263329 ,
264 ".tmp_source.zig:3:24: error: null pointer casted to type '*u8'",
330 "tmp.zig:3:24: error: null pointer casted to type '*u8'",
265331 );
266332
267333 cases.addTest(
......@@ -271,7 +337,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
271337 \\ var zig_ptr: *u8 = c_ptr;
272338 \\}
273339 ,
274 ".tmp_source.zig:3:24: error: use of undefined value here causes undefined behavior",
340 "tmp.zig:3:24: error: use of undefined value here causes undefined behavior",
275341 );
276342
277343 cases.addTest(
......@@ -291,12 +357,12 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
291357 \\ var c_ptr: [*c][*c]const u8 = ptr_opt_many_ptr;
292358 \\}
293359 ,
294 ".tmp_source.zig:6:24: error: expected type '*const [*]const u8', found '[*c]const [*c]const u8'",
295 ".tmp_source.zig:6:24: note: pointer type child '[*c]const u8' cannot cast into pointer type child '[*]const u8'",
296 ".tmp_source.zig:6:24: note: '[*c]const u8' could have null values which are illegal in type '[*]const u8'",
297 ".tmp_source.zig:13:35: error: expected type '[*c][*c]const u8', found '*[*]u8'",
298 ".tmp_source.zig:13:35: note: pointer type child '[*]u8' cannot cast into pointer type child '[*c]const u8'",
299 ".tmp_source.zig:13:35: note: mutable '[*c]const u8' allows illegal null values stored to type '[*]u8'",
360 "tmp.zig:6:24: error: expected type '*const [*]const u8', found '[*c]const [*c]const u8'",
361 "tmp.zig:6:24: note: pointer type child '[*c]const u8' cannot cast into pointer type child '[*]const u8'",
362 "tmp.zig:6:24: note: '[*c]const u8' could have null values which are illegal in type '[*]const u8'",
363 "tmp.zig:13:35: error: expected type '[*c][*c]const u8', found '*[*]u8'",
364 "tmp.zig:13:35: note: pointer type child '[*]u8' cannot cast into pointer type child '[*c]const u8'",
365 "tmp.zig:13:35: note: mutable '[*c]const u8' allows illegal null values stored to type '[*]u8'",
300366 );
301367
302368 cases.addTest(
......@@ -309,8 +375,8 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
309375 \\ var ptr: [*c]u8 = x;
310376 \\}
311377 ,
312 ".tmp_source.zig:2:33: error: integer value 71615590737044764481 cannot be implicitly casted to type 'usize'",
313 ".tmp_source.zig:6:23: error: integer type 'u65' too big for implicit @intToPtr to type '[*c]u8'",
378 "tmp.zig:2:33: error: integer value 71615590737044764481 cannot be implicitly casted to type 'usize'",
379 "tmp.zig:6:23: error: integer type 'u65' too big for implicit @intToPtr to type '[*c]u8'",
314380 );
315381
316382 cases.addTest(
......@@ -320,7 +386,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
320386 \\ const T = [*c]Foo;
321387 \\}
322388 ,
323 ".tmp_source.zig:3:15: error: C pointers cannot point to non-C-ABI-compatible type 'Foo'",
389 "tmp.zig:3:15: error: C pointers cannot point to non-C-ABI-compatible type 'Foo'",
324390 );
325391
326392 cases.addCase(x: {
......@@ -335,7 +401,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
335401 \\ inline while (i < n) : (i += 1) { @compileLog("!@#$"); }
336402 \\}
337403 ,
338 ".tmp_source.zig:7:39: error: found compile log statement",
404 "tmp.zig:7:39: error: found compile log statement",
339405 );
340406 tc.expect_exact = true;
341407 break :x tc;
......@@ -347,7 +413,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
347413 \\ 'a'.* = 1;
348414 \\}
349415 ,
350 ".tmp_source.zig:2:8: error: attempt to dereference non-pointer type 'comptime_int'",
416 "tmp.zig:2:8: error: attempt to dereference non-pointer type 'comptime_int'",
351417 );
352418
353419 cases.addTest(
......@@ -356,7 +422,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
356422 \\ const x = 'a'.*[0..];
357423 \\}
358424 ,
359 ".tmp_source.zig:2:18: error: attempt to dereference non-pointer type 'comptime_int'",
425 "tmp.zig:2:18: error: attempt to dereference non-pointer type 'comptime_int'",
360426 );
361427
362428 cases.addTest(
......@@ -365,14 +431,14 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
365431 \\ var z = @truncate(u8, u16(undefined));
366432 \\}
367433 ,
368 ".tmp_source.zig:2:30: error: use of undefined value here causes undefined behavior",
434 "tmp.zig:2:30: error: use of undefined value here causes undefined behavior",
369435 );
370436
371437 cases.addTest(
372438 "return invalid type from test",
373439 \\test "example" { return 1; }
374440 ,
375 ".tmp_source.zig:1:25: error: integer value 1 cannot be implicitly casted to type 'void'",
441 "tmp.zig:1:25: error: integer value 1 cannot be implicitly casted to type 'void'",
376442 );
377443
378444 cases.add(
......@@ -382,7 +448,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
382448 \\ return x;
383449 \\}
384450 ,
385 ".tmp_source.zig:1:13: error: threadlocal variable cannot be constant",
451 "tmp.zig:1:13: error: threadlocal variable cannot be constant",
386452 );
387453
388454 cases.add(
......@@ -391,7 +457,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
391457 \\ threadlocal var x: i32 = 1234;
392458 \\}
393459 ,
394 ".tmp_source.zig:2:5: error: function-local variable 'x' cannot be threadlocal",
460 "tmp.zig:2:5: error: function-local variable 'x' cannot be threadlocal",
395461 );
396462
397463 cases.add(
......@@ -400,7 +466,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
400466 \\ var oops = @bitCast(u7, byte);
401467 \\}
402468 ,
403 ".tmp_source.zig:2:16: error: destination type 'u7' has 7 bits but source type 'u8' has 8 bits",
469 "tmp.zig:2:16: error: destination type 'u7' has 7 bits but source type 'u8' has 8 bits",
404470 );
405471
406472 cases.add(
......@@ -412,7 +478,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
412478 \\ return 5678;
413479 \\}
414480 ,
415 ".tmp_source.zig:2:12: error: `&&` is invalid. Note that `and` is boolean AND.",
481 "tmp.zig:2:12: error: `&&` is invalid. Note that `and` is boolean AND.",
416482 );
417483
418484 cases.add(
......@@ -424,8 +490,8 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
424490 \\ return 5678;
425491 \\}
426492 ,
427 ".tmp_source.zig:2:9: error: expected error set type, found 'bool'",
428 ".tmp_source.zig:2:11: note: `||` merges error sets; `or` performs boolean OR",
493 "tmp.zig:2:9: error: expected error set type, found 'bool'",
494 "tmp.zig:2:11: note: `||` merges error sets; `or` performs boolean OR",
429495 );
430496
431497 cases.add(
......@@ -434,7 +500,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
434500 \\ @compileLog(@ptrCast(*const c_void, &entry));
435501 \\}
436502 ,
437 ".tmp_source.zig:2:5: error: found compile log statement",
503 "tmp.zig:2:5: error: found compile log statement",
438504 );
439505
440506 cases.add(
......@@ -454,8 +520,8 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
454520 \\ };
455521 \\}
456522 ,
457 ".tmp_source.zig:5:9: error: duplicate switch value",
458 ".tmp_source.zig:12:9: error: duplicate switch value",
523 "tmp.zig:5:9: error: duplicate switch value",
524 "tmp.zig:12:9: error: duplicate switch value",
459525 );
460526
461527 cases.add(
......@@ -471,8 +537,8 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
471537 \\ };
472538 \\}
473539 ,
474 ".tmp_source.zig:2:15: error: switch must handle all possibilities",
475 ".tmp_source.zig:7:15: error: switch must handle all possibilities",
540 "tmp.zig:2:15: error: switch must handle all possibilities",
541 "tmp.zig:7:15: error: switch must handle all possibilities",
476542 );
477543
478544 cases.add(
......@@ -484,7 +550,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
484550 \\ const deref = int_ptr.*;
485551 \\}
486552 ,
487 ".tmp_source.zig:5:26: error: attempt to read 4 bytes from [4]u8 at index 1 which is 3 bytes",
553 "tmp.zig:5:26: error: attempt to read 4 bytes from [4]u8 at index 1 which is 3 bytes",
488554 );
489555
490556 cases.add(
......@@ -495,8 +561,8 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
495561 \\ do_the_thing(bar);
496562 \\}
497563 ,
498 ".tmp_source.zig:4:18: error: expected type 'fn(i32) void', found 'fn(bool) void",
499 ".tmp_source.zig:4:18: note: parameter 0: 'bool' cannot cast into 'i32'",
564 "tmp.zig:4:18: error: expected type 'fn(i32) void', found 'fn(bool) void",
565 "tmp.zig:4:18: note: parameter 0: 'bool' cannot cast into 'i32'",
500566 );
501567
502568 cases.add(
......@@ -510,8 +576,8 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
510576 \\ const unsigned: u32 = value;
511577 \\}
512578 ,
513 ".tmp_source.zig:3:36: error: cannot cast negative value -1 to unsigned integer type 'u32'",
514 ".tmp_source.zig:7:27: error: cannot cast negative value -1 to unsigned integer type 'u32'",
579 "tmp.zig:3:36: error: cannot cast negative value -1 to unsigned integer type 'u32'",
580 "tmp.zig:7:27: error: cannot cast negative value -1 to unsigned integer type 'u32'",
515581 );
516582
517583 cases.add(
......@@ -529,9 +595,9 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
529595 \\ var byte: u8 = spartan_count;
530596 \\}
531597 ,
532 ".tmp_source.zig:3:31: error: integer value 300 cannot be implicitly casted to type 'u8'",
533 ".tmp_source.zig:7:22: error: integer value 300 cannot be implicitly casted to type 'u8'",
534 ".tmp_source.zig:11:20: error: expected type 'u8', found 'u16'",
598 "tmp.zig:3:31: error: integer value 300 cannot be implicitly casted to type 'u8'",
599 "tmp.zig:7:22: error: integer value 300 cannot be implicitly casted to type 'u8'",
600 "tmp.zig:11:20: error: expected type 'u8', found 'u16'",
535601 );
536602
537603 cases.add(
......@@ -541,7 +607,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
541607 \\ const y: f32 = x;
542608 \\}
543609 ,
544 ".tmp_source.zig:3:20: error: cast of value 16777217.000000 to type 'f32' loses information",
610 "tmp.zig:3:20: error: cast of value 16777217.000000 to type 'f32' loses information",
545611 );
546612
547613 cases.add(
......@@ -551,7 +617,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
551617 \\
552618 \\export fn entry() usize { return @sizeOf(@typeOf(y)); }
553619 ,
554 ".tmp_source.zig:2:14: error: expected type 'f32', found 'f64'",
620 "tmp.zig:2:14: error: expected type 'f32', found 'f64'",
555621 );
556622
557623 cases.add(
......@@ -563,28 +629,8 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
563629 \\ var x: i65536 = 1;
564630 \\}
565631 ,
566 ".tmp_source.zig:2:31: error: integer value 65536 cannot be implicitly casted to type 'u16'",
567 ".tmp_source.zig:5:12: error: primitive integer type 'i65536' exceeds maximum bit width of 65535",
568 );
569
570 cases.add(
571 "wrong panic signature, runtime function",
572 \\test "" {}
573 \\
574 \\pub fn panic() void {}
575 \\
576 ,
577 ".tmp_source.zig:3:5: error: expected type 'fn([]const u8, ?*StackTrace) noreturn', found 'fn() void'",
578 );
579
580 cases.add(
581 "wrong panic signature, generic function",
582 \\pub fn panic(comptime msg: []const u8, error_return_trace: ?*builtin.StackTrace) noreturn {
583 \\ while (true) {}
584 \\}
585 ,
586 ".tmp_source.zig:1:5: error: expected type 'fn([]const u8, ?*StackTrace) noreturn', found 'fn([]const u8,var)var'",
587 ".tmp_source.zig:1:5: note: only one of the functions is generic",
632 "tmp.zig:2:31: error: integer value 65536 cannot be implicitly casted to type 'u16'",
633 "tmp.zig:5:12: error: primitive integer type 'i65536' exceeds maximum bit width of 65535",
588634 );
589635
590636 cases.add(
......@@ -597,7 +643,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
597643 \\ const car = Car.init();
598644 \\}
599645 ,
600 ".tmp_source.zig:2:11: error: use of undeclared identifier 'SymbolThatDoesNotExist'",
646 "tmp.zig:2:11: error: use of undeclared identifier 'SymbolThatDoesNotExist'",
601647 );
602648
603649 cases.add(
......@@ -609,7 +655,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
609655 \\ var ptr2: *c_void = &b;
610656 \\}
611657 ,
612 ".tmp_source.zig:5:26: error: expected type '*c_void', found '**u32'",
658 "tmp.zig:5:26: error: expected type '*c_void', found '**u32'",
613659 );
614660
615661 cases.add(
......@@ -625,7 +671,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
625671 \\ const field = @typeInfo(Struct).Struct.fields[index];
626672 \\}
627673 ,
628 ".tmp_source.zig:9:51: error: values of type 'StructField' must be comptime known, but index value is runtime known",
674 "tmp.zig:9:51: error: values of type 'builtin.StructField' must be comptime known, but index value is runtime known",
629675 );
630676
631677 cases.add(
......@@ -639,7 +685,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
639685 \\ _ = @typeName(Foo(i32));
640686 \\}
641687 ,
642 ".tmp_source.zig:2:5: error: found compile log statement",
688 "tmp.zig:2:5: error: found compile log statement",
643689 );
644690
645691 cases.add(
......@@ -649,7 +695,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
649695 \\ var b = a[0..10];
650696 \\}
651697 ,
652 ".tmp_source.zig:3:14: error: slice of undefined",
698 "tmp.zig:3:14: error: slice of undefined",
653699 );
654700
655701 cases.add(
......@@ -659,7 +705,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
659705 \\ const sliceA: []u8 = &buffer;
660706 \\}
661707 ,
662 ".tmp_source.zig:3:27: error: expected type '[]u8', found '*const [1]u8'",
708 "tmp.zig:3:27: error: expected type '[]u8', found '*const [1]u8'",
663709 );
664710
665711 cases.add(
......@@ -669,7 +715,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
669715 \\ _ = a.*.len;
670716 \\}
671717 ,
672 ".tmp_source.zig:3:10: error: attempt to dereference non-pointer type '[]u8'",
718 "tmp.zig:3:10: error: attempt to dereference non-pointer type '[]u8'",
673719 );
674720
675721 cases.add(
......@@ -680,9 +726,9 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
680726 \\ return p == null;
681727 \\}
682728 ,
683 ".tmp_source.zig:3:15: error: '*u0' and '?*u0' do not have the same in-memory representation",
684 ".tmp_source.zig:3:31: note: '*u0' has no in-memory bits",
685 ".tmp_source.zig:3:24: note: '?*u0' has in-memory bits",
729 "tmp.zig:3:15: error: '*u0' and '?*u0' do not have the same in-memory representation",
730 "tmp.zig:3:31: note: '*u0' has no in-memory bits",
731 "tmp.zig:3:24: note: '?*u0' has in-memory bits",
686732 );
687733
688734 cases.add(
......@@ -692,7 +738,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
692738 \\ _ = &x == null;
693739 \\}
694740 ,
695 ".tmp_source.zig:3:12: error: comparison against null can only be done with optionals",
741 "tmp.zig:3:12: error: comparison against null can only be done with optionals",
696742 );
697743
698744 cases.add(
......@@ -704,10 +750,10 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
704750 \\ const Errors = error{} || u16;
705751 \\}
706752 ,
707 ".tmp_source.zig:2:20: error: expected error set type, found type 'u8'",
708 ".tmp_source.zig:2:23: note: `||` merges error sets; `or` performs boolean OR",
709 ".tmp_source.zig:5:31: error: expected error set type, found type 'u16'",
710 ".tmp_source.zig:5:28: note: `||` merges error sets; `or` performs boolean OR",
753 "tmp.zig:2:20: error: expected error set type, found type 'u8'",
754 "tmp.zig:2:23: note: `||` merges error sets; `or` performs boolean OR",
755 "tmp.zig:5:31: error: expected error set type, found type 'u16'",
756 "tmp.zig:5:28: note: `||` merges error sets; `or` performs boolean OR",
711757 );
712758
713759 cases.add(
......@@ -725,7 +771,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
725771 \\ const S = Gen();
726772 \\}
727773 ,
728 ".tmp_source.zig:2:12: error: use of undeclared identifier 'T'",
774 "tmp.zig:2:12: error: use of undeclared identifier 'T'",
729775 );
730776
731777 cases.add(
......@@ -736,7 +782,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
736782 \\ f(i32);
737783 \\}
738784 ,
739 ".tmp_source.zig:4:5: error: use of undefined value here causes undefined behavior",
785 "tmp.zig:4:5: error: use of undefined value here causes undefined behavior",
740786 );
741787
742788 cases.add(
......@@ -754,9 +800,9 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
754800 \\ var x = func(3);
755801 \\}
756802 ,
757 ".tmp_source.zig:4:24: error: 'y' not accessible from inner function",
758 ".tmp_source.zig:3:28: note: crossed function definition here",
759 ".tmp_source.zig:1:10: note: declared here",
803 "tmp.zig:4:24: error: 'y' not accessible from inner function",
804 "tmp.zig:3:28: note: crossed function definition here",
805 "tmp.zig:1:10: note: declared here",
760806 );
761807
762808 cases.add(
......@@ -765,7 +811,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
765811 \\ const x = @intToFloat(f32, 1.1);
766812 \\}
767813 ,
768 ".tmp_source.zig:2:32: error: expected int type, found 'comptime_float'",
814 "tmp.zig:2:32: error: expected int type, found 'comptime_float'",
769815 );
770816
771817 cases.add(
......@@ -774,7 +820,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
774820 \\ const x = @floatToInt(i32, i32(54));
775821 \\}
776822 ,
777 ".tmp_source.zig:2:35: error: expected float type, found 'i32'",
823 "tmp.zig:2:35: error: expected float type, found 'i32'",
778824 );
779825
780826 cases.add(
......@@ -783,7 +829,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
783829 \\ const x = @floatToInt(i8, 200);
784830 \\}
785831 ,
786 ".tmp_source.zig:2:31: error: integer value 200 cannot be implicitly casted to type 'i8'",
832 "tmp.zig:2:31: error: integer value 200 cannot be implicitly casted to type 'i8'",
787833 );
788834
789835 cases.add(
......@@ -795,7 +841,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
795841 \\ const int_val = int_ptr.*;
796842 \\}
797843 ,
798 ".tmp_source.zig:5:28: error: attempt to read 8 bytes from pointer to f32 which is 4 bytes",
844 "tmp.zig:5:28: error: attempt to read 8 bytes from pointer to f32 which is 4 bytes",
799845 );
800846
801847 cases.add(
......@@ -808,7 +854,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
808854 \\ const a = items[0];
809855 \\}
810856 ,
811 ".tmp_source.zig:2:12: error: use of undeclared identifier 'SomeNonexistentType'",
857 "tmp.zig:2:12: error: use of undeclared identifier 'SomeNonexistentType'",
812858 );
813859
814860 cases.add(
......@@ -819,7 +865,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
819865 \\ @noInlineCall(foo);
820866 \\}
821867 ,
822 ".tmp_source.zig:4:5: error: no-inline call of inline function",
868 "tmp.zig:4:5: error: no-inline call of inline function",
823869 );
824870
825871 cases.add(
......@@ -836,8 +882,8 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
836882 \\ }
837883 \\}
838884 ,
839 ".tmp_source.zig:6:19: error: comptime control flow inside runtime block",
840 ".tmp_source.zig:5:9: note: runtime block created here",
885 "tmp.zig:6:19: error: comptime control flow inside runtime block",
886 "tmp.zig:5:9: note: runtime block created here",
841887 );
842888
843889 cases.add(
......@@ -853,8 +899,8 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
853899 \\ }
854900 \\}
855901 ,
856 ".tmp_source.zig:6:13: error: comptime control flow inside runtime block",
857 ".tmp_source.zig:5:9: note: runtime block created here",
902 "tmp.zig:6:13: error: comptime control flow inside runtime block",
903 "tmp.zig:5:9: note: runtime block created here",
858904 );
859905
860906 cases.add(
......@@ -868,8 +914,8 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
868914 \\ }
869915 \\}
870916 ,
871 ".tmp_source.zig:5:23: error: comptime control flow inside runtime block",
872 ".tmp_source.zig:5:9: note: runtime block created here",
917 "tmp.zig:5:23: error: comptime control flow inside runtime block",
918 "tmp.zig:5:9: note: runtime block created here",
873919 );
874920
875921 cases.add(
......@@ -883,8 +929,8 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
883929 \\ }
884930 \\}
885931 ,
886 ".tmp_source.zig:5:25: error: comptime control flow inside runtime block",
887 ".tmp_source.zig:5:9: note: runtime block created here",
932 "tmp.zig:5:25: error: comptime control flow inside runtime block",
933 "tmp.zig:5:9: note: runtime block created here",
888934 );
889935
890936 cases.add(
......@@ -898,8 +944,8 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
898944 \\ }
899945 \\}
900946 ,
901 ".tmp_source.zig:5:20: error: comptime control flow inside runtime block",
902 ".tmp_source.zig:5:9: note: runtime block created here",
947 "tmp.zig:5:20: error: comptime control flow inside runtime block",
948 "tmp.zig:5:9: note: runtime block created here",
903949 );
904950
905951 cases.add(
......@@ -913,8 +959,8 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
913959 \\ }
914960 \\}
915961 ,
916 ".tmp_source.zig:5:20: error: comptime control flow inside runtime block",
917 ".tmp_source.zig:5:9: note: runtime block created here",
962 "tmp.zig:5:20: error: comptime control flow inside runtime block",
963 "tmp.zig:5:9: note: runtime block created here",
918964 );
919965
920966 cases.add(
......@@ -928,8 +974,8 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
928974 \\ }
929975 \\}
930976 ,
931 ".tmp_source.zig:5:22: error: comptime control flow inside runtime block",
932 ".tmp_source.zig:5:9: note: runtime block created here",
977 "tmp.zig:5:22: error: comptime control flow inside runtime block",
978 "tmp.zig:5:9: note: runtime block created here",
933979 );
934980
935981 cases.add(
......@@ -945,7 +991,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
945991 \\ };
946992 \\}
947993 ,
948 ".tmp_source.zig:7:17: error: switch on type 'type' provides no expression parameter",
994 "tmp.zig:7:17: error: switch on type 'type' provides no expression parameter",
949995 );
950996
951997 cases.add(
......@@ -955,7 +1001,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
9551001 \\ foo();
9561002 \\}
9571003 ,
958 ".tmp_source.zig:1:1: error: non-extern function has no body",
1004 "tmp.zig:1:1: error: non-extern function has no body",
9591005 );
9601006
9611007 cases.add(
......@@ -966,7 +1012,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
9661012 \\ return handle_undef == handle_dummy;
9671013 \\}
9681014 ,
969 ".tmp_source.zig:2:29: error: @handle() called outside of function definition",
1015 "tmp.zig:2:29: error: @handle() called outside of function definition",
9701016 );
9711017
9721018 cases.add(
......@@ -976,7 +1022,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
9761022 \\ return handle_undef == @handle();
9771023 \\}
9781024 ,
979 ".tmp_source.zig:3:28: error: @handle() in non-async function",
1025 "tmp.zig:3:28: error: @handle() in non-async function",
9801026 );
9811027
9821028 cases.add(
......@@ -986,8 +1032,8 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
9861032 \\ return _;
9871033 \\}
9881034 ,
989 ".tmp_source.zig:2:5: error: `_` is not a declarable symbol",
990 ".tmp_source.zig:3:12: error: use of undeclared identifier '_'",
1035 "tmp.zig:2:5: error: `_` is not a declarable symbol",
1036 "tmp.zig:3:12: error: use of undeclared identifier '_'",
9911037 );
9921038
9931039 cases.add(
......@@ -1000,7 +1046,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
10001046 \\ }
10011047 \\}
10021048 ,
1003 ".tmp_source.zig:4:20: error: use of undeclared identifier '_'",
1049 "tmp.zig:4:20: error: use of undeclared identifier '_'",
10041050 );
10051051
10061052 cases.add(
......@@ -1016,7 +1062,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
10161062 \\ return 1;
10171063 \\}
10181064 ,
1019 ".tmp_source.zig:4:20: error: use of undeclared identifier '_'",
1065 "tmp.zig:4:20: error: use of undeclared identifier '_'",
10201066 );
10211067
10221068 cases.add(
......@@ -1034,7 +1080,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
10341080 \\ return error.optionalReturnError;
10351081 \\}
10361082 ,
1037 ".tmp_source.zig:6:17: error: use of undeclared identifier '_'",
1083 "tmp.zig:6:17: error: use of undeclared identifier '_'",
10381084 );
10391085
10401086 cases.add(
......@@ -1054,9 +1100,9 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
10541100 \\ while (x) |_| returns() else |_| unreachable;
10551101 \\}
10561102 ,
1057 ".tmp_source.zig:5:25: error: expression value is ignored",
1058 ".tmp_source.zig:9:26: error: expression value is ignored",
1059 ".tmp_source.zig:13:26: error: expression value is ignored",
1103 "tmp.zig:5:25: error: expression value is ignored",
1104 "tmp.zig:9:26: error: expression value is ignored",
1105 "tmp.zig:13:26: error: expression value is ignored",
10601106 );
10611107
10621108 cases.add(
......@@ -1067,7 +1113,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
10671113 \\ dump(a);
10681114 \\}
10691115 ,
1070 ".tmp_source.zig:1:9: error: missing parameter name",
1116 "tmp.zig:1:9: error: missing parameter name",
10711117 );
10721118
10731119 cases.add(
......@@ -1081,7 +1127,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
10811127 \\ for (xx) |f| {}
10821128 \\}
10831129 ,
1084 ".tmp_source.zig:7:15: error: variable of type 'Foo' must be const or comptime",
1130 "tmp.zig:7:15: error: variable of type 'Foo' must be const or comptime",
10851131 );
10861132
10871133 cases.add(
......@@ -1092,7 +1138,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
10921138 \\ f(g);
10931139 \\}
10941140 ,
1095 ".tmp_source.zig:1:9: error: parameter of type 'fn(var)var' must be declared comptime",
1141 "tmp.zig:1:9: error: parameter of type 'fn(var)var' must be declared comptime",
10961142 );
10971143
10981144 cases.add(
......@@ -1106,7 +1152,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
11061152 \\};
11071153 \\export fn entry(bar: *Bar) void {}
11081154 ,
1109 ".tmp_source.zig:2:5: error: extern structs cannot contain fields of type '?*const void'",
1155 "tmp.zig:2:5: error: extern structs cannot contain fields of type '?*const void'",
11101156 );
11111157
11121158 cases.add(
......@@ -1119,7 +1165,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
11191165 \\ command.exec();
11201166 \\}
11211167 ,
1122 ".tmp_source.zig:6:12: error: use of undefined value here causes undefined behavior",
1168 "tmp.zig:6:12: error: use of undefined value here causes undefined behavior",
11231169 );
11241170
11251171 cases.add(
......@@ -1132,7 +1178,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
11321178 \\ command.exec();
11331179 \\}
11341180 ,
1135 ".tmp_source.zig:6:12: error: use of undefined value here causes undefined behavior",
1181 "tmp.zig:6:12: error: use of undefined value here causes undefined behavior",
11361182 );
11371183
11381184 cases.add(
......@@ -1142,7 +1188,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
11421188 \\ const aligned = @alignCast(4, ptr);
11431189 \\}
11441190 ,
1145 ".tmp_source.zig:3:35: error: pointer address 0x1 is not aligned to 4 bytes",
1191 "tmp.zig:3:35: error: pointer address 0x1 is not aligned to 4 bytes",
11461192 );
11471193
11481194 cases.add(
......@@ -1151,7 +1197,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
11511197 \\ return @ptrToInt(&{}) == @ptrToInt(&{});
11521198 \\}
11531199 ,
1154 ".tmp_source.zig:2:23: error: pointer to size 0 type has no address",
1200 "tmp.zig:2:23: error: pointer to size 0 type has no address",
11551201 );
11561202
11571203 cases.add(
......@@ -1160,7 +1206,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
11601206 \\ return @popCount(x);
11611207 \\}
11621208 ,
1163 ".tmp_source.zig:2:22: error: expected integer type, found 'f32'",
1209 "tmp.zig:2:22: error: expected integer type, found 'f32'",
11641210 );
11651211
11661212 cases.add(
......@@ -1169,7 +1215,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
11691215 \\ _ = @popCount(-1);
11701216 \\}
11711217 ,
1172 ".tmp_source.zig:2:9: error: @popCount on negative comptime_int value -1",
1218 "tmp.zig:2:9: error: @popCount on negative comptime_int value -1",
11731219 );
11741220
11751221 cases.addCase(x: {
......@@ -1185,8 +1231,8 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
11851231 \\
11861232 \\fn bar(x: *b.Foo) void {}
11871233 ,
1188 ".tmp_source.zig:6:10: error: expected type '*Foo', found '*Foo'",
1189 ".tmp_source.zig:6:10: note: pointer type child 'Foo' cannot cast into pointer type child 'Foo'",
1234 "tmp.zig:6:10: error: expected type '*Foo', found '*Foo'",
1235 "tmp.zig:6:10: note: pointer type child 'Foo' cannot cast into pointer type child 'Foo'",
11901236 "a.zig:1:17: note: Foo declared here",
11911237 "b.zig:1:17: note: Foo declared here",
11921238 );
......@@ -1218,9 +1264,9 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
12181264 \\ _ = @floatToInt(u8, f32(256.1));
12191265 \\}
12201266 ,
1221 ".tmp_source.zig:2:9: error: integer value '-129' cannot be stored in type 'i8'",
1222 ".tmp_source.zig:5:9: error: integer value '-1' cannot be stored in type 'u8'",
1223 ".tmp_source.zig:8:9: error: integer value '256' cannot be stored in type 'u8'",
1267 "tmp.zig:2:9: error: integer value '-129' cannot be stored in type 'i8'",
1268 "tmp.zig:5:9: error: integer value '-1' cannot be stored in type 'u8'",
1269 "tmp.zig:8:9: error: integer value '256' cannot be stored in type 'u8'",
12241270 );
12251271
12261272 cases.add(
......@@ -1229,7 +1275,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
12291275 \\ const a: fn () c_void = undefined;
12301276 \\}
12311277 ,
1232 ".tmp_source.zig:2:20: error: return type cannot be opaque",
1278 "tmp.zig:2:20: error: return type cannot be opaque",
12331279 );
12341280
12351281 cases.add(
......@@ -1242,7 +1288,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
12421288 \\ var y = p.*;
12431289 \\}
12441290 ,
1245 ".tmp_source.zig:4:23: error: expected type '*?*i32', found '**i32'",
1291 "tmp.zig:4:23: error: expected type '*?*i32', found '**i32'",
12461292 );
12471293
12481294 cases.add(
......@@ -1251,7 +1297,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
12511297 \\ const x: [*]const bool = true;
12521298 \\}
12531299 ,
1254 ".tmp_source.zig:2:30: error: expected type '[*]const bool', found 'bool'",
1300 "tmp.zig:2:30: error: expected type '[*]const bool', found 'bool'",
12551301 );
12561302
12571303 cases.add(
......@@ -1260,7 +1306,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
12601306 \\ return x.*;
12611307 \\}
12621308 ,
1263 ".tmp_source.zig:2:13: error: index syntax required for unknown-length pointer type '[*]i32'",
1309 "tmp.zig:2:13: error: index syntax required for unknown-length pointer type '[*]i32'",
12641310 );
12651311
12661312 cases.add(
......@@ -1273,14 +1319,14 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
12731319 \\ foo.a += 1;
12741320 \\}
12751321 ,
1276 ".tmp_source.zig:6:8: error: type '[*]Foo' does not support field access",
1322 "tmp.zig:6:8: error: type '[*]Foo' does not support field access",
12771323 );
12781324
12791325 cases.add(
12801326 "unknown length pointer to opaque",
12811327 \\export const T = [*]@OpaqueType();
12821328 ,
1283 ".tmp_source.zig:1:18: error: unknown-length pointer to opaque",
1329 "tmp.zig:1:18: error: unknown-length pointer to opaque",
12841330 );
12851331
12861332 cases.add(
......@@ -1296,7 +1342,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
12961342 \\ var rule_set = try Foo.init();
12971343 \\}
12981344 ,
1299 ".tmp_source.zig:2:13: error: expected type 'i32', found 'type'",
1345 "tmp.zig:2:13: error: expected type 'i32', found 'type'",
13001346 );
13011347
13021348 cases.add(
......@@ -1305,7 +1351,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
13051351 \\ const slice = ptr[0..2];
13061352 \\}
13071353 ,
1308 ".tmp_source.zig:2:22: error: slice of single-item pointer",
1354 "tmp.zig:2:22: error: slice of single-item pointer",
13091355 );
13101356
13111357 cases.add(
......@@ -1314,7 +1360,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
13141360 \\ return ptr[1];
13151361 \\}
13161362 ,
1317 ".tmp_source.zig:2:15: error: index of single-item pointer",
1363 "tmp.zig:2:15: error: index of single-item pointer",
13181364 );
13191365
13201366 cases.add(
......@@ -1330,10 +1376,10 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
13301376 \\ return null;
13311377 \\}
13321378 ,
1333 ".tmp_source.zig:5:34: error: expected type '?NextError!i32', found '?OtherError!i32'",
1334 ".tmp_source.zig:5:34: note: optional type child 'OtherError!i32' cannot cast into optional type child 'NextError!i32'",
1335 ".tmp_source.zig:5:34: note: error set 'OtherError' cannot cast into error set 'NextError'",
1336 ".tmp_source.zig:2:26: note: 'error.OutOfMemory' not a member of destination error set",
1379 "tmp.zig:5:34: error: expected type '?NextError!i32', found '?OtherError!i32'",
1380 "tmp.zig:5:34: note: optional type child 'OtherError!i32' cannot cast into optional type child 'NextError!i32'",
1381 "tmp.zig:5:34: note: error set 'OtherError' cannot cast into error set 'NextError'",
1382 "tmp.zig:2:26: note: 'error.OutOfMemory' not a member of destination error set",
13371383 );
13381384
13391385 cases.add(
......@@ -1350,14 +1396,14 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
13501396 \\ Filled,
13511397 \\};
13521398 ,
1353 ".tmp_source.zig:3:17: error: attempt to dereference non-pointer type 'Tile'",
1399 "tmp.zig:3:17: error: attempt to dereference non-pointer type 'Tile'",
13541400 );
13551401
13561402 cases.add(
13571403 "invalid field access in comptime",
13581404 \\comptime { var x = doesnt_exist.whatever; }
13591405 ,
1360 ".tmp_source.zig:1:20: error: use of undeclared identifier 'doesnt_exist'",
1406 "tmp.zig:1:20: error: use of undeclared identifier 'doesnt_exist'",
13611407 );
13621408
13631409 cases.add(
......@@ -1378,8 +1424,8 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
13781424 \\ }
13791425 \\}
13801426 ,
1381 ".tmp_source.zig:12:9: error: cannot suspend inside suspend block",
1382 ".tmp_source.zig:11:5: note: other suspend block here",
1427 "tmp.zig:12:9: error: cannot suspend inside suspend block",
1428 "tmp.zig:11:5: note: other suspend block here",
13831429 );
13841430
13851431 cases.add(
......@@ -1389,8 +1435,8 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
13891435 \\}
13901436 \\inline fn b() void { }
13911437 ,
1392 ".tmp_source.zig:2:5: error: functions marked inline must be stored in const or comptime var",
1393 ".tmp_source.zig:4:1: note: declared here",
1438 "tmp.zig:2:5: error: functions marked inline must be stored in const or comptime var",
1439 "tmp.zig:4:1: note: declared here",
13941440 );
13951441
13961442 cases.add(
......@@ -1400,7 +1446,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
14001446 \\ @panic(e);
14011447 \\}
14021448 ,
1403 ".tmp_source.zig:3:12: error: expected type '[]const u8', found 'error{Foo}'",
1449 "tmp.zig:3:12: error: expected type '[]const u8', found 'error{Foo}'",
14041450 );
14051451
14061452 cases.add(
......@@ -1414,8 +1460,8 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
14141460 \\ var tagName = @tagName(fi);
14151461 \\}
14161462 ,
1417 ".tmp_source.zig:7:19: error: union has no associated enum",
1418 ".tmp_source.zig:1:18: note: declared here",
1463 "tmp.zig:7:19: error: union has no associated enum",
1464 "tmp.zig:1:18: note: declared here",
14191465 );
14201466
14211467 cases.add(
......@@ -1428,7 +1474,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
14281474 \\ return error.ShouldBeCompileError;
14291475 \\}
14301476 ,
1431 ".tmp_source.zig:6:17: error: expected type 'void', found 'error{ShouldBeCompileError}'",
1477 "tmp.zig:6:17: error: expected type 'void', found 'error{ShouldBeCompileError}'",
14321478 );
14331479
14341480 cases.add(
......@@ -1437,7 +1483,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
14371483 \\ var s = (struct{v: var}){.v=i32(10)};
14381484 \\}
14391485 ,
1440 ".tmp_source.zig:2:23: error: invalid token: 'var'",
1486 "tmp.zig:2:23: error: invalid token: 'var'",
14411487 );
14421488
14431489 cases.add(
......@@ -1447,7 +1493,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
14471493 \\ const y = @ptrCast(*i32, &x);
14481494 \\}
14491495 ,
1450 ".tmp_source.zig:3:15: error: cast discards const qualifier",
1496 "tmp.zig:3:15: error: cast discards const qualifier",
14511497 );
14521498
14531499 cases.add(
......@@ -1456,7 +1502,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
14561502 \\ const slice = ([*]i32)(undefined)[0..1];
14571503 \\}
14581504 ,
1459 ".tmp_source.zig:2:38: error: non-zero length slice of undefined pointer",
1505 "tmp.zig:2:38: error: non-zero length slice of undefined pointer",
14601506 );
14611507
14621508 cases.add(
......@@ -1471,7 +1517,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
14711517 \\ a(c);
14721518 \\}
14731519 ,
1474 ".tmp_source.zig:8:7: error: expected type 'fn(*const u8) void', found 'fn(u8) void'",
1520 "tmp.zig:8:7: error: expected type 'fn(*const u8) void', found 'fn(u8) void'",
14751521 );
14761522
14771523 cases.add(
......@@ -1485,7 +1531,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
14851531 \\ }
14861532 \\}
14871533 ,
1488 ".tmp_source.zig:5:5: error: else prong required when switching on type 'anyerror'",
1534 "tmp.zig:5:5: error: else prong required when switching on type 'anyerror'",
14891535 );
14901536
14911537 cases.add(
......@@ -1496,7 +1542,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
14961542 \\fn foo() !void {
14971543 \\}
14981544 ,
1499 ".tmp_source.zig:4:11: error: function with inferred error set must return at least one possible error",
1545 "tmp.zig:4:11: error: function with inferred error set must return at least one possible error",
15001546 );
15011547
15021548 cases.add(
......@@ -1515,8 +1561,8 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
15151561 \\ }
15161562 \\}
15171563 ,
1518 ".tmp_source.zig:2:26: error: error.Baz not handled in switch",
1519 ".tmp_source.zig:2:26: error: error.Bar not handled in switch",
1564 "tmp.zig:2:26: error: error.Baz not handled in switch",
1565 "tmp.zig:2:26: error: error.Bar not handled in switch",
15201566 );
15211567
15221568 cases.add(
......@@ -1537,8 +1583,8 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
15371583 \\ }
15381584 \\}
15391585 ,
1540 ".tmp_source.zig:5:14: error: duplicate switch value: '@typeOf(foo).ReturnType.ErrorSet.Foo'",
1541 ".tmp_source.zig:3:14: note: other value is here",
1586 "tmp.zig:5:14: error: duplicate switch value: '@typeOf(foo).ReturnType.ErrorSet.Foo'",
1587 "tmp.zig:3:14: note: other value is here",
15421588 );
15431589
15441590 cases.add("invalid cast from integral type to enum",
......@@ -1553,7 +1599,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
15531599 \\ E.One => {},
15541600 \\ }
15551601 \\}
1556 , ".tmp_source.zig:9:10: error: expected type 'usize', found 'E'");
1602 , "tmp.zig:9:10: error: expected type 'usize', found 'E'");
15571603
15581604 cases.add(
15591605 "range operator in switch used on error set",
......@@ -1571,7 +1617,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
15711617 \\ }
15721618 \\}
15731619 ,
1574 ".tmp_source.zig:3:17: error: operator not allowed for errors",
1620 "tmp.zig:3:17: error: operator not allowed for errors",
15751621 );
15761622
15771623 cases.add(
......@@ -1580,7 +1626,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
15801626 \\ const z: ?fn()!void = null;
15811627 \\}
15821628 ,
1583 ".tmp_source.zig:2:15: error: inferring error set of return type valid only for function definitions",
1629 "tmp.zig:2:15: error: inferring error set of return type valid only for function definitions",
15841630 );
15851631
15861632 cases.add(
......@@ -1590,7 +1636,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
15901636 \\ const z = Foo.Bar;
15911637 \\}
15921638 ,
1593 ".tmp_source.zig:3:18: error: no error named 'Bar' in 'Foo'",
1639 "tmp.zig:3:18: error: no error named 'Bar' in 'Foo'",
15941640 );
15951641
15961642 cases.add(
......@@ -1599,7 +1645,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
15991645 \\ const z = i32!i32;
16001646 \\}
16011647 ,
1602 ".tmp_source.zig:2:15: error: expected error set type, found type 'i32'",
1648 "tmp.zig:2:15: error: expected error set type, found type 'i32'",
16031649 );
16041650
16051651 cases.add(
......@@ -1615,7 +1661,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
16151661 \\ }
16161662 \\}
16171663 ,
1618 ".tmp_source.zig:7:11: error: error sets 'Set1' and 'Set2' have no common errors",
1664 "tmp.zig:7:11: error: error sets 'Set1' and 'Set2' have no common errors",
16191665 );
16201666
16211667 cases.add(
......@@ -1624,7 +1670,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
16241670 \\ const z = error.A > error.B;
16251671 \\}
16261672 ,
1627 ".tmp_source.zig:2:23: error: operator not allowed for errors",
1673 "tmp.zig:2:23: error: operator not allowed for errors",
16281674 );
16291675
16301676 cases.add(
......@@ -1636,7 +1682,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
16361682 \\ var y = @errSetCast(Set2, x);
16371683 \\}
16381684 ,
1639 ".tmp_source.zig:5:13: error: error.B not a member of error set 'Set2'",
1685 "tmp.zig:5:13: error: error.B not a member of error set 'Set2'",
16401686 );
16411687
16421688 cases.add(
......@@ -1649,9 +1695,9 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
16491695 \\ return error.B;
16501696 \\}
16511697 ,
1652 ".tmp_source.zig:3:35: error: expected type 'SmallErrorSet!i32', found 'anyerror!i32'",
1653 ".tmp_source.zig:3:35: note: error set 'anyerror' cannot cast into error set 'SmallErrorSet'",
1654 ".tmp_source.zig:3:35: note: cannot cast global error set into smaller set",
1698 "tmp.zig:3:35: error: expected type 'SmallErrorSet!i32', found 'anyerror!i32'",
1699 "tmp.zig:3:35: note: error set 'anyerror' cannot cast into error set 'SmallErrorSet'",
1700 "tmp.zig:3:35: note: cannot cast global error set into smaller set",
16551701 );
16561702
16571703 cases.add(
......@@ -1664,10 +1710,9 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
16641710 \\ return error.B;
16651711 \\}
16661712 ,
1667 ".tmp_source.zig:3:31: error: expected type 'SmallErrorSet', found 'anyerror'",
1668 ".tmp_source.zig:3:31: note: cannot cast global error set into smaller set",
1713 "tmp.zig:3:31: error: expected type 'SmallErrorSet', found 'anyerror'",
1714 "tmp.zig:3:31: note: cannot cast global error set into smaller set",
16691715 );
1670
16711716 cases.add(
16721717 "recursive inferred error set",
16731718 \\export fn entry() void {
......@@ -1677,7 +1722,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
16771722 \\ try foo();
16781723 \\}
16791724 ,
1680 ".tmp_source.zig:5:5: error: cannot resolve inferred error set '@typeOf(foo).ReturnType.ErrorSet': function 'foo' not fully analyzed yet",
1725 "tmp.zig:5:5: error: cannot resolve inferred error set '@typeOf(foo).ReturnType.ErrorSet': function 'foo' not fully analyzed yet",
16811726 );
16821727
16831728 cases.add(
......@@ -1691,8 +1736,8 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
16911736 \\ var x: Set2 = set1;
16921737 \\}
16931738 ,
1694 ".tmp_source.zig:7:19: error: expected type 'Set2', found 'Set1'",
1695 ".tmp_source.zig:1:23: note: 'error.B' not a member of destination error set",
1739 "tmp.zig:7:19: error: expected type 'Set2', found 'Set1'",
1740 "tmp.zig:1:23: note: 'error.B' not a member of destination error set",
16961741 );
16971742
16981743 cases.add(
......@@ -1706,7 +1751,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
17061751 \\ var y = @intToError(x);
17071752 \\}
17081753 ,
1709 ".tmp_source.zig:7:13: error: integer value 3 represents no error",
1754 "tmp.zig:7:13: error: integer value 3 represents no error",
17101755 );
17111756
17121757 cases.add(
......@@ -1724,7 +1769,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
17241769 \\ var y = @errSetCast(Set2, @intToError(x));
17251770 \\}
17261771 ,
1727 ".tmp_source.zig:11:13: error: error.B not a member of error set 'Set2'",
1772 "tmp.zig:11:13: error: error.B not a member of error set 'Set2'",
17281773 );
17291774
17301775 cases.add(
......@@ -1733,7 +1778,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
17331778 \\ _ = @memberCount(anyerror);
17341779 \\}
17351780 ,
1736 ".tmp_source.zig:2:9: error: global error set member count not available at comptime",
1781 "tmp.zig:2:9: error: global error set member count not available at comptime",
17371782 );
17381783
17391784 cases.add(
......@@ -1746,8 +1791,8 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
17461791 \\ const a: Foo = undefined;
17471792 \\}
17481793 ,
1749 ".tmp_source.zig:3:5: error: duplicate error: 'Bar'",
1750 ".tmp_source.zig:2:5: note: other error here",
1794 "tmp.zig:3:5: error: duplicate error: 'Bar'",
1795 "tmp.zig:2:5: note: other error here",
17511796 );
17521797
17531798 cases.add(
......@@ -1756,7 +1801,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
17561801 \\ const x = usize(-10);
17571802 \\}
17581803 ,
1759 ".tmp_source.zig:2:21: error: cannot cast negative value -10 to unsigned integer type 'usize'",
1804 "tmp.zig:2:21: error: cannot cast negative value -10 to unsigned integer type 'usize'",
17601805 );
17611806
17621807 cases.add(
......@@ -1766,7 +1811,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
17661811 \\ var arr: [v]u8 = undefined;
17671812 \\}
17681813 ,
1769 ".tmp_source.zig:1:1: error: unable to infer variable type",
1814 "tmp.zig:1:1: error: unable to infer variable type",
17701815 );
17711816
17721817 cases.add(
......@@ -1779,8 +1824,8 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
17791824 \\ const a: Foo = undefined;
17801825 \\}
17811826 ,
1782 ".tmp_source.zig:3:5: error: duplicate struct field: 'Bar'",
1783 ".tmp_source.zig:2:5: note: other field here",
1827 "tmp.zig:3:5: error: duplicate struct field: 'Bar'",
1828 "tmp.zig:2:5: note: other field here",
17841829 );
17851830
17861831 cases.add(
......@@ -1793,8 +1838,8 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
17931838 \\ const a: Foo = undefined;
17941839 \\}
17951840 ,
1796 ".tmp_source.zig:3:5: error: duplicate union field: 'Bar'",
1797 ".tmp_source.zig:2:5: note: other field here",
1841 "tmp.zig:3:5: error: duplicate union field: 'Bar'",
1842 "tmp.zig:2:5: note: other field here",
17981843 );
17991844
18001845 cases.add(
......@@ -1808,8 +1853,8 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
18081853 \\ const a: Foo = undefined;
18091854 \\}
18101855 ,
1811 ".tmp_source.zig:3:5: error: duplicate enum field: 'Bar'",
1812 ".tmp_source.zig:2:5: note: other field here",
1856 "tmp.zig:3:5: error: duplicate enum field: 'Bar'",
1857 "tmp.zig:2:5: note: other field here",
18131858 );
18141859
18151860 cases.add(
......@@ -1819,15 +1864,15 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
18191864 \\}
18201865 \\nakedcc fn foo() void { }
18211866 ,
1822 ".tmp_source.zig:2:5: error: unable to call function with naked calling convention",
1823 ".tmp_source.zig:4:1: note: declared here",
1867 "tmp.zig:2:5: error: unable to call function with naked calling convention",
1868 "tmp.zig:4:1: note: declared here",
18241869 );
18251870
18261871 cases.add(
18271872 "function with invalid return type",
18281873 \\export fn foo() boid {}
18291874 ,
1830 ".tmp_source.zig:1:17: error: use of undeclared identifier 'boid'",
1875 "tmp.zig:1:17: error: use of undeclared identifier 'boid'",
18311876 );
18321877
18331878 cases.add(
......@@ -1835,7 +1880,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
18351880 \\const Foo = enum { A, B, C };
18361881 \\export fn entry(foo: Foo) void { }
18371882 ,
1838 ".tmp_source.zig:2:22: error: parameter of type 'Foo' not allowed in function with calling convention 'ccc'",
1883 "tmp.zig:2:22: error: parameter of type 'Foo' not allowed in function with calling convention 'ccc'",
18391884 );
18401885
18411886 cases.add(
......@@ -1847,7 +1892,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
18471892 \\};
18481893 \\export fn entry(foo: Foo) void { }
18491894 ,
1850 ".tmp_source.zig:6:22: error: parameter of type 'Foo' not allowed in function with calling convention 'ccc'",
1895 "tmp.zig:6:22: error: parameter of type 'Foo' not allowed in function with calling convention 'ccc'",
18511896 );
18521897
18531898 cases.add(
......@@ -1859,7 +1904,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
18591904 \\};
18601905 \\export fn entry(foo: Foo) void { }
18611906 ,
1862 ".tmp_source.zig:6:22: error: parameter of type 'Foo' not allowed in function with calling convention 'ccc'",
1907 "tmp.zig:6:22: error: parameter of type 'Foo' not allowed in function with calling convention 'ccc'",
18631908 );
18641909
18651910 cases.add(
......@@ -1871,7 +1916,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
18711916 \\ switch (f) {}
18721917 \\}
18731918 ,
1874 ".tmp_source.zig:5:5: error: enumeration value 'Foo.M' not handled in switch",
1919 "tmp.zig:5:5: error: enumeration value 'Foo.M' not handled in switch",
18751920 );
18761921
18771922 cases.add(
......@@ -1880,7 +1925,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
18801925 \\ var a = 1 >> -1;
18811926 \\}
18821927 ,
1883 ".tmp_source.zig:2:18: error: shift by negative value -1",
1928 "tmp.zig:2:18: error: shift by negative value -1",
18841929 );
18851930
18861931 cases.add(
......@@ -1891,7 +1936,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
18911936 \\ }
18921937 \\}
18931938 ,
1894 ".tmp_source.zig:3:9: error: encountered @panic at compile-time",
1939 "tmp.zig:3:9: error: encountered @panic at compile-time",
18951940 );
18961941
18971942 cases.add(
......@@ -1921,7 +1966,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
19211966 \\ bogus;
19221967 \\}
19231968 ,
1924 ".tmp_source.zig:8:5: error: use of undeclared identifier 'bogus'",
1969 "tmp.zig:8:5: error: use of undeclared identifier 'bogus'",
19251970 );
19261971
19271972 cases.add(
......@@ -1934,7 +1979,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
19341979 \\ }
19351980 \\}
19361981 ,
1937 ".tmp_source.zig:4:13: error: label not found: 'outer'",
1982 "tmp.zig:4:13: error: label not found: 'outer'",
19381983 );
19391984
19401985 cases.add(
......@@ -1948,7 +1993,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
19481993 \\ }
19491994 \\}
19501995 ,
1951 ".tmp_source.zig:5:13: error: labeled loop not found: 'outer'",
1996 "tmp.zig:5:13: error: labeled loop not found: 'outer'",
19521997 );
19531998
19541999 cases.add(
......@@ -1961,8 +2006,8 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
19612006 \\
19622007 \\extern fn bar(x: *void) void { }
19632008 ,
1964 ".tmp_source.zig:1:30: error: parameter of type '*void' has 0 bits; not allowed in function with calling convention 'ccc'",
1965 ".tmp_source.zig:7:18: error: parameter of type '*void' has 0 bits; not allowed in function with calling convention 'ccc'",
2009 "tmp.zig:1:30: error: parameter of type '*void' has 0 bits; not allowed in function with calling convention 'ccc'",
2010 "tmp.zig:7:18: error: parameter of type '*void' has 0 bits; not allowed in function with calling convention 'ccc'",
19662011 );
19672012
19682013 cases.add(
......@@ -1974,7 +2019,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
19742019 \\ var bad = {};
19752020 \\}
19762021 ,
1977 ".tmp_source.zig:5:5: error: expected token ';', found 'var'",
2022 "tmp.zig:5:5: error: expected token ';', found 'var'",
19782023 );
19792024
19802025 cases.add(
......@@ -1986,7 +2031,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
19862031 \\ var bad = {};
19872032 \\}
19882033 ,
1989 ".tmp_source.zig:5:5: error: expected token ';', found 'var'",
2034 "tmp.zig:5:5: error: expected token ';', found 'var'",
19902035 );
19912036
19922037 cases.add(
......@@ -1998,7 +2043,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
19982043 \\ var bad = {};
19992044 \\}
20002045 ,
2001 ".tmp_source.zig:5:5: error: expected token ';', found 'var'",
2046 "tmp.zig:5:5: error: expected token ';', found 'var'",
20022047 );
20032048
20042049 cases.add(
......@@ -2010,7 +2055,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
20102055 \\ var bad = {};
20112056 \\}
20122057 ,
2013 ".tmp_source.zig:5:5: error: expected token ';', found 'var'",
2058 "tmp.zig:5:5: error: expected token ';', found 'var'",
20142059 );
20152060
20162061 cases.add(
......@@ -2022,7 +2067,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
20222067 \\ var bad = {};
20232068 \\}
20242069 ,
2025 ".tmp_source.zig:5:5: error: expected token ';', found 'var'",
2070 "tmp.zig:5:5: error: expected token ';', found 'var'",
20262071 );
20272072
20282073 cases.add(
......@@ -2034,7 +2079,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
20342079 \\ var bad = {};
20352080 \\}
20362081 ,
2037 ".tmp_source.zig:5:5: error: expected token ';', found 'var'",
2082 "tmp.zig:5:5: error: expected token ';', found 'var'",
20382083 );
20392084
20402085 cases.add(
......@@ -2046,7 +2091,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
20462091 \\ var bad = {};
20472092 \\}
20482093 ,
2049 ".tmp_source.zig:5:5: error: expected token ';', found 'var'",
2094 "tmp.zig:5:5: error: expected token ';', found 'var'",
20502095 );
20512096
20522097 cases.add(
......@@ -2058,7 +2103,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
20582103 \\ var bad = {};
20592104 \\}
20602105 ,
2061 ".tmp_source.zig:5:5: error: expected token ';', found 'var'",
2106 "tmp.zig:5:5: error: expected token ';', found 'var'",
20622107 );
20632108
20642109 cases.add(
......@@ -2070,7 +2115,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
20702115 \\ var bad = {};
20712116 \\}
20722117 ,
2073 ".tmp_source.zig:5:5: error: expected token ';', found 'var'",
2118 "tmp.zig:5:5: error: expected token ';', found 'var'",
20742119 );
20752120
20762121 cases.add(
......@@ -2082,7 +2127,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
20822127 \\ var bad = {};
20832128 \\}
20842129 ,
2085 ".tmp_source.zig:5:5: error: expected token ';', found 'var'",
2130 "tmp.zig:5:5: error: expected token ';', found 'var'",
20862131 );
20872132
20882133 cases.add(
......@@ -2094,7 +2139,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
20942139 \\ var bad = {};
20952140 \\}
20962141 ,
2097 ".tmp_source.zig:5:5: error: expected token ';', found 'var'",
2142 "tmp.zig:5:5: error: expected token ';', found 'var'",
20982143 );
20992144
21002145 cases.add(
......@@ -2106,7 +2151,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
21062151 \\ var bad = {};
21072152 \\}
21082153 ,
2109 ".tmp_source.zig:5:5: error: expected token ';', found 'var'",
2154 "tmp.zig:5:5: error: expected token ';', found 'var'",
21102155 );
21112156
21122157 cases.add(
......@@ -2118,7 +2163,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
21182163 \\ var bad = {};
21192164 \\}
21202165 ,
2121 ".tmp_source.zig:5:5: error: expected token ';', found 'var'",
2166 "tmp.zig:5:5: error: expected token ';', found 'var'",
21222167 );
21232168
21242169 cases.add(
......@@ -2130,7 +2175,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
21302175 \\ var bad = {};
21312176 \\}
21322177 ,
2133 ".tmp_source.zig:5:5: error: expected token ';', found 'var'",
2178 "tmp.zig:5:5: error: expected token ';', found 'var'",
21342179 );
21352180
21362181 cases.add(
......@@ -2142,7 +2187,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
21422187 \\ var bad = {};
21432188 \\}
21442189 ,
2145 ".tmp_source.zig:5:5: error: expected token ';', found 'var'",
2190 "tmp.zig:5:5: error: expected token ';', found 'var'",
21462191 );
21472192
21482193 cases.add(
......@@ -2154,7 +2199,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
21542199 \\ var bad = {};
21552200 \\}
21562201 ,
2157 ".tmp_source.zig:5:5: error: expected token ';', found 'var'",
2202 "tmp.zig:5:5: error: expected token ';', found 'var'",
21582203 );
21592204
21602205 cases.add(
......@@ -2166,7 +2211,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
21662211 \\ var bad = {};
21672212 \\}
21682213 ,
2169 ".tmp_source.zig:5:5: error: expected token ';', found 'var'",
2214 "tmp.zig:5:5: error: expected token ';', found 'var'",
21702215 );
21712216
21722217 cases.add(
......@@ -2178,7 +2223,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
21782223 \\ var bad = {};
21792224 \\}
21802225 ,
2181 ".tmp_source.zig:5:5: error: expected token ';', found 'var'",
2226 "tmp.zig:5:5: error: expected token ';', found 'var'",
21822227 );
21832228
21842229 cases.add(
......@@ -2190,7 +2235,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
21902235 \\ var bad = {};
21912236 \\}
21922237 ,
2193 ".tmp_source.zig:5:5: error: expected token ';', found 'var'",
2238 "tmp.zig:5:5: error: expected token ';', found 'var'",
21942239 );
21952240
21962241 cases.add(
......@@ -2202,7 +2247,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
22022247 \\ var bad = {};
22032248 \\}
22042249 ,
2205 ".tmp_source.zig:5:5: error: expected token ';', found 'var'",
2250 "tmp.zig:5:5: error: expected token ';', found 'var'",
22062251 );
22072252
22082253 cases.add(
......@@ -2214,7 +2259,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
22142259 \\ var bad = {};
22152260 \\}
22162261 ,
2217 ".tmp_source.zig:5:5: error: expected token ';', found 'var'",
2262 "tmp.zig:5:5: error: expected token ';', found 'var'",
22182263 );
22192264
22202265 cases.add(
......@@ -2223,7 +2268,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
22232268 \\fn a() void {}
22242269 \\export fn entry() void { a(); }
22252270 ,
2226 ".tmp_source.zig:2:1: error: redefinition of 'a'",
2271 "tmp.zig:2:1: error: redefinition of 'a'",
22272272 );
22282273
22292274 cases.add(
......@@ -2231,7 +2276,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
22312276 \\fn a() noreturn {return;}
22322277 \\export fn entry() void { a(); }
22332278 ,
2234 ".tmp_source.zig:1:18: error: expected type 'noreturn', found 'void'",
2279 "tmp.zig:1:18: error: expected type 'noreturn', found 'void'",
22352280 );
22362281
22372282 cases.add(
......@@ -2239,7 +2284,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
22392284 \\fn a() i32 {}
22402285 \\export fn entry() void { _ = a(); }
22412286 ,
2242 ".tmp_source.zig:1:12: error: expected type 'i32', found 'void'",
2287 "tmp.zig:1:12: error: expected type 'i32', found 'void'",
22432288 );
22442289
22452290 cases.add(
......@@ -2248,7 +2293,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
22482293 \\ b();
22492294 \\}
22502295 ,
2251 ".tmp_source.zig:2:5: error: use of undeclared identifier 'b'",
2296 "tmp.zig:2:5: error: use of undeclared identifier 'b'",
22522297 );
22532298
22542299 cases.add(
......@@ -2258,7 +2303,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
22582303 \\}
22592304 \\fn b(a: i32, b: i32, c: i32) void { }
22602305 ,
2261 ".tmp_source.zig:2:6: error: expected 3 arguments, found 1",
2306 "tmp.zig:2:6: error: expected 3 arguments, found 1",
22622307 );
22632308
22642309 cases.add(
......@@ -2266,7 +2311,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
22662311 \\fn a() bogus {}
22672312 \\export fn entry() void { _ = a(); }
22682313 ,
2269 ".tmp_source.zig:1:8: error: use of undeclared identifier 'bogus'",
2314 "tmp.zig:1:8: error: use of undeclared identifier 'bogus'",
22702315 );
22712316
22722317 cases.add(
......@@ -2274,7 +2319,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
22742319 \\fn a() *noreturn {}
22752320 \\export fn entry() void { _ = a(); }
22762321 ,
2277 ".tmp_source.zig:1:8: error: pointer to noreturn not allowed",
2322 "tmp.zig:1:8: error: pointer to noreturn not allowed",
22782323 );
22792324
22802325 cases.add(
......@@ -2286,7 +2331,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
22862331 \\
22872332 \\fn b() void {}
22882333 ,
2289 ".tmp_source.zig:3:5: error: unreachable code",
2334 "tmp.zig:3:5: error: unreachable code",
22902335 );
22912336
22922337 cases.add(
......@@ -2294,7 +2339,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
22942339 \\const bogus = @import("bogus-does-not-exist.zig",);
22952340 \\export fn entry() void { bogus.bogo(); }
22962341 ,
2297 ".tmp_source.zig:1:15: error: unable to find 'bogus-does-not-exist.zig'",
2342 "tmp.zig:1:15: error: unable to find 'bogus-does-not-exist.zig'",
22982343 );
22992344
23002345 cases.add(
......@@ -2305,8 +2350,8 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
23052350 \\ c;
23062351 \\}
23072352 ,
2308 ".tmp_source.zig:3:5: error: use of undeclared identifier 'b'",
2309 ".tmp_source.zig:4:5: error: use of undeclared identifier 'c'",
2353 "tmp.zig:3:5: error: use of undeclared identifier 'b'",
2354 "tmp.zig:4:5: error: use of undeclared identifier 'c'",
23102355 );
23112356
23122357 cases.add(
......@@ -2315,7 +2360,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
23152360 \\}
23162361 \\export fn entry() void { f(1, 2); }
23172362 ,
2318 ".tmp_source.zig:1:15: error: redeclaration of variable 'a'",
2363 "tmp.zig:1:15: error: redeclaration of variable 'a'",
23192364 );
23202365
23212366 cases.add(
......@@ -2325,7 +2370,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
23252370 \\ const a = 0;
23262371 \\}
23272372 ,
2328 ".tmp_source.zig:3:5: error: redeclaration of variable 'a'",
2373 "tmp.zig:3:5: error: redeclaration of variable 'a'",
23292374 );
23302375
23312376 cases.add(
......@@ -2335,7 +2380,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
23352380 \\}
23362381 \\export fn entry() void { f(1); }
23372382 ,
2338 ".tmp_source.zig:2:5: error: redeclaration of variable 'a'",
2383 "tmp.zig:2:5: error: redeclaration of variable 'a'",
23392384 );
23402385
23412386 cases.add(
......@@ -2345,7 +2390,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
23452390 \\ return a;
23462391 \\}
23472392 ,
2348 ".tmp_source.zig:3:12: error: expected type 'i32', found '[*]const u8'",
2393 "tmp.zig:3:12: error: expected type 'i32', found '[*]const u8'",
23492394 );
23502395
23512396 cases.add(
......@@ -2354,7 +2399,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
23542399 \\ if (0) {}
23552400 \\}
23562401 ,
2357 ".tmp_source.zig:2:9: error: expected type 'bool', found 'comptime_int'",
2402 "tmp.zig:2:9: error: expected type 'bool', found 'comptime_int'",
23582403 );
23592404
23602405 cases.add(
......@@ -2363,7 +2408,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
23632408 \\ const a = return;
23642409 \\}
23652410 ,
2366 ".tmp_source.zig:2:5: error: unreachable code",
2411 "tmp.zig:2:5: error: unreachable code",
23672412 );
23682413
23692414 cases.add(
......@@ -2372,7 +2417,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
23722417 \\ const a: noreturn = {};
23732418 \\}
23742419 ,
2375 ".tmp_source.zig:2:14: error: variable of type 'noreturn' not allowed",
2420 "tmp.zig:2:14: error: variable of type 'noreturn' not allowed",
23762421 );
23772422
23782423 cases.add(
......@@ -2380,7 +2425,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
23802425 \\fn f(a: noreturn) void {}
23812426 \\export fn entry() void { f(); }
23822427 ,
2383 ".tmp_source.zig:1:9: error: parameter of type 'noreturn' not allowed",
2428 "tmp.zig:1:9: error: parameter of type 'noreturn' not allowed",
23842429 );
23852430
23862431 cases.add(
......@@ -2389,7 +2434,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
23892434 \\ 3 = 3;
23902435 \\}
23912436 ,
2392 ".tmp_source.zig:2:7: error: cannot assign to constant",
2437 "tmp.zig:2:7: error: cannot assign to constant",
23932438 );
23942439
23952440 cases.add(
......@@ -2399,7 +2444,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
23992444 \\ a = 4;
24002445 \\}
24012446 ,
2402 ".tmp_source.zig:3:7: error: cannot assign to constant",
2447 "tmp.zig:3:7: error: cannot assign to constant",
24032448 );
24042449
24052450 cases.add(
......@@ -2408,7 +2453,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
24082453 \\ b = 3;
24092454 \\}
24102455 ,
2411 ".tmp_source.zig:2:5: error: use of undeclared identifier 'b'",
2456 "tmp.zig:2:5: error: use of undeclared identifier 'b'",
24122457 );
24132458
24142459 cases.add(
......@@ -2417,7 +2462,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
24172462 \\ (const a = 0);
24182463 \\}
24192464 ,
2420 ".tmp_source.zig:2:6: error: invalid token: 'const'",
2465 "tmp.zig:2:6: error: invalid token: 'const'",
24212466 );
24222467
24232468 cases.add(
......@@ -2426,7 +2471,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
24262471 \\ i[i] = i[i];
24272472 \\}
24282473 ,
2429 ".tmp_source.zig:2:5: error: use of undeclared identifier 'i'",
2474 "tmp.zig:2:5: error: use of undeclared identifier 'i'",
24302475 );
24312476
24322477 cases.add(
......@@ -2436,8 +2481,8 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
24362481 \\ bad[bad] = bad[bad];
24372482 \\}
24382483 ,
2439 ".tmp_source.zig:3:8: error: array access of non-array type 'bool'",
2440 ".tmp_source.zig:3:19: error: array access of non-array type 'bool'",
2484 "tmp.zig:3:8: error: array access of non-array type 'bool'",
2485 "tmp.zig:3:19: error: array access of non-array type 'bool'",
24412486 );
24422487
24432488 cases.add(
......@@ -2448,8 +2493,8 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
24482493 \\ array[bad] = array[bad];
24492494 \\}
24502495 ,
2451 ".tmp_source.zig:4:11: error: expected type 'usize', found 'bool'",
2452 ".tmp_source.zig:4:24: error: expected type 'usize', found 'bool'",
2496 "tmp.zig:4:11: error: expected type 'usize', found 'bool'",
2497 "tmp.zig:4:24: error: expected type 'usize', found 'bool'",
24532498 );
24542499
24552500 cases.add(
......@@ -2460,7 +2505,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
24602505 \\}
24612506 \\export fn entry() void { f(); }
24622507 ,
2463 ".tmp_source.zig:3:7: error: cannot assign to constant",
2508 "tmp.zig:3:7: error: cannot assign to constant",
24642509 );
24652510
24662511 cases.add(
......@@ -2471,26 +2516,8 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
24712516 \\}
24722517 \\export fn entry() void { f(true); }
24732518 ,
2474 ".tmp_source.zig:2:42: error: integer value 1 cannot be implicitly casted to type 'void'",
2475 ".tmp_source.zig:3:15: error: incompatible types: 'i32' and 'void'",
2476 );
2477
2478 cases.add(
2479 "direct struct loop",
2480 \\const A = struct { a : A, };
2481 \\export fn entry() usize { return @sizeOf(A); }
2482 ,
2483 ".tmp_source.zig:1:11: error: struct 'A' contains itself",
2484 );
2485
2486 cases.add(
2487 "indirect struct loop",
2488 \\const A = struct { b : B, };
2489 \\const B = struct { c : C, };
2490 \\const C = struct { a : A, };
2491 \\export fn entry() usize { return @sizeOf(A); }
2492 ,
2493 ".tmp_source.zig:1:11: error: struct 'A' contains itself",
2519 "tmp.zig:2:42: error: integer value 1 cannot be implicitly casted to type 'void'",
2520 "tmp.zig:3:15: error: incompatible types: 'i32' and 'void'",
24942521 );
24952522
24962523 cases.add(
......@@ -2502,8 +2529,8 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
25022529 \\ const y = a.bar;
25032530 \\}
25042531 ,
2505 ".tmp_source.zig:4:6: error: no member named 'foo' in struct 'A'",
2506 ".tmp_source.zig:5:16: error: no member named 'bar' in struct 'A'",
2532 "tmp.zig:4:6: error: no member named 'foo' in struct 'A'",
2533 "tmp.zig:5:16: error: no member named 'bar' in struct 'A'",
25072534 );
25082535
25092536 cases.add(
......@@ -2511,7 +2538,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
25112538 \\const A = struct { x : i32, };
25122539 \\const A = struct { y : i32, };
25132540 ,
2514 ".tmp_source.zig:2:1: error: redefinition of 'A'",
2541 "tmp.zig:2:1: error: redefinition of 'A'",
25152542 );
25162543
25172544 cases.add(
......@@ -2519,7 +2546,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
25192546 \\const A = enum {};
25202547 \\const A = enum {};
25212548 ,
2522 ".tmp_source.zig:2:1: error: redefinition of 'A'",
2549 "tmp.zig:2:1: error: redefinition of 'A'",
25232550 );
25242551
25252552 cases.add(
......@@ -2527,8 +2554,8 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
25272554 \\var a : i32 = 1;
25282555 \\var a : i32 = 2;
25292556 ,
2530 ".tmp_source.zig:2:1: error: redefinition of 'a'",
2531 ".tmp_source.zig:1:1: note: previous definition is here",
2557 "tmp.zig:2:1: error: redefinition of 'a'",
2558 "tmp.zig:1:1: note: previous definition is here",
25322559 );
25332560
25342561 cases.add(
......@@ -2547,7 +2574,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
25472574 \\ };
25482575 \\}
25492576 ,
2550 ".tmp_source.zig:11:9: error: duplicate field",
2577 "tmp.zig:11:9: error: duplicate field",
25512578 );
25522579
25532580 cases.add(
......@@ -2566,7 +2593,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
25662593 \\ };
25672594 \\}
25682595 ,
2569 ".tmp_source.zig:9:17: error: missing field: 'x'",
2596 "tmp.zig:9:17: error: missing field: 'x'",
25702597 );
25712598
25722599 cases.add(
......@@ -2584,7 +2611,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
25842611 \\ };
25852612 \\}
25862613 ,
2587 ".tmp_source.zig:10:9: error: no member named 'foo' in struct 'A'",
2614 "tmp.zig:10:9: error: no member named 'foo' in struct 'A'",
25882615 );
25892616
25902617 cases.add(
......@@ -2593,7 +2620,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
25932620 \\ break;
25942621 \\}
25952622 ,
2596 ".tmp_source.zig:2:5: error: break expression outside loop",
2623 "tmp.zig:2:5: error: break expression outside loop",
25972624 );
25982625
25992626 cases.add(
......@@ -2602,7 +2629,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
26022629 \\ continue;
26032630 \\}
26042631 ,
2605 ".tmp_source.zig:2:5: error: continue expression outside loop",
2632 "tmp.zig:2:5: error: continue expression outside loop",
26062633 );
26072634
26082635 cases.add(
......@@ -2611,7 +2638,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
26112638 \\ if (true) |x| { }
26122639 \\}
26132640 ,
2614 ".tmp_source.zig:2:9: error: expected optional type, found 'bool'",
2641 "tmp.zig:2:9: error: expected optional type, found 'bool'",
26152642 );
26162643
26172644 cases.add(
......@@ -2621,7 +2648,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
26212648 \\}
26222649 \\export fn entry() void { _ = f(); }
26232650 ,
2624 ".tmp_source.zig:2:15: error: unreachable code",
2651 "tmp.zig:2:15: error: unreachable code",
26252652 );
26262653
26272654 cases.add(
......@@ -2630,7 +2657,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
26302657 \\}
26312658 \\export fn entry() void { _ = f(); }
26322659 ,
2633 ".tmp_source.zig:1:8: error: invalid builtin function: 'bogus'",
2660 "tmp.zig:1:8: error: invalid builtin function: 'bogus'",
26342661 );
26352662
26362663 cases.add(
......@@ -2638,7 +2665,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
26382665 \\fn f(noalias x: i32) void {}
26392666 \\export fn entry() void { f(1234); }
26402667 ,
2641 ".tmp_source.zig:1:6: error: noalias on non-pointer parameter",
2668 "tmp.zig:1:6: error: noalias on non-pointer parameter",
26422669 );
26432670
26442671 cases.add(
......@@ -2646,7 +2673,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
26462673 \\const foo = []u16{.x = 1024,};
26472674 \\export fn entry() usize { return @sizeOf(@typeOf(foo)); }
26482675 ,
2649 ".tmp_source.zig:1:18: error: type '[]u16' does not support struct initialization syntax",
2676 "tmp.zig:1:18: error: type '[]u16' does not support struct initialization syntax",
26502677 );
26512678
26522679 cases.add(
......@@ -2656,7 +2683,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
26562683 \\ return 1;
26572684 \\}
26582685 ,
2659 ".tmp_source.zig:1:1: error: variable of type 'type' must be constant",
2686 "tmp.zig:1:1: error: variable of type 'type' must be constant",
26602687 );
26612688
26622689 cases.add(
......@@ -2672,10 +2699,10 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
26722699 \\ f(1234);
26732700 \\}
26742701 ,
2675 ".tmp_source.zig:4:6: error: redefinition of 'Foo'",
2676 ".tmp_source.zig:1:1: note: previous definition is here",
2677 ".tmp_source.zig:5:5: error: redefinition of 'Bar'",
2678 ".tmp_source.zig:2:1: note: previous definition is here",
2702 "tmp.zig:4:6: error: redefinition of 'Foo'",
2703 "tmp.zig:1:1: note: previous definition is here",
2704 "tmp.zig:5:5: error: redefinition of 'Bar'",
2705 "tmp.zig:2:1: note: previous definition is here",
26792706 );
26802707
26812708 cases.add(
......@@ -2696,7 +2723,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
26962723 \\
26972724 \\export fn entry() usize { return @sizeOf(@typeOf(f)); }
26982725 ,
2699 ".tmp_source.zig:8:5: error: enumeration value 'Number.Four' not handled in switch",
2726 "tmp.zig:8:5: error: enumeration value 'Number.Four' not handled in switch",
27002727 );
27012728
27022729 cases.add(
......@@ -2719,8 +2746,8 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
27192746 \\
27202747 \\export fn entry() usize { return @sizeOf(@typeOf(f)); }
27212748 ,
2722 ".tmp_source.zig:13:15: error: duplicate switch value",
2723 ".tmp_source.zig:10:15: note: other value is here",
2749 "tmp.zig:13:15: error: duplicate switch value",
2750 "tmp.zig:10:15: note: other value is here",
27242751 );
27252752
27262753 cases.add(
......@@ -2744,8 +2771,8 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
27442771 \\
27452772 \\export fn entry() usize { return @sizeOf(@typeOf(f)); }
27462773 ,
2747 ".tmp_source.zig:13:15: error: duplicate switch value",
2748 ".tmp_source.zig:10:15: note: other value is here",
2774 "tmp.zig:13:15: error: duplicate switch value",
2775 "tmp.zig:10:15: note: other value is here",
27492776 );
27502777
27512778 cases.add(
......@@ -2761,7 +2788,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
27612788 \\ f(1234);
27622789 \\}
27632790 ,
2764 ".tmp_source.zig:5:9: error: multiple else prongs in switch expression",
2791 "tmp.zig:5:9: error: multiple else prongs in switch expression",
27652792 );
27662793
27672794 cases.add(
......@@ -2773,7 +2800,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
27732800 \\}
27742801 \\export fn entry() usize { return @sizeOf(@typeOf(foo)); }
27752802 ,
2776 ".tmp_source.zig:2:5: error: switch must handle all possibilities",
2803 "tmp.zig:2:5: error: switch must handle all possibilities",
27772804 );
27782805
27792806 cases.add(
......@@ -2788,8 +2815,8 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
27882815 \\}
27892816 \\export fn entry() usize { return @sizeOf(@typeOf(foo)); }
27902817 ,
2791 ".tmp_source.zig:6:9: error: duplicate switch value",
2792 ".tmp_source.zig:5:14: note: previous value is here",
2818 "tmp.zig:6:9: error: duplicate switch value",
2819 "tmp.zig:5:14: note: previous value is here",
27932820 );
27942821
27952822 cases.add(
......@@ -2802,7 +2829,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
28022829 \\const y: u8 = 100;
28032830 \\export fn entry() usize { return @sizeOf(@typeOf(foo)); }
28042831 ,
2805 ".tmp_source.zig:2:5: error: else prong required when switching on type '*u8'",
2832 "tmp.zig:2:5: error: else prong required when switching on type '*u8'",
28062833 );
28072834
28082835 cases.add(
......@@ -2811,7 +2838,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
28112838 \\const x = foo();
28122839 \\export fn entry() i32 { return x; }
28132840 ,
2814 ".tmp_source.zig:2:11: error: unable to evaluate constant expression",
2841 "tmp.zig:2:11: error: unable to evaluate constant expression",
28152842 );
28162843
28172844 cases.add(
......@@ -2822,7 +2849,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
28222849 \\
28232850 \\export fn entry() usize { return @sizeOf(@typeOf(a)); }
28242851 ,
2825 ".tmp_source.zig:3:11: error: expected array or C string literal, found 'usize'",
2852 "tmp.zig:3:11: error: expected array or C string literal, found 'usize'",
28262853 );
28272854
28282855 cases.add(
......@@ -2833,7 +2860,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
28332860 \\var s: [10]u8 = undefined;
28342861 \\export fn entry() usize { return @sizeOf(@typeOf(f)); }
28352862 ,
2836 ".tmp_source.zig:2:12: error: unable to evaluate constant expression",
2863 "tmp.zig:2:12: error: unable to evaluate constant expression",
28372864 );
28382865
28392866 cases.add(
......@@ -2841,7 +2868,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
28412868 \\const c = @cImport(@cInclude("bogus.h"));
28422869 \\export fn entry() usize { return @sizeOf(@typeOf(c.bogo)); }
28432870 ,
2844 ".tmp_source.zig:1:11: error: C import failed",
2871 "tmp.zig:1:11: error: C import failed",
28452872 ".h:1:10: note: 'bogus.h' file not found",
28462873 );
28472874
......@@ -2852,7 +2879,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
28522879 \\fn foo() *const i32 { return y; }
28532880 \\export fn entry() usize { return @sizeOf(@typeOf(foo)); }
28542881 ,
2855 ".tmp_source.zig:3:30: error: expected type '*const i32', found '*const comptime_int'",
2882 "tmp.zig:3:30: error: expected type '*const i32', found '*const comptime_int'",
28562883 );
28572884
28582885 cases.add(
......@@ -2860,7 +2887,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
28602887 \\const x : u8 = 300;
28612888 \\export fn entry() usize { return @sizeOf(@typeOf(x)); }
28622889 ,
2863 ".tmp_source.zig:1:16: error: integer value 300 cannot be implicitly casted to type 'u8'",
2890 "tmp.zig:1:16: error: integer value 300 cannot be implicitly casted to type 'u8'",
28642891 );
28652892
28662893 cases.add(
......@@ -2871,8 +2898,8 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
28712898 \\}
28722899 \\export fn entry() u16 { return f(); }
28732900 ,
2874 ".tmp_source.zig:3:14: error: RHS of shift is too large for LHS type",
2875 ".tmp_source.zig:3:17: note: value 8 cannot fit into type u3",
2901 "tmp.zig:3:14: error: RHS of shift is too large for LHS type",
2902 "tmp.zig:3:17: note: value 8 cannot fit into type u3",
28762903 );
28772904
28782905 cases.add(
......@@ -2880,7 +2907,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
28802907 \\const x = 2 == 2.0;
28812908 \\export fn entry() usize { return @sizeOf(@typeOf(x)); }
28822909 ,
2883 ".tmp_source.zig:1:11: error: integer value 2 cannot be implicitly casted to type 'comptime_float'",
2910 "tmp.zig:1:11: error: integer value 2 cannot be implicitly casted to type 'comptime_float'",
28842911 );
28852912
28862913 cases.add(
......@@ -2909,7 +2936,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
29092936 \\
29102937 \\export fn entry() usize { return @sizeOf(@typeOf(f)); }
29112938 ,
2912 ".tmp_source.zig:20:34: error: expected 1 arguments, found 0",
2939 "tmp.zig:20:34: error: expected 1 arguments, found 0",
29132940 );
29142941
29152942 cases.add(
......@@ -2918,8 +2945,8 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
29182945 \\fn f(i32) void {}
29192946 \\export fn entry() usize { return @sizeOf(@typeOf(f)); }
29202947 ,
2921 ".tmp_source.zig:1:1: error: missing function name",
2922 ".tmp_source.zig:2:6: error: missing parameter name",
2948 "tmp.zig:1:1: error: missing function name",
2949 "tmp.zig:2:6: error: missing parameter name",
29232950 );
29242951
29252952 cases.add(
......@@ -2930,7 +2957,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
29302957 \\fn c() i32 {return 2;}
29312958 \\export fn entry() usize { return @sizeOf(@typeOf(fns)); }
29322959 ,
2933 ".tmp_source.zig:1:27: error: expected type 'fn() void', found 'fn() i32'",
2960 "tmp.zig:1:27: error: expected type 'fn() void', found 'fn() i32'",
29342961 );
29352962
29362963 cases.add(
......@@ -2942,7 +2969,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
29422969 \\
29432970 \\export fn entry() usize { return @sizeOf(@typeOf(fns)); }
29442971 ,
2945 ".tmp_source.zig:1:36: error: expected type 'fn(i32) i32', found 'extern fn(i32) i32'",
2972 "tmp.zig:1:36: error: expected type 'fn(i32) i32', found 'extern fn(i32) i32'",
29462973 );
29472974
29482975 cases.add(
......@@ -2951,16 +2978,8 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
29512978 \\fn func() bogus {}
29522979 \\export fn entry() usize { return @sizeOf(@typeOf(func)); }
29532980 ,
2954 ".tmp_source.zig:2:1: error: redefinition of 'func'",
2955 ".tmp_source.zig:1:11: error: use of undeclared identifier 'bogus'",
2956 );
2957
2958 cases.add(
2959 "bogus compile var",
2960 \\const x = @import("builtin").bogus;
2961 \\export fn entry() usize { return @sizeOf(@typeOf(x)); }
2962 ,
2963 ".tmp_source.zig:1:29: error: no member named 'bogus' in '",
2981 "tmp.zig:2:1: error: redefinition of 'func'",
2982 "tmp.zig:1:11: error: use of undeclared identifier 'bogus'",
29642983 );
29652984
29662985 cases.add(
......@@ -2973,9 +2992,9 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
29732992 \\
29742993 \\export fn entry() usize { return @sizeOf(@typeOf(Foo)); }
29752994 ,
2976 ".tmp_source.zig:5:25: error: unable to evaluate constant expression",
2977 ".tmp_source.zig:2:12: note: called from here",
2978 ".tmp_source.zig:2:8: note: called from here",
2995 "tmp.zig:5:25: error: unable to evaluate constant expression",
2996 "tmp.zig:2:12: note: called from here",
2997 "tmp.zig:2:8: note: called from here",
29792998 );
29802999
29813000 cases.add(
......@@ -2987,7 +3006,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
29873006 \\
29883007 \\export fn entry() usize { return @sizeOf(@typeOf(x)); }
29893008 ,
2990 ".tmp_source.zig:4:28: error: invalid operands to binary expression: 'Foo' and 'Foo'",
3009 "tmp.zig:4:28: error: invalid operands to binary expression: 'Foo' and 'Foo'",
29913010 );
29923011
29933012 cases.add(
......@@ -3002,10 +3021,10 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
30023021 \\export fn entry3() usize { return @sizeOf(@typeOf(int_x)); }
30033022 \\export fn entry4() usize { return @sizeOf(@typeOf(float_x)); }
30043023 ,
3005 ".tmp_source.zig:1:21: error: division by zero",
3006 ".tmp_source.zig:2:25: error: division by zero",
3007 ".tmp_source.zig:3:22: error: division by zero",
3008 ".tmp_source.zig:4:26: error: division by zero",
3024 "tmp.zig:1:21: error: division by zero",
3025 "tmp.zig:2:25: error: division by zero",
3026 "tmp.zig:3:22: error: division by zero",
3027 "tmp.zig:4:26: error: division by zero",
30093028 );
30103029
30113030 cases.add(
......@@ -3015,7 +3034,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
30153034 \\
30163035 \\export fn entry() usize { return @sizeOf(@typeOf(foo)); }
30173036 ,
3018 ".tmp_source.zig:1:15: error: newline not allowed in string literal",
3037 "tmp.zig:1:15: error: newline not allowed in string literal",
30193038 );
30203039
30213040 cases.add(
......@@ -3025,7 +3044,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
30253044 \\
30263045 \\export fn entry() usize { return @sizeOf(@typeOf(invalid)); }
30273046 ,
3028 ".tmp_source.zig:2:21: error: operator not allowed for type 'fn() void'",
3047 "tmp.zig:2:21: error: operator not allowed for type 'fn() void'",
30293048 );
30303049
30313050 cases.add(
......@@ -3037,7 +3056,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
30373056 \\
30383057 \\export fn entry() usize { return @sizeOf(@typeOf(test1)); }
30393058 ,
3040 ".tmp_source.zig:3:16: error: unable to evaluate constant expression",
3059 "tmp.zig:3:16: error: unable to evaluate constant expression",
30413060 );
30423061
30433062 cases.add(
......@@ -3046,7 +3065,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
30463065 \\
30473066 \\export fn entry() usize { return @sizeOf(@typeOf(a)); }
30483067 ,
3049 ".tmp_source.zig:1:16: error: expected type '*u8', found '(null)'",
3068 "tmp.zig:1:16: error: expected type '*u8', found '(null)'",
30503069 );
30513070
30523071 cases.add(
......@@ -3056,7 +3075,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
30563075 \\ const pointer = &array[0];
30573076 \\}
30583077 ,
3059 ".tmp_source.zig:3:27: error: index 0 outside array of size 0",
3078 "tmp.zig:3:27: error: index 0 outside array of size 0",
30603079 );
30613080
30623081 cases.add(
......@@ -3068,8 +3087,8 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
30683087 \\
30693088 \\export fn entry() usize { return @sizeOf(@typeOf(y)); }
30703089 ,
3071 ".tmp_source.zig:3:14: error: division by zero",
3072 ".tmp_source.zig:1:14: note: called from here",
3090 "tmp.zig:3:14: error: division by zero",
3091 "tmp.zig:1:14: note: called from here",
30733092 );
30743093
30753094 cases.add(
......@@ -3078,7 +3097,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
30783097 \\
30793098 \\export fn entry() usize { return @sizeOf(@typeOf(x)); }
30803099 ,
3081 ".tmp_source.zig:1:15: error: use of undefined value here causes undefined behavior",
3100 "tmp.zig:1:15: error: use of undefined value here causes undefined behavior",
30823101 );
30833102
30843103 cases.add(
......@@ -3088,7 +3107,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
30883107 \\ _ = a / a;
30893108 \\}
30903109 ,
3091 ".tmp_source.zig:3:9: error: use of undefined value here causes undefined behavior",
3110 "tmp.zig:3:9: error: use of undefined value here causes undefined behavior",
30923111 );
30933112
30943113 cases.add(
......@@ -3098,7 +3117,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
30983117 \\ a /= a;
30993118 \\}
31003119 ,
3101 ".tmp_source.zig:3:5: error: use of undefined value here causes undefined behavior",
3120 "tmp.zig:3:5: error: use of undefined value here causes undefined behavior",
31023121 );
31033122
31043123 cases.add(
......@@ -3108,7 +3127,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
31083127 \\ _ = a % a;
31093128 \\}
31103129 ,
3111 ".tmp_source.zig:3:9: error: use of undefined value here causes undefined behavior",
3130 "tmp.zig:3:9: error: use of undefined value here causes undefined behavior",
31123131 );
31133132
31143133 cases.add(
......@@ -3118,7 +3137,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
31183137 \\ a %= a;
31193138 \\}
31203139 ,
3121 ".tmp_source.zig:3:5: error: use of undefined value here causes undefined behavior",
3140 "tmp.zig:3:5: error: use of undefined value here causes undefined behavior",
31223141 );
31233142
31243143 cases.add(
......@@ -3128,7 +3147,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
31283147 \\ _ = a + a;
31293148 \\}
31303149 ,
3131 ".tmp_source.zig:3:9: error: use of undefined value here causes undefined behavior",
3150 "tmp.zig:3:9: error: use of undefined value here causes undefined behavior",
31323151 );
31333152
31343153 cases.add(
......@@ -3138,7 +3157,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
31383157 \\ a += a;
31393158 \\}
31403159 ,
3141 ".tmp_source.zig:3:5: error: use of undefined value here causes undefined behavior",
3160 "tmp.zig:3:5: error: use of undefined value here causes undefined behavior",
31423161 );
31433162
31443163 cases.add(
......@@ -3148,7 +3167,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
31483167 \\ _ = a +% a;
31493168 \\}
31503169 ,
3151 ".tmp_source.zig:3:9: error: use of undefined value here causes undefined behavior",
3170 "tmp.zig:3:9: error: use of undefined value here causes undefined behavior",
31523171 );
31533172
31543173 cases.add(
......@@ -3158,7 +3177,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
31583177 \\ a +%= a;
31593178 \\}
31603179 ,
3161 ".tmp_source.zig:3:5: error: use of undefined value here causes undefined behavior",
3180 "tmp.zig:3:5: error: use of undefined value here causes undefined behavior",
31623181 );
31633182
31643183 cases.add(
......@@ -3168,7 +3187,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
31683187 \\ _ = a - a;
31693188 \\}
31703189 ,
3171 ".tmp_source.zig:3:9: error: use of undefined value here causes undefined behavior",
3190 "tmp.zig:3:9: error: use of undefined value here causes undefined behavior",
31723191 );
31733192
31743193 cases.add(
......@@ -3178,7 +3197,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
31783197 \\ a -= a;
31793198 \\}
31803199 ,
3181 ".tmp_source.zig:3:5: error: use of undefined value here causes undefined behavior",
3200 "tmp.zig:3:5: error: use of undefined value here causes undefined behavior",
31823201 );
31833202
31843203 cases.add(
......@@ -3188,7 +3207,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
31883207 \\ _ = a -% a;
31893208 \\}
31903209 ,
3191 ".tmp_source.zig:3:9: error: use of undefined value here causes undefined behavior",
3210 "tmp.zig:3:9: error: use of undefined value here causes undefined behavior",
31923211 );
31933212
31943213 cases.add(
......@@ -3198,7 +3217,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
31983217 \\ a -%= a;
31993218 \\}
32003219 ,
3201 ".tmp_source.zig:3:5: error: use of undefined value here causes undefined behavior",
3220 "tmp.zig:3:5: error: use of undefined value here causes undefined behavior",
32023221 );
32033222
32043223 cases.add(
......@@ -3208,7 +3227,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
32083227 \\ _ = a * a;
32093228 \\}
32103229 ,
3211 ".tmp_source.zig:3:9: error: use of undefined value here causes undefined behavior",
3230 "tmp.zig:3:9: error: use of undefined value here causes undefined behavior",
32123231 );
32133232
32143233 cases.add(
......@@ -3218,7 +3237,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
32183237 \\ a *= a;
32193238 \\}
32203239 ,
3221 ".tmp_source.zig:3:5: error: use of undefined value here causes undefined behavior",
3240 "tmp.zig:3:5: error: use of undefined value here causes undefined behavior",
32223241 );
32233242
32243243 cases.add(
......@@ -3228,7 +3247,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
32283247 \\ _ = a *% a;
32293248 \\}
32303249 ,
3231 ".tmp_source.zig:3:9: error: use of undefined value here causes undefined behavior",
3250 "tmp.zig:3:9: error: use of undefined value here causes undefined behavior",
32323251 );
32333252
32343253 cases.add(
......@@ -3238,7 +3257,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
32383257 \\ a *%= a;
32393258 \\}
32403259 ,
3241 ".tmp_source.zig:3:5: error: use of undefined value here causes undefined behavior",
3260 "tmp.zig:3:5: error: use of undefined value here causes undefined behavior",
32423261 );
32433262
32443263 cases.add(
......@@ -3248,7 +3267,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
32483267 \\ _ = a << 2;
32493268 \\}
32503269 ,
3251 ".tmp_source.zig:3:9: error: use of undefined value here causes undefined behavior",
3270 "tmp.zig:3:9: error: use of undefined value here causes undefined behavior",
32523271 );
32533272
32543273 cases.add(
......@@ -3258,7 +3277,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
32583277 \\ a <<= 2;
32593278 \\}
32603279 ,
3261 ".tmp_source.zig:3:5: error: use of undefined value here causes undefined behavior",
3280 "tmp.zig:3:5: error: use of undefined value here causes undefined behavior",
32623281 );
32633282
32643283 cases.add(
......@@ -3268,7 +3287,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
32683287 \\ _ = a >> 2;
32693288 \\}
32703289 ,
3271 ".tmp_source.zig:3:9: error: use of undefined value here causes undefined behavior",
3290 "tmp.zig:3:9: error: use of undefined value here causes undefined behavior",
32723291 );
32733292
32743293 cases.add(
......@@ -3278,7 +3297,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
32783297 \\ a >>= 2;
32793298 \\}
32803299 ,
3281 ".tmp_source.zig:3:5: error: use of undefined value here causes undefined behavior",
3300 "tmp.zig:3:5: error: use of undefined value here causes undefined behavior",
32823301 );
32833302
32843303 cases.add(
......@@ -3288,7 +3307,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
32883307 \\ _ = a & a;
32893308 \\}
32903309 ,
3291 ".tmp_source.zig:3:9: error: use of undefined value here causes undefined behavior",
3310 "tmp.zig:3:9: error: use of undefined value here causes undefined behavior",
32923311 );
32933312
32943313 cases.add(
......@@ -3298,7 +3317,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
32983317 \\ a &= a;
32993318 \\}
33003319 ,
3301 ".tmp_source.zig:3:5: error: use of undefined value here causes undefined behavior",
3320 "tmp.zig:3:5: error: use of undefined value here causes undefined behavior",
33023321 );
33033322
33043323 cases.add(
......@@ -3308,7 +3327,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
33083327 \\ _ = a | a;
33093328 \\}
33103329 ,
3311 ".tmp_source.zig:3:9: error: use of undefined value here causes undefined behavior",
3330 "tmp.zig:3:9: error: use of undefined value here causes undefined behavior",
33123331 );
33133332
33143333 cases.add(
......@@ -3318,7 +3337,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
33183337 \\ a |= a;
33193338 \\}
33203339 ,
3321 ".tmp_source.zig:3:5: error: use of undefined value here causes undefined behavior",
3340 "tmp.zig:3:5: error: use of undefined value here causes undefined behavior",
33223341 );
33233342
33243343 cases.add(
......@@ -3328,7 +3347,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
33283347 \\ _ = a ^ a;
33293348 \\}
33303349 ,
3331 ".tmp_source.zig:3:9: error: use of undefined value here causes undefined behavior",
3350 "tmp.zig:3:9: error: use of undefined value here causes undefined behavior",
33323351 );
33333352
33343353 cases.add(
......@@ -3338,7 +3357,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
33383357 \\ a ^= a;
33393358 \\}
33403359 ,
3341 ".tmp_source.zig:3:5: error: use of undefined value here causes undefined behavior",
3360 "tmp.zig:3:5: error: use of undefined value here causes undefined behavior",
33423361 );
33433362
33443363 cases.add(
......@@ -3348,7 +3367,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
33483367 \\ _ = a == a;
33493368 \\}
33503369 ,
3351 ".tmp_source.zig:3:9: error: use of undefined value here causes undefined behavior",
3370 "tmp.zig:3:9: error: use of undefined value here causes undefined behavior",
33523371 );
33533372
33543373 cases.add(
......@@ -3358,7 +3377,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
33583377 \\ _ = a != a;
33593378 \\}
33603379 ,
3361 ".tmp_source.zig:3:9: error: use of undefined value here causes undefined behavior",
3380 "tmp.zig:3:9: error: use of undefined value here causes undefined behavior",
33623381 );
33633382
33643383 cases.add(
......@@ -3368,7 +3387,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
33683387 \\ _ = a > a;
33693388 \\}
33703389 ,
3371 ".tmp_source.zig:3:9: error: use of undefined value here causes undefined behavior",
3390 "tmp.zig:3:9: error: use of undefined value here causes undefined behavior",
33723391 );
33733392
33743393 cases.add(
......@@ -3378,7 +3397,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
33783397 \\ _ = a >= a;
33793398 \\}
33803399 ,
3381 ".tmp_source.zig:3:9: error: use of undefined value here causes undefined behavior",
3400 "tmp.zig:3:9: error: use of undefined value here causes undefined behavior",
33823401 );
33833402
33843403 cases.add(
......@@ -3388,7 +3407,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
33883407 \\ _ = a < a;
33893408 \\}
33903409 ,
3391 ".tmp_source.zig:3:9: error: use of undefined value here causes undefined behavior",
3410 "tmp.zig:3:9: error: use of undefined value here causes undefined behavior",
33923411 );
33933412
33943413 cases.add(
......@@ -3398,7 +3417,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
33983417 \\ _ = a <= a;
33993418 \\}
34003419 ,
3401 ".tmp_source.zig:3:9: error: use of undefined value here causes undefined behavior",
3420 "tmp.zig:3:9: error: use of undefined value here causes undefined behavior",
34023421 );
34033422
34043423 cases.add(
......@@ -3408,7 +3427,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
34083427 \\ _ = a and a;
34093428 \\}
34103429 ,
3411 ".tmp_source.zig:3:9: error: use of undefined value here causes undefined behavior",
3430 "tmp.zig:3:9: error: use of undefined value here causes undefined behavior",
34123431 );
34133432
34143433 cases.add(
......@@ -3418,7 +3437,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
34183437 \\ _ = a or a;
34193438 \\}
34203439 ,
3421 ".tmp_source.zig:3:9: error: use of undefined value here causes undefined behavior",
3440 "tmp.zig:3:9: error: use of undefined value here causes undefined behavior",
34223441 );
34233442
34243443 cases.add(
......@@ -3428,7 +3447,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
34283447 \\ _ = -a;
34293448 \\}
34303449 ,
3431 ".tmp_source.zig:3:10: error: use of undefined value here causes undefined behavior",
3450 "tmp.zig:3:10: error: use of undefined value here causes undefined behavior",
34323451 );
34333452
34343453 cases.add(
......@@ -3438,7 +3457,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
34383457 \\ _ = -%a;
34393458 \\}
34403459 ,
3441 ".tmp_source.zig:3:11: error: use of undefined value here causes undefined behavior",
3460 "tmp.zig:3:11: error: use of undefined value here causes undefined behavior",
34423461 );
34433462
34443463 cases.add(
......@@ -3448,7 +3467,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
34483467 \\ _ = ~a;
34493468 \\}
34503469 ,
3451 ".tmp_source.zig:3:10: error: use of undefined value here causes undefined behavior",
3470 "tmp.zig:3:10: error: use of undefined value here causes undefined behavior",
34523471 );
34533472
34543473 cases.add(
......@@ -3458,7 +3477,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
34583477 \\ _ = !a;
34593478 \\}
34603479 ,
3461 ".tmp_source.zig:3:10: error: use of undefined value here causes undefined behavior",
3480 "tmp.zig:3:10: error: use of undefined value here causes undefined behavior",
34623481 );
34633482
34643483 cases.add(
......@@ -3468,7 +3487,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
34683487 \\ _ = a orelse false;
34693488 \\}
34703489 ,
3471 ".tmp_source.zig:3:11: error: use of undefined value here causes undefined behavior",
3490 "tmp.zig:3:11: error: use of undefined value here causes undefined behavior",
34723491 );
34733492
34743493 cases.add(
......@@ -3478,7 +3497,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
34783497 \\ _ = a catch |err| false;
34793498 \\}
34803499 ,
3481 ".tmp_source.zig:3:11: error: use of undefined value here causes undefined behavior",
3500 "tmp.zig:3:11: error: use of undefined value here causes undefined behavior",
34823501 );
34833502
34843503 cases.add(
......@@ -3488,7 +3507,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
34883507 \\ _ = a.*;
34893508 \\}
34903509 ,
3491 ".tmp_source.zig:3:9: error: attempt to dereference undefined value",
3510 "tmp.zig:3:9: error: attempt to dereference undefined value",
34923511 );
34933512
34943513 cases.add(
......@@ -3500,8 +3519,8 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
35003519 \\
35013520 \\export fn entry() usize { return @sizeOf(@typeOf(seventh_fib_number)); }
35023521 ,
3503 ".tmp_source.zig:3:21: error: evaluation exceeded 1000 backwards branches",
3504 ".tmp_source.zig:3:21: note: called from here",
3522 "tmp.zig:3:21: error: evaluation exceeded 1000 backwards branches",
3523 "tmp.zig:3:21: note: called from here",
35053524 );
35063525
35073526 cases.add(
......@@ -3510,7 +3529,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
35103529 \\
35113530 \\export fn entry() usize { return @sizeOf(@typeOf(resource)); }
35123531 ,
3513 ".tmp_source.zig:1:29: error: unable to find '",
3532 "tmp.zig:1:29: error: unable to find '",
35143533 "bogus.txt'",
35153534 );
35163535
......@@ -3524,7 +3543,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
35243543 \\
35253544 \\export fn entry() usize { return @sizeOf(@typeOf(a)); }
35263545 ,
3527 ".tmp_source.zig:4:21: error: unable to evaluate constant expression",
3546 "tmp.zig:4:21: error: unable to evaluate constant expression",
35283547 );
35293548
35303549 cases.add(
......@@ -3541,8 +3560,8 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
35413560 \\
35423561 \\export fn entry() usize { return @sizeOf(@typeOf(a)); }
35433562 ,
3544 ".tmp_source.zig:6:24: error: unable to evaluate constant expression",
3545 ".tmp_source.zig:4:17: note: called from here",
3563 "tmp.zig:6:24: error: unable to evaluate constant expression",
3564 "tmp.zig:4:17: note: called from here",
35463565 );
35473566
35483567 cases.add(
......@@ -3554,7 +3573,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
35543573 \\ bad_fn_call();
35553574 \\}
35563575 ,
3557 ".tmp_source.zig:5:5: error: use of undeclared identifier 'bad_fn_call'",
3576 "tmp.zig:5:5: error: use of undeclared identifier 'bad_fn_call'",
35583577 );
35593578
35603579 cases.add(
......@@ -3573,8 +3592,8 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
35733592 \\export fn entry1() usize { return @sizeOf(@typeOf(bad_eql_1)); }
35743593 \\export fn entry2() usize { return @sizeOf(@typeOf(bad_eql_2)); }
35753594 ,
3576 ".tmp_source.zig:2:14: error: operator not allowed for type '[]u8'",
3577 ".tmp_source.zig:9:16: error: operator not allowed for type 'EnumWithData'",
3595 "tmp.zig:2:14: error: operator not allowed for type '[]u8'",
3596 "tmp.zig:9:16: error: operator not allowed for type 'EnumWithData'",
35783597 );
35793598
35803599 cases.add(
......@@ -3590,7 +3609,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
35903609 \\ return 2;
35913610 \\}
35923611 ,
3593 ".tmp_source.zig:2:15: error: values of type 'comptime_int' must be comptime known",
3612 "tmp.zig:2:15: error: values of type 'comptime_int' must be comptime known",
35943613 );
35953614
35963615 cases.add(
......@@ -3601,7 +3620,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
36013620 \\ while (!@cmpxchgWeak(i32, &x, 1234, 5678, AtomicOrder.Monotonic, AtomicOrder.SeqCst)) {}
36023621 \\}
36033622 ,
3604 ".tmp_source.zig:4:81: error: failure atomic ordering must be no stricter than success",
3623 "tmp.zig:4:81: error: failure atomic ordering must be no stricter than success",
36053624 );
36063625
36073626 cases.add(
......@@ -3612,7 +3631,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
36123631 \\ while (!@cmpxchgWeak(i32, &x, 1234, 5678, AtomicOrder.Unordered, AtomicOrder.Unordered)) {}
36133632 \\}
36143633 ,
3615 ".tmp_source.zig:4:58: error: success atomic ordering must be Monotonic or stricter",
3634 "tmp.zig:4:58: error: success atomic ordering must be Monotonic or stricter",
36163635 );
36173636
36183637 cases.add(
......@@ -3624,8 +3643,8 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
36243643 \\
36253644 \\export fn entry() usize { return @sizeOf(@typeOf(y)); }
36263645 ,
3627 ".tmp_source.zig:3:12: error: negation caused overflow",
3628 ".tmp_source.zig:1:14: note: called from here",
3646 "tmp.zig:3:12: error: negation caused overflow",
3647 "tmp.zig:1:14: note: called from here",
36293648 );
36303649
36313650 cases.add(
......@@ -3637,8 +3656,8 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
36373656 \\
36383657 \\export fn entry() usize { return @sizeOf(@typeOf(y)); }
36393658 ,
3640 ".tmp_source.zig:3:14: error: operation caused overflow",
3641 ".tmp_source.zig:1:14: note: called from here",
3659 "tmp.zig:3:14: error: operation caused overflow",
3660 "tmp.zig:1:14: note: called from here",
36423661 );
36433662
36443663 cases.add(
......@@ -3650,8 +3669,8 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
36503669 \\
36513670 \\export fn entry() usize { return @sizeOf(@typeOf(y)); }
36523671 ,
3653 ".tmp_source.zig:3:14: error: operation caused overflow",
3654 ".tmp_source.zig:1:14: note: called from here",
3672 "tmp.zig:3:14: error: operation caused overflow",
3673 "tmp.zig:1:14: note: called from here",
36553674 );
36563675
36573676 cases.add(
......@@ -3663,8 +3682,8 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
36633682 \\
36643683 \\export fn entry() usize { return @sizeOf(@typeOf(y)); }
36653684 ,
3666 ".tmp_source.zig:3:14: error: operation caused overflow",
3667 ".tmp_source.zig:1:14: note: called from here",
3685 "tmp.zig:3:14: error: operation caused overflow",
3686 "tmp.zig:1:14: note: called from here",
36683687 );
36693688
36703689 cases.add(
......@@ -3676,7 +3695,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
36763695 \\
36773696 \\export fn entry() usize { return @sizeOf(@typeOf(f)); }
36783697 ,
3679 ".tmp_source.zig:3:26: error: expected signed integer type, found 'u32'",
3698 "tmp.zig:3:26: error: expected signed integer type, found 'u32'",
36803699 );
36813700
36823701 cases.add(
......@@ -3686,8 +3705,8 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
36863705 \\}
36873706 \\fn something() anyerror!void { }
36883707 ,
3689 ".tmp_source.zig:2:5: error: expected type 'void', found 'anyerror'",
3690 ".tmp_source.zig:1:15: note: return type declared here",
3708 "tmp.zig:2:5: error: expected type 'void', found 'anyerror'",
3709 "tmp.zig:1:15: note: return type declared here",
36913710 );
36923711
36933712 cases.add(
......@@ -3700,7 +3719,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
37003719 \\ }
37013720 \\}
37023721 ,
3703 ".tmp_source.zig:2:13: error: unable to evaluate constant expression",
3722 "tmp.zig:2:13: error: unable to evaluate constant expression",
37043723 );
37053724
37063725 cases.add(
......@@ -3709,7 +3728,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
37093728 \\ return x + y;
37103729 \\}
37113730 ,
3712 ".tmp_source.zig:1:15: error: comptime parameter not allowed in function with calling convention 'ccc'",
3731 "tmp.zig:1:15: error: comptime parameter not allowed in function with calling convention 'ccc'",
37133732 );
37143733
37153734 cases.add(
......@@ -3720,7 +3739,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
37203739 \\}
37213740 \\export fn entry() usize { return @sizeOf(@typeOf(f)); }
37223741 ,
3723 ".tmp_source.zig:1:15: error: comptime parameter not allowed in function with calling convention 'ccc'",
3742 "tmp.zig:1:15: error: comptime parameter not allowed in function with calling convention 'ccc'",
37243743 );
37253744
37263745 cases.add(
......@@ -3730,8 +3749,8 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
37303749 \\ var foo = @bytesToSlice(u32, array)[0];
37313750 \\}
37323751 ,
3733 ".tmp_source.zig:3:15: error: unable to convert [5]u8 to []align(1) const u32: size mismatch",
3734 ".tmp_source.zig:3:29: note: u32 has size 4; remaining bytes: 1",
3752 "tmp.zig:3:15: error: unable to convert [5]u8 to []align(1) const u32: size mismatch",
3753 "tmp.zig:3:29: note: u32 has size 4; remaining bytes: 1",
37353754 );
37363755
37373756 cases.add(
......@@ -3755,8 +3774,8 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
37553774 \\ list.length = 10;
37563775 \\}
37573776 ,
3758 ".tmp_source.zig:3:7: error: unable to evaluate constant expression",
3759 ".tmp_source.zig:16:19: note: called from here",
3777 "tmp.zig:3:7: error: unable to evaluate constant expression",
3778 "tmp.zig:16:19: note: called from here",
37603779 );
37613780
37623781 cases.add(
......@@ -3767,7 +3786,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
37673786 \\}
37683787 \\export fn entry() usize { return @sizeOf(@typeOf(f)); }
37693788 ,
3770 ".tmp_source.zig:3:6: error: no member named 'copy' in '[]const u8'",
3789 "tmp.zig:3:6: error: no member named 'copy' in '[]const u8'",
37713790 );
37723791
37733792 cases.add(
......@@ -3781,7 +3800,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
37813800 \\}
37823801 \\export fn entry() usize { return @sizeOf(@typeOf(f)); }
37833802 ,
3784 ".tmp_source.zig:6:15: error: expected 2 arguments, found 3",
3803 "tmp.zig:6:15: error: expected 2 arguments, found 3",
37853804 );
37863805
37873806 cases.add(
......@@ -3791,7 +3810,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
37913810 \\ cstr[0] = 'W';
37923811 \\}
37933812 ,
3794 ".tmp_source.zig:3:11: error: cannot assign to constant",
3813 "tmp.zig:3:11: error: cannot assign to constant",
37953814 );
37963815
37973816 cases.add(
......@@ -3801,14 +3820,14 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
38013820 \\ cstr[0] = 'W';
38023821 \\}
38033822 ,
3804 ".tmp_source.zig:3:11: error: cannot assign to constant",
3823 "tmp.zig:3:11: error: cannot assign to constant",
38053824 );
38063825
38073826 cases.add(
38083827 "main function with bogus args type",
38093828 \\pub fn main(args: [][]bogus) !void {}
38103829 ,
3811 ".tmp_source.zig:1:23: error: use of undeclared identifier 'bogus'",
3830 "tmp.zig:1:23: error: use of undeclared identifier 'bogus'",
38123831 );
38133832
38143833 cases.add(
......@@ -3844,7 +3863,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
38443863 \\
38453864 \\export fn entry() usize { return @sizeOf(@typeOf(foo)); }
38463865 ,
3847 ".tmp_source.zig:5:16: error: use of undeclared identifier 'JsonList'",
3866 "tmp.zig:5:16: error: use of undeclared identifier 'JsonList'",
38483867 );
38493868
38503869 cases.add(
......@@ -3865,7 +3884,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
38653884 \\ derp.init();
38663885 \\}
38673886 ,
3868 ".tmp_source.zig:14:5: error: expected type 'i32', found 'Foo'",
3887 "tmp.zig:14:5: error: expected type 'i32', found 'Foo'",
38693888 );
38703889
38713890 cases.add(
......@@ -3895,7 +3914,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
38953914 \\ x.init();
38963915 \\}
38973916 ,
3898 ".tmp_source.zig:23:5: error: expected type '*Allocator', found '*List'",
3917 "tmp.zig:23:5: error: expected type '*Allocator', found '*List'",
38993918 );
39003919
39013920 cases.add(
......@@ -3906,7 +3925,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
39063925 \\
39073926 \\export fn entry() usize { return @sizeOf(@typeOf(block_aligned_stuff)); }
39083927 ,
3909 ".tmp_source.zig:3:60: error: unable to perform binary not operation on type 'comptime_int'",
3928 "tmp.zig:3:60: error: unable to perform binary not operation on type 'comptime_int'",
39103929 );
39113930
39123931 cases.addCase(x: {
......@@ -3918,7 +3937,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
39183937 \\ foo.privateFunction();
39193938 \\}
39203939 ,
3921 ".tmp_source.zig:4:8: error: 'privateFunction' is private",
3940 "tmp.zig:4:8: error: 'privateFunction' is private",
39223941 "foo.zig:1:1: note: declared here",
39233942 );
39243943
......@@ -3936,7 +3955,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
39363955 \\
39373956 \\export fn entry() usize { return @sizeOf(@typeOf(a)); }
39383957 ,
3939 ".tmp_source.zig:2:11: error: expected type 'type', found 'i32'",
3958 "tmp.zig:2:11: error: expected type 'type', found 'i32'",
39403959 );
39413960
39423961 cases.add(
......@@ -3949,7 +3968,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
39493968 \\ f.field = 0;
39503969 \\}
39513970 ,
3952 ".tmp_source.zig:6:13: error: cannot assign to constant",
3971 "tmp.zig:6:13: error: cannot assign to constant",
39533972 );
39543973
39553974 cases.add(
......@@ -3970,7 +3989,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
39703989 \\
39713990 \\export fn entry() usize { return @sizeOf(@typeOf(testTrickyDefer)); }
39723991 ,
3973 ".tmp_source.zig:4:11: error: cannot return from defer expression",
3992 "tmp.zig:4:11: error: cannot return from defer expression",
39743993 );
39753994
39763995 cases.add(
......@@ -3985,8 +4004,8 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
39854004 \\
39864005 \\export fn entry() usize { return @sizeOf(@typeOf(foo)); }
39874006 ,
3988 ".tmp_source.zig:2:26: error: index 1 outside argument list of size 1",
3989 ".tmp_source.zig:6:15: note: called from here",
4007 "tmp.zig:2:26: error: index 1 outside argument list of size 1",
4008 "tmp.zig:6:15: note: called from here",
39904009 );
39914010
39924011 cases.add(
......@@ -4005,7 +4024,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
40054024 \\
40064025 \\export fn entry() usize { return @sizeOf(@typeOf(bar)); }
40074026 ,
4008 ".tmp_source.zig:10:16: error: compiler bug: integer and float literals in var args function must be casted",
4027 "tmp.zig:10:16: error: compiler bug: integer and float literals in var args function must be casted",
40094028 );
40104029
40114030 cases.add(
......@@ -4014,7 +4033,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
40144033 \\ var vga_mem: u16 = 0xB8000;
40154034 \\}
40164035 ,
4017 ".tmp_source.zig:2:24: error: integer value 753664 cannot be implicitly casted to type 'u16'",
4036 "tmp.zig:2:24: error: integer value 753664 cannot be implicitly casted to type 'u16'",
40184037 );
40194038
40204039 cases.add(
......@@ -4022,7 +4041,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
40224041 \\const some_data: [100]u8 align(3) = undefined;
40234042 \\export fn entry() usize { return @sizeOf(@typeOf(some_data)); }
40244043 ,
4025 ".tmp_source.zig:1:32: error: alignment value 3 is not a power of 2",
4044 "tmp.zig:1:32: error: alignment value 3 is not a power of 2",
40264045 );
40274046
40284047 cases.add(
......@@ -4030,7 +4049,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
40304049 \\extern fn foo() align(3) void;
40314050 \\export fn entry() void { return foo(); }
40324051 ,
4033 ".tmp_source.zig:1:23: error: alignment value 3 is not a power of 2",
4052 "tmp.zig:1:23: error: alignment value 3 is not a power of 2",
40344053 );
40354054
40364055 cases.add(
......@@ -4044,9 +4063,9 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
40444063 \\ @compileLog("end",);
40454064 \\}
40464065 ,
4047 ".tmp_source.zig:5:5: error: found compile log statement",
4048 ".tmp_source.zig:6:5: error: found compile log statement",
4049 ".tmp_source.zig:7:5: error: found compile log statement",
4066 "tmp.zig:5:5: error: found compile log statement",
4067 "tmp.zig:6:5: error: found compile log statement",
4068 "tmp.zig:7:5: error: found compile log statement",
40504069 );
40514070
40524071 cases.add(
......@@ -4067,7 +4086,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
40674086 \\
40684087 \\export fn entry() usize { return @sizeOf(@typeOf(foo)); }
40694088 ,
4070 ".tmp_source.zig:8:26: error: expected type '*const u3', found '*align(:3:1) const u3'",
4089 "tmp.zig:8:26: error: expected type '*const u3', found '*align(:3:1) const u3'",
40714090 );
40724091
40734092 cases.add(
......@@ -4084,8 +4103,8 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
40844103 \\ if (!ok) unreachable;
40854104 \\}
40864105 ,
4087 ".tmp_source.zig:10:14: error: unable to evaluate constant expression",
4088 ".tmp_source.zig:6:20: note: called from here",
4106 "tmp.zig:10:14: error: unable to evaluate constant expression",
4107 "tmp.zig:6:20: note: called from here",
40894108 );
40904109
40914110 cases.add(
......@@ -4099,8 +4118,8 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
40994118 \\
41004119 \\fn bar() void { }
41014120 ,
4102 ".tmp_source.zig:3:5: error: control flow attempts to use compile-time variable at runtime",
4103 ".tmp_source.zig:3:24: note: compile-time variable assigned here",
4121 "tmp.zig:3:5: error: control flow attempts to use compile-time variable at runtime",
4122 "tmp.zig:3:24: note: compile-time variable assigned here",
41044123 );
41054124
41064125 cases.add(
......@@ -4110,7 +4129,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
41104129 \\}
41114130 \\fn bar() i32 { return 0; }
41124131 ,
4113 ".tmp_source.zig:2:8: error: expression value is ignored",
4132 "tmp.zig:2:8: error: expression value is ignored",
41144133 );
41154134
41164135 cases.add(
......@@ -4120,7 +4139,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
41204139 \\}
41214140 \\fn bar() anyerror!i32 { return 0; }
41224141 ,
4123 ".tmp_source.zig:2:11: error: expression value is ignored",
4142 "tmp.zig:2:11: error: expression value is ignored",
41244143 );
41254144
41264145 cases.add(
......@@ -4129,7 +4148,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
41294148 \\ 1;
41304149 \\}
41314150 ,
4132 ".tmp_source.zig:2:5: error: expression value is ignored",
4151 "tmp.zig:2:5: error: expression value is ignored",
41334152 );
41344153
41354154 cases.add(
......@@ -4138,7 +4157,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
41384157 \\ comptime {1;}
41394158 \\}
41404159 ,
4141 ".tmp_source.zig:2:15: error: expression value is ignored",
4160 "tmp.zig:2:15: error: expression value is ignored",
41424161 );
41434162
41444163 cases.add(
......@@ -4147,7 +4166,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
41474166 \\ comptime 1;
41484167 \\}
41494168 ,
4150 ".tmp_source.zig:2:5: error: expression value is ignored",
4169 "tmp.zig:2:5: error: expression value is ignored",
41514170 );
41524171
41534172 cases.add(
......@@ -4156,7 +4175,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
41564175 \\ defer {1;}
41574176 \\}
41584177 ,
4159 ".tmp_source.zig:2:12: error: expression value is ignored",
4178 "tmp.zig:2:12: error: expression value is ignored",
41604179 );
41614180
41624181 cases.add(
......@@ -4166,7 +4185,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
41664185 \\}
41674186 \\fn bar() anyerror!i32 { return 0; }
41684187 ,
4169 ".tmp_source.zig:2:14: error: expression value is ignored",
4188 "tmp.zig:2:14: error: expression value is ignored",
41704189 );
41714190
41724191 cases.add(
......@@ -4180,7 +4199,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
41804199 \\
41814200 \\export fn entry() usize { return @sizeOf(@typeOf(pass)); }
41824201 ,
4183 ".tmp_source.zig:4:10: error: attempt to dereference non-pointer type '[10]u8'",
4202 "tmp.zig:4:10: error: attempt to dereference non-pointer type '[10]u8'",
41844203 );
41854204
41864205 cases.add(
......@@ -4196,7 +4215,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
41964215 \\
41974216 \\export fn entry() usize { return @sizeOf(@typeOf(foo)); }
41984217 ,
4199 ".tmp_source.zig:4:19: error: expected type '*[]const u8', found '*const []const u8'",
4218 "tmp.zig:4:19: error: expected type '*[]const u8', found '*const []const u8'",
42004219 );
42014220
42024221 cases.addCase(x: {
......@@ -4209,7 +4228,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
42094228 \\}
42104229 ,
42114230 "foo.zig:1:1: error: exported symbol collision: 'bar'",
4212 ".tmp_source.zig:3:1: note: other symbol here",
4231 "tmp.zig:3:1: note: other symbol here",
42134232 );
42144233
42154234 tc.addSourceFile("foo.zig",
......@@ -4228,7 +4247,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
42284247 \\ foo(global_array);
42294248 \\}
42304249 ,
4231 ".tmp_source.zig:4:9: error: expected type '[]i32', found '[10]i32'",
4250 "tmp.zig:4:9: error: expected type '[]i32', found '[10]i32'",
42324251 );
42334252
42344253 cases.add(
......@@ -4237,7 +4256,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
42374256 \\ return @ptrCast(usize, a);
42384257 \\}
42394258 ,
4240 ".tmp_source.zig:2:21: error: expected pointer, found 'usize'",
4259 "tmp.zig:2:21: error: expected pointer, found 'usize'",
42414260 );
42424261
42434262 cases.add(
......@@ -4254,7 +4273,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
42544273 \\ );
42554274 \\}
42564275 ,
4257 ".tmp_source.zig:6:5: error: unable to evaluate constant expression",
4276 "tmp.zig:6:5: error: unable to evaluate constant expression",
42584277 );
42594278
42604279 cases.add(
......@@ -4264,7 +4283,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
42644283 \\ const foo = builtin.Arch.x86;
42654284 \\}
42664285 ,
4267 ".tmp_source.zig:3:29: error: container 'Arch' has no member called 'x86'",
4286 "tmp.zig:3:29: error: container 'builtin.Arch' has no member called 'x86'",
42684287 );
42694288
42704289 cases.add(
......@@ -4274,7 +4293,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
42744293 \\ var y: *void = @intToPtr(*void, x);
42754294 \\}
42764295 ,
4277 ".tmp_source.zig:3:30: error: type '*void' has 0 bits and cannot store information",
4296 "tmp.zig:3:30: error: type '*void' has 0 bits and cannot store information",
42784297 );
42794298
42804299 cases.add(
......@@ -4284,7 +4303,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
42844303 \\ return @fieldParentPtr(Foo, "a", a);
42854304 \\}
42864305 ,
4287 ".tmp_source.zig:3:28: error: expected struct type, found 'i32'",
4306 "tmp.zig:3:28: error: expected struct type, found 'i32'",
42884307 );
42894308
42904309 cases.add(
......@@ -4296,7 +4315,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
42964315 \\ return @fieldParentPtr(Foo, "a", a);
42974316 \\}
42984317 ,
4299 ".tmp_source.zig:5:33: error: struct 'Foo' has no field 'a'",
4318 "tmp.zig:5:33: error: struct 'Foo' has no field 'a'",
43004319 );
43014320
43024321 cases.add(
......@@ -4308,7 +4327,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
43084327 \\ return @fieldParentPtr(Foo, "a", a);
43094328 \\}
43104329 ,
4311 ".tmp_source.zig:5:38: error: expected pointer, found 'i32'",
4330 "tmp.zig:5:38: error: expected pointer, found 'i32'",
43124331 );
43134332
43144333 cases.add(
......@@ -4324,7 +4343,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
43244343 \\ const another_foo_ptr = @fieldParentPtr(Foo, "b", field_ptr);
43254344 \\}
43264345 ,
4327 ".tmp_source.zig:9:55: error: pointer value not based on parent struct",
4346 "tmp.zig:9:55: error: pointer value not based on parent struct",
43284347 );
43294348
43304349 cases.add(
......@@ -4339,7 +4358,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
43394358 \\ const another_foo_ptr = @fieldParentPtr(Foo, "b", &foo.a);
43404359 \\}
43414360 ,
4342 ".tmp_source.zig:8:29: error: field 'b' has index 1 but pointer value is index 0 of struct 'Foo'",
4361 "tmp.zig:8:29: error: field 'b' has index 1 but pointer value is index 0 of struct 'Foo'",
43434362 );
43444363
43454364 cases.add(
......@@ -4349,7 +4368,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
43494368 \\ return @byteOffsetOf(Foo, "a",);
43504369 \\}
43514370 ,
4352 ".tmp_source.zig:3:26: error: expected struct type, found 'i32'",
4371 "tmp.zig:3:26: error: expected struct type, found 'i32'",
43534372 );
43544373
43554374 cases.add(
......@@ -4361,14 +4380,14 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
43614380 \\ return @byteOffsetOf(Foo, "a",);
43624381 \\}
43634382 ,
4364 ".tmp_source.zig:5:31: error: struct 'Foo' has no field 'a'",
4383 "tmp.zig:5:31: error: struct 'Foo' has no field 'a'",
43654384 );
43664385
43674386 cases.addExe(
43684387 "missing main fn in executable",
43694388 \\
43704389 ,
4371 "error: no member named 'main' in '",
4390 "error: root source file has no member called 'main'",
43724391 );
43734392
43744393 cases.addExe(
......@@ -4376,7 +4395,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
43764395 \\fn main() void {}
43774396 ,
43784397 "error: 'main' is private",
4379 ".tmp_source.zig:1:1: note: declared here",
4398 "tmp.zig:1:1: note: declared here",
43804399 );
43814400
43824401 cases.add(
......@@ -4386,7 +4405,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
43864405 \\ return foo;
43874406 \\}
43884407 ,
4389 ".tmp_source.zig:1:33: error: cannot set section of external variable 'foo'",
4408 "tmp.zig:1:33: error: cannot set section of external variable 'foo'",
43904409 );
43914410
43924411 cases.add(
......@@ -4396,7 +4415,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
43964415 \\ return foo;
43974416 \\}
43984417 ,
4399 ".tmp_source.zig:2:30: error: cannot set section of local variable 'foo'",
4418 "tmp.zig:2:30: error: cannot set section of local variable 'foo'",
44004419 );
44014420
44024421 cases.add(
......@@ -4406,7 +4425,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
44064425 \\ foo();
44074426 \\}
44084427 ,
4409 ".tmp_source.zig:1:29: error: cannot set section of external function 'foo'",
4428 "tmp.zig:1:29: error: cannot set section of external function 'foo'",
44104429 );
44114430
44124431 cases.add(
......@@ -4416,7 +4435,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
44164435 \\ return &a;
44174436 \\}
44184437 ,
4419 ".tmp_source.zig:3:13: error: function returns address of local variable",
4438 "tmp.zig:3:13: error: function returns address of local variable",
44204439 );
44214440
44224441 cases.add(
......@@ -4427,7 +4446,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
44274446 \\ return if (c) &a else &b;
44284447 \\}
44294448 ,
4430 ".tmp_source.zig:4:12: error: function returns address of local variable",
4449 "tmp.zig:4:12: error: function returns address of local variable",
44314450 );
44324451
44334452 cases.add(
......@@ -4452,8 +4471,8 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
44524471 \\ if (!ok) unreachable;
44534472 \\}
44544473 ,
4455 ".tmp_source.zig:9:17: error: redefinition of 'Self'",
4456 ".tmp_source.zig:5:9: note: previous definition is here",
4474 "tmp.zig:9:17: error: redefinition of 'Self'",
4475 "tmp.zig:5:9: note: previous definition is here",
44574476 );
44584477
44594478 cases.add(
......@@ -4463,7 +4482,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
44634482 \\}
44644483 \\fn bar() ?i32 { return 1; }
44654484 ,
4466 ".tmp_source.zig:2:15: error: expected type 'bool', found '?i32'",
4485 "tmp.zig:2:15: error: expected type 'bool', found '?i32'",
44674486 );
44684487
44694488 cases.add(
......@@ -4473,7 +4492,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
44734492 \\}
44744493 \\fn bar() anyerror!i32 { return 1; }
44754494 ,
4476 ".tmp_source.zig:2:15: error: expected type 'bool', found 'anyerror!i32'",
4495 "tmp.zig:2:15: error: expected type 'bool', found 'anyerror!i32'",
44774496 );
44784497
44794498 cases.add(
......@@ -4483,7 +4502,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
44834502 \\}
44844503 \\fn bar() bool { return true; }
44854504 ,
4486 ".tmp_source.zig:2:15: error: expected optional type, found 'bool'",
4505 "tmp.zig:2:15: error: expected optional type, found 'bool'",
44874506 );
44884507
44894508 cases.add(
......@@ -4493,7 +4512,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
44934512 \\}
44944513 \\fn bar() anyerror!i32 { return 1; }
44954514 ,
4496 ".tmp_source.zig:2:15: error: expected optional type, found 'anyerror!i32'",
4515 "tmp.zig:2:15: error: expected optional type, found 'anyerror!i32'",
44974516 );
44984517
44994518 cases.add(
......@@ -4503,7 +4522,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
45034522 \\}
45044523 \\fn bar() bool { return true; }
45054524 ,
4506 ".tmp_source.zig:2:15: error: expected error union type, found 'bool'",
4525 "tmp.zig:2:15: error: expected error union type, found 'bool'",
45074526 );
45084527
45094528 cases.add(
......@@ -4513,7 +4532,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
45134532 \\}
45144533 \\fn bar() ?i32 { return 1; }
45154534 ,
4516 ".tmp_source.zig:2:15: error: expected error union type, found '?i32'",
4535 "tmp.zig:2:15: error: expected error union type, found '?i32'",
45174536 );
45184537
45194538 cases.add(
......@@ -4531,7 +4550,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
45314550 \\}
45324551 \\extern fn quux() void;
45334552 ,
4534 ".tmp_source.zig:4:1: error: unable to inline function",
4553 "tmp.zig:4:1: error: unable to inline function",
45354554 );
45364555
45374556 cases.add(
......@@ -4542,7 +4561,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
45424561 \\inline fn bar() void { }
45434562 \\extern fn quux(usize) void;
45444563 ,
4545 ".tmp_source.zig:4:1: error: unable to inline function",
4564 "tmp.zig:4:1: error: unable to inline function",
45464565 );
45474566
45484567 cases.add(
......@@ -4551,7 +4570,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
45514570 \\ return a / b;
45524571 \\}
45534572 ,
4554 ".tmp_source.zig:2:14: error: division with 'i32' and 'i32': signed integers must use @divTrunc, @divFloor, or @divExact",
4573 "tmp.zig:2:14: error: division with 'i32' and 'i32': signed integers must use @divTrunc, @divFloor, or @divExact",
45554574 );
45564575
45574576 cases.add(
......@@ -4560,7 +4579,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
45604579 \\ return a % b;
45614580 \\}
45624581 ,
4563 ".tmp_source.zig:2:14: error: remainder division with 'i32' and 'i32': signed integers and floats must use @rem or @mod",
4582 "tmp.zig:2:14: error: remainder division with 'i32' and 'i32': signed integers and floats must use @rem or @mod",
45644583 );
45654584
45664585 cases.add(
......@@ -4571,7 +4590,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
45714590 \\ const c = a / b;
45724591 \\}
45734592 ,
4574 ".tmp_source.zig:4:17: error: division by zero",
4593 "tmp.zig:4:17: error: division by zero",
45754594 );
45764595
45774596 cases.add(
......@@ -4582,7 +4601,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
45824601 \\ const c = a % b;
45834602 \\}
45844603 ,
4585 ".tmp_source.zig:4:17: error: division by zero",
4604 "tmp.zig:4:17: error: division by zero",
45864605 );
45874606
45884607 cases.add(
......@@ -4592,8 +4611,8 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
45924611 \\ @setRuntimeSafety(false);
45934612 \\}
45944613 ,
4595 ".tmp_source.zig:3:5: error: runtime safety set twice for same scope",
4596 ".tmp_source.zig:2:5: note: first set here",
4614 "tmp.zig:3:5: error: runtime safety set twice for same scope",
4615 "tmp.zig:2:5: note: first set here",
45974616 );
45984617
45994618 cases.add(
......@@ -4603,8 +4622,8 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
46034622 \\ @setFloatMode(@import("builtin").FloatMode.Optimized);
46044623 \\}
46054624 ,
4606 ".tmp_source.zig:3:5: error: float mode set twice for same scope",
4607 ".tmp_source.zig:2:5: note: first set here",
4625 "tmp.zig:3:5: error: float mode set twice for same scope",
4626 "tmp.zig:2:5: note: first set here",
46084627 );
46094628
46104629 cases.add(
......@@ -4613,7 +4632,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
46134632 \\ var b: u8[40] = undefined;
46144633 \\}
46154634 ,
4616 ".tmp_source.zig:2:14: error: array access of non-array type 'type'",
4635 "tmp.zig:2:14: error: array access of non-array type 'type'",
46174636 );
46184637
46194638 cases.add(
......@@ -4626,7 +4645,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
46264645 \\ }
46274646 \\}
46284647 ,
4629 ".tmp_source.zig:4:13: error: cannot break out of defer expression",
4648 "tmp.zig:4:13: error: cannot break out of defer expression",
46304649 );
46314650
46324651 cases.add(
......@@ -4639,7 +4658,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
46394658 \\ }
46404659 \\}
46414660 ,
4642 ".tmp_source.zig:4:13: error: cannot continue out of defer expression",
4661 "tmp.zig:4:13: error: cannot continue out of defer expression",
46434662 );
46444663
46454664 cases.add(
......@@ -4653,7 +4672,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
46534672 \\ foos[0]();
46544673 \\}
46554674 ,
4656 ".tmp_source.zig:7:9: error: calling a generic function requires compile-time known function value",
4675 "tmp.zig:7:9: error: calling a generic function requires compile-time known function value",
46574676 );
46584677
46594678 cases.add(
......@@ -4667,7 +4686,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
46674686 \\ foos[0](true);
46684687 \\}
46694688 ,
4670 ".tmp_source.zig:7:9: error: calling a generic function requires compile-time known function value",
4689 "tmp.zig:7:9: error: calling a generic function requires compile-time known function value",
46714690 );
46724691
46734692 cases.add(
......@@ -4681,24 +4700,9 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
46814700 \\ return bar;
46824701 \\}
46834702 ,
4684 ".tmp_source.zig:1:13: error: aoeu",
4685 ".tmp_source.zig:3:19: note: referenced here",
4686 ".tmp_source.zig:7:12: note: referenced here",
4687 );
4688
4689 cases.add(
4690 "instantiating an undefined value for an invalid struct that contains itself",
4691 \\const Foo = struct {
4692 \\ x: Foo,
4693 \\};
4694 \\
4695 \\var foo: Foo = undefined;
4696 \\
4697 \\export fn entry() usize {
4698 \\ return @sizeOf(@typeOf(foo.x));
4699 \\}
4700 ,
4701 ".tmp_source.zig:1:13: error: struct 'Foo' contains itself",
4703 "tmp.zig:1:13: error: aoeu",
4704 "tmp.zig:3:19: note: referenced here",
4705 "tmp.zig:7:12: note: referenced here",
47024706 );
47034707
47044708 cases.add(
......@@ -4707,7 +4711,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
47074711 \\ const a = 0x1.0p16384;
47084712 \\}
47094713 ,
4710 ".tmp_source.zig:2:15: error: float literal out of range of any type",
4714 "tmp.zig:2:15: error: float literal out of range of any type",
47114715 );
47124716
47134717 cases.add(
......@@ -4716,7 +4720,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
47164720 \\ const a = 0x1.0p-16384;
47174721 \\}
47184722 ,
4719 ".tmp_source.zig:2:15: error: float literal out of range of any type",
4723 "tmp.zig:2:15: error: float literal out of range of any type",
47204724 );
47214725
47224726 cases.add(
......@@ -4725,7 +4729,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
47254729 \\ return i32(12.34);
47264730 \\}
47274731 ,
4728 ".tmp_source.zig:2:16: error: fractional component prevents float value 12.340000 from being casted to type 'i32'",
4732 "tmp.zig:2:16: error: fractional component prevents float value 12.340000 from being casted to type 'i32'",
47294733 );
47304734
47314735 cases.add(
......@@ -4734,7 +4738,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
47344738 \\ return @ptrToInt(x);
47354739 \\}
47364740 ,
4737 ".tmp_source.zig:2:22: error: expected pointer, found 'i32'",
4741 "tmp.zig:2:22: error: expected pointer, found 'i32'",
47384742 );
47394743
47404744 cases.add(
......@@ -4743,7 +4747,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
47434747 \\ const x = @shlExact(u8(0b01010101), 2);
47444748 \\}
47454749 ,
4746 ".tmp_source.zig:2:15: error: operation caused overflow",
4750 "tmp.zig:2:15: error: operation caused overflow",
47474751 );
47484752
47494753 cases.add(
......@@ -4752,7 +4756,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
47524756 \\ const x = @shrExact(u8(0b10101010), 2);
47534757 \\}
47544758 ,
4755 ".tmp_source.zig:2:15: error: exact shift shifted out 1 bits",
4759 "tmp.zig:2:15: error: exact shift shifted out 1 bits",
47564760 );
47574761
47584762 cases.add(
......@@ -4761,7 +4765,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
47614765 \\ return 0x11 << x;
47624766 \\}
47634767 ,
4764 ".tmp_source.zig:2:17: error: LHS of shift must be an integer type, or RHS must be compile-time known",
4768 "tmp.zig:2:17: error: LHS of shift must be an integer type, or RHS must be compile-time known",
47654769 );
47664770
47674771 cases.add(
......@@ -4770,7 +4774,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
47704774 \\ return x << y;
47714775 \\}
47724776 ,
4773 ".tmp_source.zig:2:17: error: expected type 'u3', found 'u8'",
4777 "tmp.zig:2:17: error: expected type 'u3', found 'u8'",
47744778 );
47754779
47764780 cases.add(
......@@ -4780,7 +4784,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
47804784 \\ const a: u16 = 300;
47814785 \\}
47824786 ,
4783 ".tmp_source.zig:1:1: error: declaration shadows primitive type 'u16'",
4787 "tmp.zig:1:1: error: declaration shadows primitive type 'u16'",
47844788 );
47854789
47864790 cases.add(
......@@ -4799,7 +4803,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
47994803 \\ x.* += 1;
48004804 \\}
48014805 ,
4802 ".tmp_source.zig:8:13: error: expected type '*u32', found '*align(1) u32'",
4806 "tmp.zig:8:13: error: expected type '*u32', found '*align(1) u32'",
48034807 );
48044808
48054809 cases.add(
......@@ -4819,9 +4823,9 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
48194823 \\ x[0] += 1;
48204824 \\}
48214825 ,
4822 ".tmp_source.zig:9:18: error: cast increases pointer alignment",
4823 ".tmp_source.zig:9:23: note: '*align(1) u32' has alignment 1",
4824 ".tmp_source.zig:9:18: note: '*[1]u32' has alignment 4",
4826 "tmp.zig:9:18: error: cast increases pointer alignment",
4827 "tmp.zig:9:23: note: '*align(1) u32' has alignment 1",
4828 "tmp.zig:9:18: note: '*[1]u32' has alignment 4",
48254829 );
48264830
48274831 cases.add(
......@@ -4832,9 +4836,9 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
48324836 \\ return ptr.*;
48334837 \\}
48344838 ,
4835 ".tmp_source.zig:3:17: error: cast increases pointer alignment",
4836 ".tmp_source.zig:3:38: note: '*u8' has alignment 1",
4837 ".tmp_source.zig:3:26: note: '*u32' has alignment 4",
4839 "tmp.zig:3:17: error: cast increases pointer alignment",
4840 "tmp.zig:3:38: note: '*u8' has alignment 1",
4841 "tmp.zig:3:26: note: '*u32' has alignment 4",
48384842 );
48394843
48404844 cases.add(
......@@ -4843,7 +4847,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
48434847 \\ @alignCast(4, u32(3));
48444848 \\}
48454849 ,
4846 ".tmp_source.zig:2:22: error: expected pointer or slice, found 'u32'",
4850 "tmp.zig:2:22: error: expected pointer or slice, found 'u32'",
48474851 );
48484852
48494853 cases.add(
......@@ -4856,7 +4860,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
48564860 \\}
48574861 \\fn alignedSmall() align(4) i32 { return 1234; }
48584862 ,
4859 ".tmp_source.zig:2:35: error: expected type 'fn() align(8) i32', found 'fn() align(4) i32'",
4863 "tmp.zig:2:35: error: expected type 'fn() align(8) i32', found 'fn() align(4) i32'",
48604864 );
48614865
48624866 cases.add(
......@@ -4868,7 +4872,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
48684872 \\ return x == 5678;
48694873 \\}
48704874 ,
4871 ".tmp_source.zig:4:32: error: expected type '*i32', found '*align(1) i32'",
4875 "tmp.zig:4:32: error: expected type '*i32', found '*align(1) i32'",
48724876 );
48734877
48744878 cases.add(
......@@ -4877,7 +4881,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
48774881 \\ const array = [2]u8{1, 2, 3};
48784882 \\}
48794883 ,
4880 ".tmp_source.zig:2:24: error: expected [2]u8 literal, found [3]u8 literal",
4884 "tmp.zig:2:24: error: expected [2]u8 literal, found [3]u8 literal",
48814885 );
48824886
48834887 cases.add(
......@@ -4889,7 +4893,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
48894893 \\ bar(@ptrCast(*c_void, &x));
48904894 \\}
48914895 ,
4892 ".tmp_source.zig:5:9: error: expected type '*Derp', found '*c_void'",
4896 "tmp.zig:5:9: error: expected type '*Derp', found '*c_void'",
48934897 );
48944898
48954899 cases.add(
......@@ -4906,7 +4910,6 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
49064910 \\ var d = null;
49074911 \\ var e = opaque.*;
49084912 \\ var f = i32;
4909 \\ var g = @import("std",);
49104913 \\ var h = (Foo {}).bar;
49114914 \\
49124915 \\ var z: noreturn = return;
......@@ -4916,16 +4919,15 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
49164919 \\ fn bar(self: *const Foo) void {}
49174920 \\};
49184921 ,
4919 ".tmp_source.zig:4:4: error: variable of type '*comptime_int' must be const or comptime",
4920 ".tmp_source.zig:7:4: error: variable of type '(undefined)' must be const or comptime",
4921 ".tmp_source.zig:8:4: error: variable of type 'comptime_int' must be const or comptime",
4922 ".tmp_source.zig:9:4: error: variable of type 'comptime_float' must be const or comptime",
4923 ".tmp_source.zig:10:4: error: variable of type '(null)' must be const or comptime",
4924 ".tmp_source.zig:11:4: error: variable of type 'Opaque' not allowed",
4925 ".tmp_source.zig:12:4: error: variable of type 'type' must be const or comptime",
4926 ".tmp_source.zig:13:4: error: variable of type '(namespace)' must be const or comptime",
4927 ".tmp_source.zig:14:4: error: variable of type '(bound fn(*const Foo) void)' must be const or comptime",
4928 ".tmp_source.zig:16:4: error: unreachable code",
4922 "tmp.zig:4:4: error: variable of type '*comptime_int' must be const or comptime",
4923 "tmp.zig:7:4: error: variable of type '(undefined)' must be const or comptime",
4924 "tmp.zig:8:4: error: variable of type 'comptime_int' must be const or comptime",
4925 "tmp.zig:9:4: error: variable of type 'comptime_float' must be const or comptime",
4926 "tmp.zig:10:4: error: variable of type '(null)' must be const or comptime",
4927 "tmp.zig:11:4: error: variable of type 'Opaque' not allowed",
4928 "tmp.zig:12:4: error: variable of type 'type' must be const or comptime",
4929 "tmp.zig:13:4: error: variable of type '(bound fn(*const Foo) void)' must be const or comptime",
4930 "tmp.zig:15:4: error: unreachable code",
49294931 );
49304932
49314933 cases.add(
......@@ -4935,7 +4937,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
49354937 \\ while (!@cmpxchgWeak(i32, &x, 1234, 5678, u32(1234), u32(1234))) {}
49364938 \\}
49374939 ,
4938 ".tmp_source.zig:3:50: error: expected type 'AtomicOrder', found 'u32'",
4940 "tmp.zig:3:50: error: expected type 'builtin.AtomicOrder', found 'u32'",
49394941 );
49404942
49414943 cases.add(
......@@ -4945,7 +4947,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
49454947 \\ @export("entry", entry, u32(1234));
49464948 \\}
49474949 ,
4948 ".tmp_source.zig:3:32: error: expected type 'GlobalLinkage', found 'u32'",
4950 "tmp.zig:3:32: error: expected type 'builtin.GlobalLinkage', found 'u32'",
49494951 );
49504952
49514953 cases.add(
......@@ -4974,7 +4976,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
49744976 \\ };
49754977 \\}
49764978 ,
4977 ".tmp_source.zig:14:17: error: use of undeclared identifier 'HeaderValue'",
4979 "tmp.zig:14:17: error: use of undeclared identifier 'HeaderValue'",
49784980 );
49794981
49804982 cases.add(
......@@ -4983,7 +4985,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
49834985 \\ @setAlignStack(16);
49844986 \\}
49854987 ,
4986 ".tmp_source.zig:2:5: error: @setAlignStack outside function",
4988 "tmp.zig:2:5: error: @setAlignStack outside function",
49874989 );
49884990
49894991 cases.add(
......@@ -4992,7 +4994,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
49924994 \\ @setAlignStack(16);
49934995 \\}
49944996 ,
4995 ".tmp_source.zig:2:5: error: @setAlignStack in naked function",
4997 "tmp.zig:2:5: error: @setAlignStack in naked function",
49964998 );
49974999
49985000 cases.add(
......@@ -5004,7 +5006,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
50045006 \\ @setAlignStack(16);
50055007 \\}
50065008 ,
5007 ".tmp_source.zig:5:5: error: @setAlignStack in inline function",
5009 "tmp.zig:5:5: error: @setAlignStack in inline function",
50085010 );
50095011
50105012 cases.add(
......@@ -5014,8 +5016,8 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
50145016 \\ @setAlignStack(16);
50155017 \\}
50165018 ,
5017 ".tmp_source.zig:3:5: error: alignstack set twice",
5018 ".tmp_source.zig:2:5: note: first set here",
5019 "tmp.zig:3:5: error: alignstack set twice",
5020 "tmp.zig:2:5: note: first set here",
50195021 );
50205022
50215023 cases.add(
......@@ -5024,7 +5026,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
50245026 \\ @setAlignStack(511 + 1);
50255027 \\}
50265028 ,
5027 ".tmp_source.zig:2:5: error: attempt to @setAlignStack(512); maximum is 256",
5029 "tmp.zig:2:5: error: attempt to @setAlignStack(512); maximum is 256",
50285030 );
50295031
50305032 cases.add(
......@@ -5071,7 +5073,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
50715073 \\ }
50725074 \\}
50735075 ,
5074 ".tmp_source.zig:37:16: error: cannot store runtime value in compile time variable",
5076 "tmp.zig:37:16: error: cannot store runtime value in compile time variable",
50755077 );
50765078
50775079 cases.add(
......@@ -5087,7 +5089,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
50875089 \\ return x.blah;
50885090 \\}
50895091 ,
5090 ".tmp_source.zig:9:13: error: type '*MyType' does not support field access",
5092 "tmp.zig:9:13: error: type '*MyType' does not support field access",
50915093 );
50925094
50935095 cases.add(
......@@ -5095,7 +5097,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
50955097 "fn test() bool {\r\n" ++
50965098 " true\r\n" ++
50975099 "}\r\n",
5098 ".tmp_source.zig:1:17: error: invalid carriage return, only '\\n' line endings are supported",
5100 "tmp.zig:1:17: error: invalid carriage return, only '\\n' line endings are supported",
50995101 );
51005102
51015103 cases.add(
......@@ -5105,7 +5107,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
51055107 \\ true\r
51065108 \\}
51075109 ,
5108 ".tmp_source.zig:1:1: error: invalid character: '\\xff'",
5110 "tmp.zig:1:1: error: invalid character: '\\xff'",
51095111 );
51105112
51115113 cases.add(
......@@ -5113,7 +5115,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
51135115 "fn test() bool {\n" ++
51145116 "\ttrue\n" ++
51155117 "}\n",
5116 ".tmp_source.zig:2:1: error: invalid character: '\\t'",
5118 "tmp.zig:2:1: error: invalid character: '\\t'",
51175119 );
51185120
51195121 cases.add(
......@@ -5122,7 +5124,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
51225124 \\ _ = @ArgType(i32, 3);
51235125 \\}
51245126 ,
5125 ".tmp_source.zig:2:18: error: expected function, found 'i32'",
5127 "tmp.zig:2:18: error: expected function, found 'i32'",
51265128 );
51275129
51285130 cases.add(
......@@ -5132,7 +5134,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
51325134 \\}
51335135 \\fn add(a: i32, b: i32) i32 { return a + b; }
51345136 ,
5135 ".tmp_source.zig:2:32: error: arg index 2 out of bounds; 'fn(i32, i32) i32' has 2 arguments",
5137 "tmp.zig:2:32: error: arg index 2 out of bounds; 'fn(i32, i32) i32' has 2 arguments",
51365138 );
51375139
51385140 cases.add(
......@@ -5141,7 +5143,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
51415143 \\ _ = @memberType(i32, 0);
51425144 \\}
51435145 ,
5144 ".tmp_source.zig:2:21: error: type 'i32' does not support @memberType",
5146 "tmp.zig:2:21: error: type 'i32' does not support @memberType",
51455147 );
51465148
51475149 cases.add(
......@@ -5151,7 +5153,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
51515153 \\}
51525154 \\const Foo = enum {A,};
51535155 ,
5154 ".tmp_source.zig:2:21: error: type 'Foo' does not support @memberType",
5156 "tmp.zig:2:21: error: type 'Foo' does not support @memberType",
51555157 );
51565158
51575159 cases.add(
......@@ -5161,7 +5163,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
51615163 \\}
51625164 \\const Foo = struct {};
51635165 ,
5164 ".tmp_source.zig:2:26: error: member index 0 out of bounds; 'Foo' has 0 members",
5166 "tmp.zig:2:26: error: member index 0 out of bounds; 'Foo' has 0 members",
51655167 );
51665168
51675169 cases.add(
......@@ -5171,7 +5173,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
51715173 \\}
51725174 \\const Foo = union {A: void,};
51735175 ,
5174 ".tmp_source.zig:2:26: error: member index 1 out of bounds; 'Foo' has 1 members",
5176 "tmp.zig:2:26: error: member index 1 out of bounds; 'Foo' has 1 members",
51755177 );
51765178
51775179 cases.add(
......@@ -5180,7 +5182,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
51805182 \\ _ = @memberName(i32, 0);
51815183 \\}
51825184 ,
5183 ".tmp_source.zig:2:21: error: type 'i32' does not support @memberName",
5185 "tmp.zig:2:21: error: type 'i32' does not support @memberName",
51845186 );
51855187
51865188 cases.add(
......@@ -5190,7 +5192,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
51905192 \\}
51915193 \\const Foo = struct {};
51925194 ,
5193 ".tmp_source.zig:2:26: error: member index 0 out of bounds; 'Foo' has 0 members",
5195 "tmp.zig:2:26: error: member index 0 out of bounds; 'Foo' has 0 members",
51945196 );
51955197
51965198 cases.add(
......@@ -5200,7 +5202,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
52005202 \\}
52015203 \\const Foo = enum {A,};
52025204 ,
5203 ".tmp_source.zig:2:26: error: member index 1 out of bounds; 'Foo' has 1 members",
5205 "tmp.zig:2:26: error: member index 1 out of bounds; 'Foo' has 1 members",
52045206 );
52055207
52065208 cases.add(
......@@ -5210,7 +5212,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
52105212 \\}
52115213 \\const Foo = union {A:i32,};
52125214 ,
5213 ".tmp_source.zig:2:26: error: member index 1 out of bounds; 'Foo' has 1 members",
5215 "tmp.zig:2:26: error: member index 1 out of bounds; 'Foo' has 1 members",
52145216 );
52155217
52165218 cases.add(
......@@ -5220,7 +5222,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
52205222 \\}
52215223 \\pub extern fn foo(format: *const u8, ...) void;
52225224 ,
5223 ".tmp_source.zig:2:9: error: expected type '*const u8', found '[5]u8'",
5225 "tmp.zig:2:9: error: expected type '*const u8', found '[5]u8'",
52245226 );
52255227
52265228 cases.add(
......@@ -5239,9 +5241,9 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
52395241 \\ var allocator: ContextAllocator = undefined;
52405242 \\}
52415243 ,
5242 ".tmp_source.zig:4:25: error: aoeu",
5243 ".tmp_source.zig:1:36: note: called from here",
5244 ".tmp_source.zig:12:20: note: referenced here",
5244 "tmp.zig:4:25: error: aoeu",
5245 "tmp.zig:1:36: note: called from here",
5246 "tmp.zig:12:20: note: referenced here",
52455247 );
52465248
52475249 cases.add(
......@@ -5258,7 +5260,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
52585260 \\ var x = Small.One;
52595261 \\}
52605262 ,
5261 ".tmp_source.zig:1:21: error: 'u2' too small to hold all bits; must be at least 'u3'",
5263 "tmp.zig:1:21: error: 'u2' too small to hold all bits; must be at least 'u3'",
52625264 );
52635265
52645266 cases.add(
......@@ -5273,7 +5275,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
52735275 \\ var x = Small.One;
52745276 \\}
52755277 ,
5276 ".tmp_source.zig:1:21: error: expected integer, found 'f32'",
5278 "tmp.zig:1:21: error: expected integer, found 'f32'",
52775279 );
52785280
52795281 cases.add(
......@@ -5289,7 +5291,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
52895291 \\ var x: u2 = Small.Two;
52905292 \\}
52915293 ,
5292 ".tmp_source.zig:9:22: error: expected type 'u2', found 'Small'",
5294 "tmp.zig:9:22: error: expected type 'u2', found 'Small'",
52935295 );
52945296
52955297 cases.add(
......@@ -5306,7 +5308,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
53065308 \\ var x = @intToEnum(Small, y);
53075309 \\}
53085310 ,
5309 ".tmp_source.zig:10:31: error: expected type 'u2', found 'u3'",
5311 "tmp.zig:10:31: error: expected type 'u2', found 'u3'",
53105312 );
53115313
53125314 cases.add(
......@@ -5322,7 +5324,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
53225324 \\ var y = Small.Two;
53235325 \\}
53245326 ,
5325 ".tmp_source.zig:1:20: error: expected unsigned integer, found 'i2'",
5327 "tmp.zig:1:20: error: expected unsigned integer, found 'i2'",
53265328 );
53275329
53285330 cases.add(
......@@ -5334,7 +5336,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
53345336 \\ var x: MultipleChoice = undefined;
53355337 \\}
53365338 ,
5337 ".tmp_source.zig:2:14: error: enums, not structs, support field assignment",
5339 "tmp.zig:2:14: error: enums, not structs, support field assignment",
53385340 );
53395341
53405342 cases.add(
......@@ -5346,8 +5348,8 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
53465348 \\ var x: MultipleChoice = undefined;
53475349 \\}
53485350 ,
5349 ".tmp_source.zig:2:14: error: non-enum union field assignment",
5350 ".tmp_source.zig:1:24: note: consider 'union(enum)' here",
5351 "tmp.zig:2:14: error: non-enum union field assignment",
5352 "tmp.zig:1:24: note: consider 'union(enum)' here",
53515353 );
53525354
53535355 cases.add(
......@@ -5357,7 +5359,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
53575359 \\ return @sizeOf(Foo);
53585360 \\}
53595361 ,
5360 ".tmp_source.zig:1:13: error: enums must have 1 or more fields",
5362 "tmp.zig:1:13: error: enums must have 1 or more fields",
53615363 );
53625364
53635365 cases.add(
......@@ -5367,7 +5369,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
53675369 \\ return @sizeOf(Foo);
53685370 \\}
53695371 ,
5370 ".tmp_source.zig:1:13: error: unions must have 1 or more fields",
5372 "tmp.zig:1:13: error: unions must have 1 or more fields",
53715373 );
53725374
53735375 cases.add(
......@@ -5383,8 +5385,8 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
53835385 \\ var x = MultipleChoice.C;
53845386 \\}
53855387 ,
5386 ".tmp_source.zig:6:9: error: enum tag value 60 already taken",
5387 ".tmp_source.zig:4:9: note: other occurrence here",
5388 "tmp.zig:6:9: error: enum tag value 60 already taken",
5389 "tmp.zig:4:9: note: other occurrence here",
53885390 );
53895391
53905392 cases.add(
......@@ -5402,8 +5404,8 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
54025404 \\ return @sizeOf(Payload);
54035405 \\}
54045406 ,
5405 ".tmp_source.zig:6:17: error: enum field missing: 'C'",
5406 ".tmp_source.zig:4:5: note: declared here",
5407 "tmp.zig:6:17: error: enum field missing: 'C'",
5408 "tmp.zig:4:5: note: declared here",
54075409 );
54085410
54095411 cases.add(
......@@ -5415,8 +5417,8 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
54155417 \\ const x = @TagType(Foo);
54165418 \\}
54175419 ,
5418 ".tmp_source.zig:5:24: error: union 'Foo' has no tag",
5419 ".tmp_source.zig:1:13: note: consider 'union(enum)' here",
5420 "tmp.zig:5:24: error: union 'Foo' has no tag",
5421 "tmp.zig:1:13: note: consider 'union(enum)' here",
54205422 );
54215423
54225424 cases.add(
......@@ -5428,7 +5430,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
54285430 \\ const x = @TagType(Foo);
54295431 \\}
54305432 ,
5431 ".tmp_source.zig:1:24: error: expected integer tag type, found 'f32'",
5433 "tmp.zig:1:24: error: expected integer tag type, found 'f32'",
54325434 );
54335435
54345436 cases.add(
......@@ -5440,7 +5442,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
54405442 \\ const x = @TagType(Foo);
54415443 \\}
54425444 ,
5443 ".tmp_source.zig:1:19: error: expected enum tag type, found 'u32'",
5445 "tmp.zig:1:19: error: expected enum tag type, found 'u32'",
54445446 );
54455447
54465448 cases.add(
......@@ -5456,8 +5458,8 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
54565458 \\ var x = MultipleChoice { .C = {} };
54575459 \\}
54585460 ,
5459 ".tmp_source.zig:6:9: error: enum tag value 60 already taken",
5460 ".tmp_source.zig:4:9: note: other occurrence here",
5461 "tmp.zig:6:9: error: enum tag value 60 already taken",
5462 "tmp.zig:4:9: note: other occurrence here",
54615463 );
54625464
54635465 cases.add(
......@@ -5477,8 +5479,8 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
54775479 \\ var a = Payload {.A = 1234};
54785480 \\}
54795481 ,
5480 ".tmp_source.zig:10:5: error: enum field not found: 'D'",
5481 ".tmp_source.zig:1:16: note: enum declared here",
5482 "tmp.zig:10:5: error: enum field not found: 'D'",
5483 "tmp.zig:1:16: note: enum declared here",
54825484 );
54835485
54845486 cases.add(
......@@ -5492,8 +5494,8 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
54925494 \\ var b = Letter.B;
54935495 \\}
54945496 ,
5495 ".tmp_source.zig:2:8: error: structs and unions, not enums, support field types",
5496 ".tmp_source.zig:1:16: note: consider 'union(enum)' here",
5497 "tmp.zig:2:8: error: structs and unions, not enums, support field types",
5498 "tmp.zig:1:16: note: consider 'union(enum)' here",
54975499 );
54985500
54995501 cases.add(
......@@ -5505,7 +5507,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
55055507 \\ var a = Letter { .A = {} };
55065508 \\}
55075509 ,
5508 ".tmp_source.zig:2:5: error: struct field missing type",
5510 "tmp.zig:2:5: error: struct field missing type",
55095511 );
55105512
55115513 cases.add(
......@@ -5517,7 +5519,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
55175519 \\ var a = Letter { .A = {} };
55185520 \\}
55195521 ,
5520 ".tmp_source.zig:2:5: error: union field missing type",
5522 "tmp.zig:2:5: error: union field missing type",
55215523 );
55225524
55235525 cases.add(
......@@ -5536,7 +5538,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
55365538 \\ var a = Payload { .A = 1234 };
55375539 \\}
55385540 ,
5539 ".tmp_source.zig:6:30: error: extern union does not support enum tag type",
5541 "tmp.zig:6:30: error: extern union does not support enum tag type",
55405542 );
55415543
55425544 cases.add(
......@@ -5555,7 +5557,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
55555557 \\ var a = Payload { .A = 1234 };
55565558 \\}
55575559 ,
5558 ".tmp_source.zig:6:30: error: packed union does not support enum tag type",
5560 "tmp.zig:6:30: error: packed union does not support enum tag type",
55595561 );
55605562
55615563 cases.add(
......@@ -5576,8 +5578,8 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
55765578 \\ }
55775579 \\}
55785580 ,
5579 ".tmp_source.zig:11:14: error: switch on union which has no attached enum",
5580 ".tmp_source.zig:1:17: note: consider 'union(enum)' here",
5581 "tmp.zig:11:14: error: switch on union which has no attached enum",
5582 "tmp.zig:1:17: note: consider 'union(enum)' here",
55815583 );
55825584
55835585 cases.add(
......@@ -5590,8 +5592,8 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
55905592 \\ var x = @intToEnum(Foo, 0);
55915593 \\}
55925594 ,
5593 ".tmp_source.zig:6:13: error: enum 'Foo' has no tag matching integer value 0",
5594 ".tmp_source.zig:1:13: note: 'Foo' declared here",
5595 "tmp.zig:6:13: error: enum 'Foo' has no tag matching integer value 0",
5596 "tmp.zig:1:13: note: 'Foo' declared here",
55955597 );
55965598
55975599 cases.add(
......@@ -5606,8 +5608,8 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
56065608 \\ var x: Value = Letter.A;
56075609 \\}
56085610 ,
5609 ".tmp_source.zig:8:26: error: cast to union 'Value' must initialize 'i32' field 'A'",
5610 ".tmp_source.zig:3:5: note: field 'A' declared here",
5611 "tmp.zig:8:26: error: cast to union 'Value' must initialize 'i32' field 'A'",
5612 "tmp.zig:3:5: note: field 'A' declared here",
56115613 );
56125614
56135615 cases.add(
......@@ -5625,8 +5627,8 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
56255627 \\ var x: Value = l;
56265628 \\}
56275629 ,
5628 ".tmp_source.zig:11:20: error: runtime cast to union 'Value' which has non-void fields",
5629 ".tmp_source.zig:3:5: note: field 'A' has type 'i32'",
5630 "tmp.zig:11:20: error: runtime cast to union 'Value' which has non-void fields",
5631 "tmp.zig:3:5: note: field 'A' has type 'i32'",
56305632 );
56315633
56325634 cases.add(
......@@ -5638,7 +5640,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
56385640 \\ const fieldOffset = @byteOffsetOf(Empty, "val",);
56395641 \\}
56405642 ,
5641 ".tmp_source.zig:5:46: error: zero-bit field 'val' in struct 'Empty' has no offset",
5643 "tmp.zig:5:46: error: zero-bit field 'val' in struct 'Empty' has no offset",
56425644 );
56435645
56445646 cases.add(
......@@ -5650,7 +5652,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
56505652 \\ const fieldOffset = @bitOffsetOf(Empty, "val",);
56515653 \\}
56525654 ,
5653 ".tmp_source.zig:5:45: error: zero-bit field 'val' in struct 'Empty' has no offset",
5655 "tmp.zig:5:45: error: zero-bit field 'val' in struct 'Empty' has no offset",
56545656 );
56555657
56565658 cases.add(
......@@ -5664,7 +5666,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
56645666 \\ const bar_val = foo.Bar;
56655667 \\}
56665668 ,
5667 ".tmp_source.zig:7:24: error: accessing union field 'Bar' while field 'Baz' is set",
5669 "tmp.zig:7:24: error: accessing union field 'Bar' while field 'Baz' is set",
56685670 );
56695671
56705672 cases.add(
......@@ -5674,7 +5676,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
56745676 \\ _ = @typeOf(generic).ReturnType;
56755677 \\}
56765678 ,
5677 ".tmp_source.zig:3:25: error: ReturnType has not been resolved because 'fn(var)var' is generic",
5679 "tmp.zig:3:25: error: ReturnType has not been resolved because 'fn(var)var' is generic",
56785680 );
56795681
56805682 cases.add(
......@@ -5684,7 +5686,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
56845686 \\ _ = @ArgType(@typeOf(generic), 0);
56855687 \\}
56865688 ,
5687 ".tmp_source.zig:3:36: error: @ArgType could not resolve the type of arg 0 because 'fn(var)var' is generic",
5689 "tmp.zig:3:36: error: @ArgType could not resolve the type of arg 0 because 'fn(var)var' is generic",
56885690 );
56895691
56905692 cases.add(
......@@ -5694,7 +5696,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
56945696 \\ asm volatile ("" : [baz]"+r"(bar) : : "");
56955697 \\}
56965698 ,
5697 ".tmp_source.zig:3:5: error: invalid modifier starting output constraint for 'baz': '+', only '=' is supported. Compiler TODO: see https://github.com/ziglang/zig/issues/215",
5699 "tmp.zig:3:5: error: invalid modifier starting output constraint for 'baz': '+', only '=' is supported. Compiler TODO: see https://github.com/ziglang/zig/issues/215",
56985700 );
56995701
57005702 cases.add(
......@@ -5703,7 +5705,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
57035705 \\ asm volatile ("" : : [bar]"r"(3) : "");
57045706 \\}
57055707 ,
5706 ".tmp_source.zig:2:35: error: expected sized integer or sized float, found comptime_int",
5708 "tmp.zig:2:35: error: expected sized integer or sized float, found comptime_int",
57075709 );
57085710
57095711 cases.add(
......@@ -5712,7 +5714,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
57125714 \\ asm volatile ("" : : [bar]"r"(3.17) : "");
57135715 \\}
57145716 ,
5715 ".tmp_source.zig:2:35: error: expected sized integer or sized float, found comptime_float",
5717 "tmp.zig:2:35: error: expected sized integer or sized float, found comptime_float",
57165718 );
57175719
57185720 cases.add(
......@@ -5726,7 +5728,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
57265728 \\ const foo = Foo { .Bar = x, .Baz = u8 };
57275729 \\}
57285730 ,
5729 ".tmp_source.zig:7:30: error: unable to evaluate constant expression",
5731 "tmp.zig:7:30: error: unable to evaluate constant expression",
57305732 );
57315733
57325734 cases.add(
......@@ -5740,7 +5742,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
57405742 \\ const foo = Foo { .Bar = x };
57415743 \\}
57425744 ,
5743 ".tmp_source.zig:7:30: error: unable to evaluate constant expression",
5745 "tmp.zig:7:30: error: unable to evaluate constant expression",
57445746 );
57455747
57465748 cases.addTest(
......@@ -5750,7 +5752,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
57505752 \\ var v: V = undefined;
57515753 \\}
57525754 ,
5753 ".tmp_source.zig:2:26: error: vector element type must be integer, float, or pointer; '@Vector(4, u8)' is invalid",
5755 "tmp.zig:2:26: error: vector element type must be integer, float, or pointer; '@Vector(4, u8)' is invalid",
57545756 );
57555757
57565758 cases.add("compileLog of tagged enum doesn't crash the compiler",
......@@ -5765,5 +5767,5 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
57655767 \\pub fn main () void {
57665768 \\ comptime testCompileLog(Bar{.X = 123});
57675769 \\}
5768 , ".tmp_source.zig:6:5: error: found compile log statement");
5770 , "tmp.zig:6:5: error: found compile log statement");
57695771}
test/stage1/behavior.zig+2
......@@ -18,6 +18,7 @@ comptime {
1818 _ = @import("behavior/bugs/1421.zig");
1919 _ = @import("behavior/bugs/1442.zig");
2020 _ = @import("behavior/bugs/1486.zig");
21 _ = @import("behavior/bugs/1500.zig");
2122 _ = @import("behavior/bugs/1851.zig");
2223 _ = @import("behavior/bugs/2006.zig");
2324 _ = @import("behavior/bugs/394.zig");
......@@ -25,6 +26,7 @@ comptime {
2526 _ = @import("behavior/bugs/529.zig");
2627 _ = @import("behavior/bugs/655.zig");
2728 _ = @import("behavior/bugs/656.zig");
29 _ = @import("behavior/bugs/679.zig");
2830 _ = @import("behavior/bugs/704.zig");
2931 _ = @import("behavior/bugs/718.zig");
3032 _ = @import("behavior/bugs/726.zig");
test/stage1/behavior/bugs/1500.zig created+10
......@@ -0,0 +1,10 @@
1const A = struct {
2 b: B,
3};
4
5const B = fn (A) void;
6
7test "allow these dependencies" {
8 var a: A = undefined;
9 var b: B = undefined;
10}
test/stage1/behavior/bugs/679.zig created+17
......@@ -0,0 +1,17 @@
1const std = @import("std");
2const expect = std.testing.expect;
3
4pub fn List(comptime T: type) type {
5 return u32;
6}
7
8const ElementList = List(Element);
9const Element = struct {
10 link: ElementList,
11};
12
13test "false dependency loop in struct definition" {
14 const listType = ElementList;
15 var x: listType = 42;
16 expect(x == 42);
17}
test/tests.zig+2-2
......@@ -569,7 +569,7 @@ pub const CompileErrorContext = struct {
569569 const ErrLineIter = struct {
570570 lines: mem.SplitIterator,
571571
572 const source_file = ".tmp_source.zig";
572 const source_file = "tmp.zig";
573573
574574 fn init(input: []const u8) ErrLineIter {
575575 return ErrLineIter{ .lines = mem.separate(input, "\n") };
......@@ -759,7 +759,7 @@ pub const CompileErrorContext = struct {
759759 .is_test = false,
760760 };
761761
762 tc.addSourceFile(".tmp_source.zig", source);
762 tc.addSourceFile("tmp.zig", source);
763763 comptime var arg_i = 0;
764764 inline while (arg_i < expected_lines.len) : (arg_i += 1) {
765765 tc.addExpectedError(expected_lines[arg_i]);