| ... | ... | @@ -120,6 +120,10 @@ pub const TestContext = struct { |
| 120 | 120 | } |
| 121 | 121 | self.updates.append(.{ .src = src, .case = .{ .Error = array } }) catch unreachable; |
| 122 | 122 | } |
| 123 | |
| 124 | pub fn compiles(self: *Case, src: [:0]const u8) void { |
| 125 | self.addError(src, &[_][]const u8{}); |
| 126 | } |
| 123 | 127 | }; |
| 124 | 128 | |
| 125 | 129 | pub fn addExe( |
| ... | ... | @@ -260,6 +264,34 @@ pub const TestContext = struct { |
| 260 | 264 | ctx.addError(name, target, .ZIR, src, expected_errors); |
| 261 | 265 | } |
| 262 | 266 | |
| 267 | pub fn addCompiles( |
| 268 | ctx: *TestContext, |
| 269 | name: []const u8, |
| 270 | target: std.zig.CrossTarget, |
| 271 | T: TestType, |
| 272 | src: [:0]const u8, |
| 273 | ) void { |
| 274 | ctx.addObj(name, target, T).compiles(src); |
| 275 | } |
| 276 | |
| 277 | pub fn compiles( |
| 278 | ctx: *TestContext, |
| 279 | name: []const u8, |
| 280 | target: std.zig.CrossTarget, |
| 281 | src: [:0]const u8, |
| 282 | ) void { |
| 283 | ctx.addCompiles(name, target, .Zig, src); |
| 284 | } |
| 285 | |
| 286 | pub fn compilesZIR( |
| 287 | ctx: *TestContext, |
| 288 | name: []const u8, |
| 289 | target: std.zig.CrossTarget, |
| 290 | src: [:0]const u8, |
| 291 | ) void { |
| 292 | ctx.addCompiles(name, target, .ZIR, src); |
| 293 | } |
| 294 | |
| 263 | 295 | fn init() TestContext { |
| 264 | 296 | const allocator = std.heap.page_allocator; |
| 265 | 297 | return .{ .cases = std.ArrayList(Case).init(allocator) }; |