| ... | @@ -2406,22 +2406,24 @@ pub fn genErrDecls(o: *Object) !void { | ... | @@ -2406,22 +2406,24 @@ pub fn genErrDecls(o: *Object) !void { |
| 2406 | const mod = o.dg.module; | 2406 | const mod = o.dg.module; |
| 2407 | const writer = o.writer(); | 2407 | const writer = o.writer(); |
| 2408 | | 2408 | |
| 2409 | try writer.writeAll("enum {\n"); | | |
| 2410 | o.indent_writer.pushIndent(); | | |
| 2411 | var max_name_len: usize = 0; | 2409 | var max_name_len: usize = 0; |
| 2412 | for (mod.global_error_set.keys()[1..], 1..) |name_nts, value| { | 2410 | // do not generate an invalid empty enum when the global error set is empty |
| 2413 | const name = mod.intern_pool.stringToSlice(name_nts); | 2411 | if (mod.global_error_set.keys().len > 1) { |
| 2414 | max_name_len = @max(name.len, max_name_len); | 2412 | try writer.writeAll("enum {\n"); |
| 2415 | const err_val = try mod.intern(.{ .err = .{ | 2413 | o.indent_writer.pushIndent(); |
| 2416 | .ty = .anyerror_type, | 2414 | for (mod.global_error_set.keys()[1..], 1..) |name_nts, value| { |
| 2417 | .name = name_nts, | 2415 | const name = mod.intern_pool.stringToSlice(name_nts); |
| 2418 | } }); | 2416 | max_name_len = @max(name.len, max_name_len); |
| 2419 | try o.dg.renderValue(writer, Type.anyerror, err_val.toValue(), .Other); | 2417 | const err_val = try mod.intern(.{ .err = .{ |
| 2420 | try writer.print(" = {d}u,\n", .{value}); | 2418 | .ty = .anyerror_type, |
| | 2419 | .name = name_nts, |
| | 2420 | } }); |
| | 2421 | try o.dg.renderValue(writer, Type.anyerror, err_val.toValue(), .Other); |
| | 2422 | try writer.print(" = {d}u,\n", .{value}); |
| | 2423 | } |
| | 2424 | o.indent_writer.popIndent(); |
| | 2425 | try writer.writeAll("};\n"); |
| 2421 | } | 2426 | } |
| 2422 | o.indent_writer.popIndent(); | | |
| 2423 | try writer.writeAll("};\n"); | | |
| 2424 | | | |
| 2425 | const array_identifier = "zig_errorName"; | 2427 | const array_identifier = "zig_errorName"; |
| 2426 | const name_prefix = array_identifier ++ "_"; | 2428 | const name_prefix = array_identifier ++ "_"; |
| 2427 | const name_buf = try o.dg.gpa.alloc(u8, name_prefix.len + max_name_len); | 2429 | const name_buf = try o.dg.gpa.alloc(u8, name_prefix.len + max_name_len); |