| ... | @@ -614,11 +614,11 @@ pub fn addCases(ctx: *TestContext) !void { | ... | @@ -614,11 +614,11 @@ pub fn addCases(ctx: *TestContext) !void { |
| 614 | \\} | 614 | \\} |
| 615 | , &[_][]const u8{ | 615 | , &[_][]const u8{ |
| 616 | "tmp.zig:2:12: error: redefinition of label 'blk'", | 616 | "tmp.zig:2:12: error: redefinition of label 'blk'", |
| 617 | "tmp.zig:2:5: note: previous definition is here", | 617 | "tmp.zig:2:5: note: previous definition here", |
| 618 | "tmp.zig:5:26: error: redefinition of label 'blk'", | 618 | "tmp.zig:5:26: error: redefinition of label 'blk'", |
| 619 | "tmp.zig:5:5: note: previous definition is here", | 619 | "tmp.zig:5:5: note: previous definition here", |
| 620 | "tmp.zig:8:46: error: redefinition of label 'blk'", | 620 | "tmp.zig:8:46: error: redefinition of label 'blk'", |
| 621 | "tmp.zig:8:5: note: previous definition is here", | 621 | "tmp.zig:8:5: note: previous definition here", |
| 622 | "tmp.zig:11:5: error: unused block label", | 622 | "tmp.zig:11:5: error: unused block label", |
| 623 | "tmp.zig:14:5: error: unused while loop label", | 623 | "tmp.zig:14:5: error: unused while loop label", |
| 624 | "tmp.zig:17:5: error: unused for loop label", | 624 | "tmp.zig:17:5: error: unused for loop label", |
| ... | @@ -4261,7 +4261,7 @@ pub fn addCases(ctx: *TestContext) !void { | ... | @@ -4261,7 +4261,7 @@ pub fn addCases(ctx: *TestContext) !void { |
| 4261 | \\} | 4261 | \\} |
| 4262 | , &[_][]const u8{ | 4262 | , &[_][]const u8{ |
| 4263 | "tmp.zig:5:14: error: duplicate switch value: '@typeInfo(@typeInfo(@TypeOf(foo)).Fn.return_type.?).ErrorUnion.error_set.Foo'", | 4263 | "tmp.zig:5:14: error: duplicate switch value: '@typeInfo(@typeInfo(@TypeOf(foo)).Fn.return_type.?).ErrorUnion.error_set.Foo'", |
| 4264 | "tmp.zig:3:14: note: other value is here", | 4264 | "tmp.zig:3:14: note: other value here", |
| 4265 | }); | 4265 | }); |
| 4266 | | 4266 | |
| 4267 | ctx.objErrStage1("invalid cast from integral type to enum", | 4267 | ctx.objErrStage1("invalid cast from integral type to enum", |
| ... | @@ -4932,8 +4932,8 @@ pub fn addCases(ctx: *TestContext) !void { | ... | @@ -4932,8 +4932,8 @@ pub fn addCases(ctx: *TestContext) !void { |
| 4932 | }); | 4932 | }); |
| 4933 | | 4933 | |
| 4934 | ctx.objErrStage1("wrong number of arguments", | 4934 | ctx.objErrStage1("wrong number of arguments", |
| 4935 | \\export fn a() void { | 4935 | \\export fn d() void { |
| 4936 | \\ b(1); | 4936 | \\ e(1); |
| 4937 | \\} | 4937 | \\} |
| 4938 | \\fn b(a: i32, b: i32, c: i32) void { _ = a; _ = b; _ = c; } | 4938 | \\fn b(a: i32, b: i32, c: i32) void { _ = a; _ = b; _ = c; } |
| 4939 | , &[_][]const u8{ | 4939 | , &[_][]const u8{ |
| ... | @@ -4988,7 +4988,7 @@ pub fn addCases(ctx: *TestContext) !void { | ... | @@ -4988,7 +4988,7 @@ pub fn addCases(ctx: *TestContext) !void { |
| 4988 | \\} | 4988 | \\} |
| 4989 | \\export fn entry() void { f(1, 2); } | 4989 | \\export fn entry() void { f(1, 2); } |
| 4990 | , &[_][]const u8{ | 4990 | , &[_][]const u8{ |
| 4991 | "tmp.zig:1:15: error: redeclaration of parameter 'a'", | 4991 | "tmp.zig:1:15: error: redeclaration of function parameter 'a'", |
| 4992 | "tmp.zig:1:6: note: previous declaration here", | 4992 | "tmp.zig:1:6: note: previous declaration here", |
| 4993 | }); | 4993 | }); |
| 4994 | | 4994 | |
| ... | @@ -4998,7 +4998,7 @@ pub fn addCases(ctx: *TestContext) !void { | ... | @@ -4998,7 +4998,7 @@ pub fn addCases(ctx: *TestContext) !void { |
| 4998 | \\ var a = 0; | 4998 | \\ var a = 0; |
| 4999 | \\} | 4999 | \\} |
| 5000 | , &[_][]const u8{ | 5000 | , &[_][]const u8{ |
| 5001 | "tmp.zig:3:9: error: redeclaration of local const 'a'", | 5001 | "tmp.zig:3:9: error: redeclaration of local constant 'a'", |
| 5002 | "tmp.zig:2:11: note: previous declaration here", | 5002 | "tmp.zig:2:11: note: previous declaration here", |
| 5003 | }); | 5003 | }); |
| 5004 | | 5004 | |
| ... | @@ -5008,7 +5008,7 @@ pub fn addCases(ctx: *TestContext) !void { | ... | @@ -5008,7 +5008,7 @@ pub fn addCases(ctx: *TestContext) !void { |
| 5008 | \\} | 5008 | \\} |
| 5009 | \\export fn entry() void { f(1); } | 5009 | \\export fn entry() void { f(1); } |
| 5010 | , &[_][]const u8{ | 5010 | , &[_][]const u8{ |
| 5011 | "tmp.zig:2:11: error: redeclaration of parameter 'a'", | 5011 | "tmp.zig:2:11: error: redeclaration of function parameter 'a'", |
| 5012 | "tmp.zig:1:6: note: previous declaration here", | 5012 | "tmp.zig:1:6: note: previous declaration here", |
| 5013 | }); | 5013 | }); |
| 5014 | | 5014 | |
| ... | @@ -5295,7 +5295,7 @@ pub fn addCases(ctx: *TestContext) !void { | ... | @@ -5295,7 +5295,7 @@ pub fn addCases(ctx: *TestContext) !void { |
| 5295 | \\ _ = foo; | 5295 | \\ _ = foo; |
| 5296 | \\} | 5296 | \\} |
| 5297 | , &[_][]const u8{ | 5297 | , &[_][]const u8{ |
| 5298 | "tmp.zig:1:21: error: type '[3]u16' does not support struct initialization syntax", | 5298 | "tmp.zig:1:13: error: initializing array with struct syntax", |
| 5299 | }); | 5299 | }); |
| 5300 | | 5300 | |
| 5301 | ctx.objErrStage1("type variables must be constant", | 5301 | ctx.objErrStage1("type variables must be constant", |
| ... | @@ -5307,23 +5307,28 @@ pub fn addCases(ctx: *TestContext) !void { | ... | @@ -5307,23 +5307,28 @@ pub fn addCases(ctx: *TestContext) !void { |
| 5307 | "tmp.zig:1:1: error: variable of type 'type' must be constant", | 5307 | "tmp.zig:1:1: error: variable of type 'type' must be constant", |
| 5308 | }); | 5308 | }); |
| 5309 | | 5309 | |
| 5310 | ctx.objErrStage1("variables shadowing types", | 5310 | ctx.objErrStage1("parameter shadowing global", |
| | 5311 | \\const Foo = struct {}; |
| | 5312 | \\fn f(Foo: i32) void {} |
| | 5313 | \\export fn entry() void { |
| | 5314 | \\ f(1234); |
| | 5315 | \\} |
| | 5316 | , &[_][]const u8{ |
| | 5317 | "tmp.zig:2:6: error: local shadows declaration of 'Foo'", |
| | 5318 | "tmp.zig:1:1: note: declared here", |
| | 5319 | }); |
| | 5320 | |
| | 5321 | ctx.objErrStage1("local variable shadowing global", |
| 5311 | \\const Foo = struct {}; | 5322 | \\const Foo = struct {}; |
| 5312 | \\const Bar = struct {}; | 5323 | \\const Bar = struct {}; |
| 5313 | \\ | 5324 | \\ |
| 5314 | \\fn f(Foo: i32) void { | 5325 | \\export fn entry() void { |
| 5315 | \\ var Bar : i32 = undefined; | 5326 | \\ var Bar : i32 = undefined; |
| 5316 | \\ _ = Bar; | 5327 | \\ _ = Bar; |
| 5317 | \\} | 5328 | \\} |
| 5318 | \\ | | |
| 5319 | \\export fn entry() void { | | |
| 5320 | \\ f(1234); | | |
| 5321 | \\} | | |
| 5322 | , &[_][]const u8{ | 5329 | , &[_][]const u8{ |
| 5323 | "tmp.zig:4:6: error: redefinition of 'Foo'", | 5330 | "tmp.zig:5:9: error: local shadows declaration of 'Bar'", |
| 5324 | "tmp.zig:1:1: note: previous definition is here", | 5331 | "tmp.zig:2:1: note: declared here", |
| 5325 | "tmp.zig:5:5: error: redefinition of 'Bar'", | | |
| 5326 | "tmp.zig:2:1: note: previous definition is here", | | |
| 5327 | }); | 5332 | }); |
| 5328 | | 5333 | |
| 5329 | ctx.objErrStage1("switch expression - missing enumeration prong", | 5334 | ctx.objErrStage1("switch expression - missing enumeration prong", |
| ... | @@ -5366,7 +5371,7 @@ pub fn addCases(ctx: *TestContext) !void { | ... | @@ -5366,7 +5371,7 @@ pub fn addCases(ctx: *TestContext) !void { |
| 5366 | \\export fn entry() usize { return @sizeOf(@TypeOf(f)); } | 5371 | \\export fn entry() usize { return @sizeOf(@TypeOf(f)); } |
| 5367 | , &[_][]const u8{ | 5372 | , &[_][]const u8{ |
| 5368 | "tmp.zig:13:15: error: duplicate switch value", | 5373 | "tmp.zig:13:15: error: duplicate switch value", |
| 5369 | "tmp.zig:10:15: note: other value is here", | 5374 | "tmp.zig:10:15: note: other value here", |
| 5370 | }); | 5375 | }); |
| 5371 | | 5376 | |
| 5372 | ctx.objErrStage1("switch expression - duplicate enumeration prong when else present", | 5377 | ctx.objErrStage1("switch expression - duplicate enumeration prong when else present", |
| ... | @@ -5390,7 +5395,7 @@ pub fn addCases(ctx: *TestContext) !void { | ... | @@ -5390,7 +5395,7 @@ pub fn addCases(ctx: *TestContext) !void { |
| 5390 | \\export fn entry() usize { return @sizeOf(@TypeOf(f)); } | 5395 | \\export fn entry() usize { return @sizeOf(@TypeOf(f)); } |
| 5391 | , &[_][]const u8{ | 5396 | , &[_][]const u8{ |
| 5392 | "tmp.zig:13:15: error: duplicate switch value", | 5397 | "tmp.zig:13:15: error: duplicate switch value", |
| 5393 | "tmp.zig:10:15: note: other value is here", | 5398 | "tmp.zig:10:15: note: other value here", |
| 5394 | }); | 5399 | }); |
| 5395 | | 5400 | |
| 5396 | ctx.objErrStage1("switch expression - multiple else prongs", | 5401 | ctx.objErrStage1("switch expression - multiple else prongs", |
| ... | @@ -5431,7 +5436,7 @@ pub fn addCases(ctx: *TestContext) !void { | ... | @@ -5431,7 +5436,7 @@ pub fn addCases(ctx: *TestContext) !void { |
| 5431 | \\export fn entry() usize { return @sizeOf(@TypeOf(foo)); } | 5436 | \\export fn entry() usize { return @sizeOf(@TypeOf(foo)); } |
| 5432 | , &[_][]const u8{ | 5437 | , &[_][]const u8{ |
| 5433 | "tmp.zig:6:9: error: duplicate switch value", | 5438 | "tmp.zig:6:9: error: duplicate switch value", |
| 5434 | "tmp.zig:5:14: note: previous value is here", | 5439 | "tmp.zig:5:14: note: previous value here", |
| 5435 | }); | 5440 | }); |
| 5436 | | 5441 | |
| 5437 | ctx.objErrStage1("switch expression - duplicate type", | 5442 | ctx.objErrStage1("switch expression - duplicate type", |
| ... | @@ -5447,7 +5452,7 @@ pub fn addCases(ctx: *TestContext) !void { | ... | @@ -5447,7 +5452,7 @@ pub fn addCases(ctx: *TestContext) !void { |
| 5447 | \\export fn entry() usize { return @sizeOf(@TypeOf(foo(u32, 0))); } | 5452 | \\export fn entry() usize { return @sizeOf(@TypeOf(foo(u32, 0))); } |
| 5448 | , &[_][]const u8{ | 5453 | , &[_][]const u8{ |
| 5449 | "tmp.zig:6:9: error: duplicate switch value", | 5454 | "tmp.zig:6:9: error: duplicate switch value", |
| 5450 | "tmp.zig:4:9: note: previous value is here", | 5455 | "tmp.zig:4:9: note: previous value here", |
| 5451 | }); | 5456 | }); |
| 5452 | | 5457 | |
| 5453 | ctx.objErrStage1("switch expression - duplicate type (struct alias)", | 5458 | ctx.objErrStage1("switch expression - duplicate type (struct alias)", |
| ... | @@ -5467,7 +5472,7 @@ pub fn addCases(ctx: *TestContext) !void { | ... | @@ -5467,7 +5472,7 @@ pub fn addCases(ctx: *TestContext) !void { |
| 5467 | \\export fn entry() usize { return @sizeOf(@TypeOf(foo(u32, 0))); } | 5472 | \\export fn entry() usize { return @sizeOf(@TypeOf(foo(u32, 0))); } |
| 5468 | , &[_][]const u8{ | 5473 | , &[_][]const u8{ |
| 5469 | "tmp.zig:10:9: error: duplicate switch value", | 5474 | "tmp.zig:10:9: error: duplicate switch value", |
| 5470 | "tmp.zig:8:9: note: previous value is here", | 5475 | "tmp.zig:8:9: note: previous value here", |
| 5471 | }); | 5476 | }); |
| 5472 | | 5477 | |
| 5473 | ctx.objErrStage1("switch expression - switch on pointer type with no else", | 5478 | ctx.objErrStage1("switch expression - switch on pointer type with no else", |
| ... | @@ -5662,10 +5667,9 @@ pub fn addCases(ctx: *TestContext) !void { | ... | @@ -5662,10 +5667,9 @@ pub fn addCases(ctx: *TestContext) !void { |
| 5662 | ctx.objErrStage1("normal string with newline", | 5667 | ctx.objErrStage1("normal string with newline", |
| 5663 | \\const foo = "a | 5668 | \\const foo = "a |
| 5664 | \\b"; | 5669 | \\b"; |
| 5665 | \\ | | |
| 5666 | \\export fn entry() usize { return @sizeOf(@TypeOf(foo)); } | | |
| 5667 | , &[_][]const u8{ | 5670 | , &[_][]const u8{ |
| 5668 | "tmp.zig:1:15: error: newline not allowed in string literal", | 5671 | "tmp.zig:1:13: error: expected expression, found 'invalid'", |
| | 5672 | "tmp.zig:1:15: note: invalid byte here", |
| 5669 | }); | 5673 | }); |
| 5670 | | 5674 | |
| 5671 | ctx.objErrStage1("invalid comparison for function pointers", | 5675 | ctx.objErrStage1("invalid comparison for function pointers", |
| ... | @@ -6595,7 +6599,7 @@ pub fn addCases(ctx: *TestContext) !void { | ... | @@ -6595,7 +6599,7 @@ pub fn addCases(ctx: *TestContext) !void { |
| 6595 | \\ | 6599 | \\ |
| 6596 | \\export fn entry() usize { return @sizeOf(@TypeOf(testTrickyDefer)); } | 6600 | \\export fn entry() usize { return @sizeOf(@TypeOf(testTrickyDefer)); } |
| 6597 | , &[_][]const u8{ | 6601 | , &[_][]const u8{ |
| 6598 | "tmp.zig:4:11: error: 'try' is not allowed inside defer expression", | 6602 | "tmp.zig:4:11: error: 'try' not allowed inside defer expression", |
| 6599 | }); | 6603 | }); |
| 6600 | | 6604 | |
| 6601 | ctx.objErrStage1("assign too big number to u16", | 6605 | ctx.objErrStage1("assign too big number to u16", |
| ... | @@ -6976,7 +6980,7 @@ pub fn addCases(ctx: *TestContext) !void { | ... | @@ -6976,7 +6980,7 @@ pub fn addCases(ctx: *TestContext) !void { |
| 6976 | \\} | 6980 | \\} |
| 6977 | , &[_][]const u8{ | 6981 | , &[_][]const u8{ |
| 6978 | "tmp.zig:9:17: error: redefinition of 'Self'", | 6982 | "tmp.zig:9:17: error: redefinition of 'Self'", |
| 6979 | "tmp.zig:5:9: note: previous definition is here", | 6983 | "tmp.zig:5:9: note: previous definition here", |
| 6980 | }); | 6984 | }); |
| 6981 | | 6985 | |
| 6982 | ctx.objErrStage1("while expected bool, got optional", | 6986 | ctx.objErrStage1("while expected bool, got optional", |
| ... | @@ -7692,24 +7696,18 @@ pub fn addCases(ctx: *TestContext) !void { | ... | @@ -7692,24 +7696,18 @@ pub fn addCases(ctx: *TestContext) !void { |
| 7692 | \\ _ = x; | 7696 | \\ _ = x; |
| 7693 | \\} | 7697 | \\} |
| 7694 | , &[_][]const u8{ | 7698 | , &[_][]const u8{ |
| 7695 | "tmp.zig:2:14: error: untagged union field assignment", | 7699 | "tmp.zig:1:24: error: explicitly valued tagged union missing integer tag type", |
| 7696 | "tmp.zig:1:24: note: consider 'union(enum)' here", | 7700 | "tmp.zig:2:14: note: tag value specified here", |
| 7697 | }); | 7701 | }); |
| 7698 | | 7702 | |
| 7699 | ctx.objErrStage1("enum with 0 fields", | 7703 | ctx.objErrStage1("enum with 0 fields", |
| 7700 | \\const Foo = enum {}; | 7704 | \\const Foo = enum {}; |
| 7701 | \\export fn entry() usize { | | |
| 7702 | \\ return @sizeOf(Foo); | | |
| 7703 | \\} | | |
| 7704 | , &[_][]const u8{ | 7705 | , &[_][]const u8{ |
| 7705 | "tmp.zig:1:13: error: enums must have 1 or more fields", | 7706 | "tmp.zig:1:13: error: enum declarations must have at least one tag", |
| 7706 | }); | 7707 | }); |
| 7707 | | 7708 | |
| 7708 | ctx.objErrStage1("union with 0 fields", | 7709 | ctx.objErrStage1("union with 0 fields", |
| 7709 | \\const Foo = union {}; | 7710 | \\const Foo = union {}; |
| 7710 | \\export fn entry() usize { | | |
| 7711 | \\ return @sizeOf(Foo); | | |
| 7712 | \\} | | |
| 7713 | , &[_][]const u8{ | 7711 | , &[_][]const u8{ |
| 7714 | "tmp.zig:1:13: error: union declarations must have at least one tag", | 7712 | "tmp.zig:1:13: error: union declarations must have at least one tag", |
| 7715 | }); | 7713 | }); |
| ... | @@ -7817,13 +7815,9 @@ pub fn addCases(ctx: *TestContext) !void { | ... | @@ -7817,13 +7815,9 @@ pub fn addCases(ctx: *TestContext) !void { |
| 7817 | \\ B, | 7815 | \\ B, |
| 7818 | \\ C, | 7816 | \\ C, |
| 7819 | \\}; | 7817 | \\}; |
| 7820 | \\export fn entry() void { | | |
| 7821 | \\ var b = Letter.B; | | |
| 7822 | \\ _ = b; | | |
| 7823 | \\} | | |
| 7824 | , &[_][]const u8{ | 7818 | , &[_][]const u8{ |
| 7825 | "tmp.zig:2:8: error: structs and unions, not enums, support field types", | 7819 | "tmp.zig:2:8: error: enum fields do not have types", |
| 7826 | "tmp.zig:1:16: note: consider 'union(enum)' here", | 7820 | "tmp.zig:1:16: note: consider 'union(enum)' here to make it a tagged union", |
| 7827 | }); | 7821 | }); |
| 7828 | | 7822 | |
| 7829 | ctx.objErrStage1("struct field missing type", | 7823 | ctx.objErrStage1("struct field missing type", |
| ... | @@ -8231,9 +8225,9 @@ pub fn addCases(ctx: *TestContext) !void { | ... | @@ -8231,9 +8225,9 @@ pub fn addCases(ctx: *TestContext) !void { |
| 8231 | \\} | 8225 | \\} |
| 8232 | , &[_][]const u8{ | 8226 | , &[_][]const u8{ |
| 8233 | "tmp.zig:3:28: error: parameter of opaque type 'FooType' not allowed", | 8227 | "tmp.zig:3:28: error: parameter of opaque type 'FooType' not allowed", |
| 8234 | "tmp.zig:7:28: error: parameter of type '(null)' not allowed", | 8228 | "tmp.zig:8:28: error: parameter of type '(null)' not allowed", |
| 8235 | "tmp.zig:10:11: error: parameter of opaque type 'FooType' not allowed", | 8229 | "tmp.zig:12:11: error: parameter of opaque type 'FooType' not allowed", |
| 8236 | "tmp.zig:15:11: error: parameter of type '(null)' not allowed", | 8230 | "tmp.zig:17:11: error: parameter of type '(null)' not allowed", |
| 8237 | }); | 8231 | }); |
| 8238 | | 8232 | |
| 8239 | ctx.objErrStage1( // fixed bug #2032 | 8233 | ctx.objErrStage1( // fixed bug #2032 |
| ... | @@ -8268,8 +8262,8 @@ pub fn addCases(ctx: *TestContext) !void { | ... | @@ -8268,8 +8262,8 @@ pub fn addCases(ctx: *TestContext) !void { |
| 8268 | \\} | 8262 | \\} |
| 8269 | , &[_][]const u8{ | 8263 | , &[_][]const u8{ |
| 8270 | "tmp.zig:3:19: error: use of undefined value here causes undefined behavior", | 8264 | "tmp.zig:3:19: error: use of undefined value here causes undefined behavior", |
| 8271 | "tmp.zig:8:23: error: use of undefined value here causes undefined behavior", | 8265 | "tmp.zig:9:23: error: use of undefined value here causes undefined behavior", |
| 8272 | "tmp.zig:14:23: error: use of undefined value here causes undefined behavior", | 8266 | "tmp.zig:16:23: error: use of undefined value here causes undefined behavior", |
| 8273 | }); | 8267 | }); |
| 8274 | | 8268 | |
| 8275 | ctx.objErrStage1("issue #3818: bitcast from parray/slice to u16", | 8269 | ctx.objErrStage1("issue #3818: bitcast from parray/slice to u16", |
| ... | @@ -8285,8 +8279,8 @@ pub fn addCases(ctx: *TestContext) !void { | ... | @@ -8285,8 +8279,8 @@ pub fn addCases(ctx: *TestContext) !void { |
| 8285 | \\} | 8279 | \\} |
| 8286 | , &[_][]const u8{ | 8280 | , &[_][]const u8{ |
| 8287 | "tmp.zig:3:42: error: unable to @bitCast from pointer type '*[2]u8'", | 8281 | "tmp.zig:3:42: error: unable to @bitCast from pointer type '*[2]u8'", |
| 8288 | "tmp.zig:7:32: error: destination type 'u16' has size 2 but source type '[]const u8' has size 16", | 8282 | "tmp.zig:8:32: error: destination type 'u16' has size 2 but source type '[]const u8' has size 16", |
| 8289 | "tmp.zig:7:37: note: referenced here", | 8283 | "tmp.zig:8:37: note: referenced here", |
| 8290 | }); | 8284 | }); |
| 8291 | | 8285 | |
| 8292 | // issue #7810 | 8286 | // issue #7810 |
| ... | @@ -8361,12 +8355,12 @@ pub fn addCases(ctx: *TestContext) !void { | ... | @@ -8361,12 +8355,12 @@ pub fn addCases(ctx: *TestContext) !void { |
| 8361 | \\} | 8355 | \\} |
| 8362 | , &[_][]const u8{ | 8356 | , &[_][]const u8{ |
| 8363 | ":4:29: error: slice-sentinel is out of bounds", | 8357 | ":4:29: error: slice-sentinel is out of bounds", |
| 8364 | ":11:29: error: slice-sentinel is out of bounds", | 8358 | ":12:29: error: slice-sentinel is out of bounds", |
| 8365 | ":18:29: error: slice-sentinel is out of bounds", | 8359 | ":20:29: error: slice-sentinel is out of bounds", |
| 8366 | ":25:29: error: slice-sentinel is out of bounds", | 8360 | ":28:29: error: slice-sentinel is out of bounds", |
| 8367 | ":32:29: error: slice-sentinel is out of bounds", | 8361 | ":36:29: error: slice-sentinel is out of bounds", |
| 8368 | ":39:29: error: slice-sentinel is out of bounds", | 8362 | ":44:29: error: slice-sentinel is out of bounds", |
| 8369 | ":46:29: error: slice-sentinel is out of bounds", | 8363 | ":52:29: error: slice-sentinel is out of bounds", |
| 8370 | }); | 8364 | }); |
| 8371 | | 8365 | |
| 8372 | ctx.objErrStage1("comptime slice-sentinel is out of bounds (terminated)", | 8366 | ctx.objErrStage1("comptime slice-sentinel is out of bounds (terminated)", |
| ... | @@ -8427,12 +8421,12 @@ pub fn addCases(ctx: *TestContext) !void { | ... | @@ -8427,12 +8421,12 @@ pub fn addCases(ctx: *TestContext) !void { |
| 8427 | \\} | 8421 | \\} |
| 8428 | , &[_][]const u8{ | 8422 | , &[_][]const u8{ |
| 8429 | ":4:29: error: out of bounds slice", | 8423 | ":4:29: error: out of bounds slice", |
| 8430 | ":11:29: error: out of bounds slice", | 8424 | ":12:29: error: out of bounds slice", |
| 8431 | ":18:29: error: out of bounds slice", | 8425 | ":20:29: error: out of bounds slice", |
| 8432 | ":25:29: error: out of bounds slice", | 8426 | ":28:29: error: out of bounds slice", |
| 8433 | ":32:29: error: out of bounds slice", | 8427 | ":36:29: error: out of bounds slice", |
| 8434 | ":39:29: error: out of bounds slice", | 8428 | ":44:29: error: out of bounds slice", |
| 8435 | ":46:29: error: out of bounds slice", | 8429 | ":52:29: error: out of bounds slice", |
| 8436 | }); | 8430 | }); |
| 8437 | | 8431 | |
| 8438 | ctx.objErrStage1("comptime slice-sentinel does not match memory at target index (unterminated)", | 8432 | ctx.objErrStage1("comptime slice-sentinel does not match memory at target index (unterminated)", |
| ... | @@ -8493,12 +8487,12 @@ pub fn addCases(ctx: *TestContext) !void { | ... | @@ -8493,12 +8487,12 @@ pub fn addCases(ctx: *TestContext) !void { |
| 8493 | \\} | 8487 | \\} |
| 8494 | , &[_][]const u8{ | 8488 | , &[_][]const u8{ |
| 8495 | ":4:29: error: slice-sentinel does not match memory at target index", | 8489 | ":4:29: error: slice-sentinel does not match memory at target index", |
| 8496 | ":11:29: error: slice-sentinel does not match memory at target index", | 8490 | ":12:29: error: slice-sentinel does not match memory at target index", |
| 8497 | ":18:29: error: slice-sentinel does not match memory at target index", | 8491 | ":20:29: error: slice-sentinel does not match memory at target index", |
| 8498 | ":25:29: error: slice-sentinel does not match memory at target index", | 8492 | ":28:29: error: slice-sentinel does not match memory at target index", |
| 8499 | ":32:29: error: slice-sentinel does not match memory at target index", | 8493 | ":36:29: error: slice-sentinel does not match memory at target index", |
| 8500 | ":39:29: error: slice-sentinel does not match memory at target index", | 8494 | ":44:29: error: slice-sentinel does not match memory at target index", |
| 8501 | ":46:29: error: slice-sentinel does not match memory at target index", | 8495 | ":52:29: error: slice-sentinel does not match memory at target index", |
| 8502 | }); | 8496 | }); |
| 8503 | | 8497 | |
| 8504 | ctx.objErrStage1("comptime slice-sentinel does not match memory at target index (terminated)", | 8498 | ctx.objErrStage1("comptime slice-sentinel does not match memory at target index (terminated)", |
| ... | @@ -8559,12 +8553,12 @@ pub fn addCases(ctx: *TestContext) !void { | ... | @@ -8559,12 +8553,12 @@ pub fn addCases(ctx: *TestContext) !void { |
| 8559 | \\} | 8553 | \\} |
| 8560 | , &[_][]const u8{ | 8554 | , &[_][]const u8{ |
| 8561 | ":4:29: error: slice-sentinel does not match memory at target index", | 8555 | ":4:29: error: slice-sentinel does not match memory at target index", |
| 8562 | ":11:29: error: slice-sentinel does not match memory at target index", | 8556 | ":12:29: error: slice-sentinel does not match memory at target index", |
| 8563 | ":18:29: error: slice-sentinel does not match memory at target index", | 8557 | ":20:29: error: slice-sentinel does not match memory at target index", |
| 8564 | ":25:29: error: slice-sentinel does not match memory at target index", | 8558 | ":28:29: error: slice-sentinel does not match memory at target index", |
| 8565 | ":32:29: error: slice-sentinel does not match memory at target index", | 8559 | ":36:29: error: slice-sentinel does not match memory at target index", |
| 8566 | ":39:29: error: slice-sentinel does not match memory at target index", | 8560 | ":44:29: error: slice-sentinel does not match memory at target index", |
| 8567 | ":46:29: error: slice-sentinel does not match memory at target index", | 8561 | ":52:29: error: slice-sentinel does not match memory at target index", |
| 8568 | }); | 8562 | }); |
| 8569 | | 8563 | |
| 8570 | ctx.objErrStage1("comptime slice-sentinel does not match target-sentinel", | 8564 | ctx.objErrStage1("comptime slice-sentinel does not match target-sentinel", |
| ... | @@ -8625,12 +8619,12 @@ pub fn addCases(ctx: *TestContext) !void { | ... | @@ -8625,12 +8619,12 @@ pub fn addCases(ctx: *TestContext) !void { |
| 8625 | \\} | 8619 | \\} |
| 8626 | , &[_][]const u8{ | 8620 | , &[_][]const u8{ |
| 8627 | ":4:29: error: slice-sentinel does not match target-sentinel", | 8621 | ":4:29: error: slice-sentinel does not match target-sentinel", |
| 8628 | ":11:29: error: slice-sentinel does not match target-sentinel", | 8622 | ":12:29: error: slice-sentinel does not match target-sentinel", |
| 8629 | ":18:29: error: slice-sentinel does not match target-sentinel", | 8623 | ":20:29: error: slice-sentinel does not match target-sentinel", |
| 8630 | ":25:29: error: slice-sentinel does not match target-sentinel", | 8624 | ":28:29: error: slice-sentinel does not match target-sentinel", |
| 8631 | ":32:29: error: slice-sentinel does not match target-sentinel", | 8625 | ":36:29: error: slice-sentinel does not match target-sentinel", |
| 8632 | ":39:29: error: slice-sentinel does not match target-sentinel", | 8626 | ":44:29: error: slice-sentinel does not match target-sentinel", |
| 8633 | ":46:29: error: slice-sentinel does not match target-sentinel", | 8627 | ":52:29: error: slice-sentinel does not match target-sentinel", |
| 8634 | }); | 8628 | }); |
| 8635 | | 8629 | |
| 8636 | ctx.objErrStage1("issue #4207: coerce from non-terminated-slice to terminated-pointer", | 8630 | ctx.objErrStage1("issue #4207: coerce from non-terminated-slice to terminated-pointer", |
| ... | @@ -8774,7 +8768,8 @@ pub fn addCases(ctx: *TestContext) !void { | ... | @@ -8774,7 +8768,8 @@ pub fn addCases(ctx: *TestContext) !void { |
| 8774 | \\ _ = sequence; | 8768 | \\ _ = sequence; |
| 8775 | \\} | 8769 | \\} |
| 8776 | , &[_][]const u8{ | 8770 | , &[_][]const u8{ |
| 8777 | "tmp.zig:2:30: error: `.*` cannot be followed by `*`. Are you missing a space?", | 8771 | // Ideally this would be column 30 but it's not very important. |
| | 8772 | "tmp.zig:2:28: error: `.*` cannot be followed by `*`. Are you missing a space?", |
| 8778 | }); | 8773 | }); |
| 8779 | | 8774 | |
| 8780 | ctx.objErrStage1("Issue #9165: windows tcp server compilation error", | 8775 | ctx.objErrStage1("Issue #9165: windows tcp server compilation error", |