| ... | ... | @@ -721,6 +721,9 @@ pub const Tag = enum(u8) { |
| 721 | 721 | /// only an enum tag, but will be presented via the API with a different Key. |
| 722 | 722 | /// data is SimpleInternal enum value. |
| 723 | 723 | simple_internal, |
| 724 | /// Type: u8 |
| 725 | /// data is integer value |
| 726 | int_u8, |
| 724 | 727 | /// Type: u16 |
| 725 | 728 | /// data is integer value |
| 726 | 729 | int_u16, |
| ... | ... | @@ -1056,6 +1059,10 @@ pub fn indexToKey(ip: InternPool, index: Index) Key { |
| 1056 | 1059 | .type_error_union => @panic("TODO"), |
| 1057 | 1060 | .type_enum_simple => @panic("TODO"), |
| 1058 | 1061 | .simple_internal => @panic("TODO"), |
| 1062 | .int_u8 => .{ .int = .{ |
| 1063 | .ty = .u8_type, |
| 1064 | .storage = .{ .u64 = data }, |
| 1065 | } }, |
| 1059 | 1066 | .int_u16 => .{ .int = .{ |
| 1060 | 1067 | .ty = .u16_type, |
| 1061 | 1068 | .storage = .{ .u64 = data }, |
| ... | ... | @@ -1226,6 +1233,22 @@ pub fn get(ip: *InternPool, gpa: Allocator, key: Key) Allocator.Error!Index { |
| 1226 | 1233 | .int => |int| b: { |
| 1227 | 1234 | switch (int.ty) { |
| 1228 | 1235 | .none => unreachable, |
| 1236 | .u8_type => switch (int.storage) { |
| 1237 | .big_int => |big_int| { |
| 1238 | ip.items.appendAssumeCapacity(.{ |
| 1239 | .tag = .int_u8, |
| 1240 | .data = big_int.to(u8) catch unreachable, |
| 1241 | }); |
| 1242 | break :b; |
| 1243 | }, |
| 1244 | inline .u64, .i64 => |x| { |
| 1245 | ip.items.appendAssumeCapacity(.{ |
| 1246 | .tag = .int_u8, |
| 1247 | .data = @intCast(u8, x), |
| 1248 | }); |
| 1249 | break :b; |
| 1250 | }, |
| 1251 | }, |
| 1229 | 1252 | .u16_type => switch (int.storage) { |
| 1230 | 1253 | .big_int => |big_int| { |
| 1231 | 1254 | if (big_int.to(u32)) |casted| { |
| ... | ... | @@ -1678,6 +1701,7 @@ fn dumpFallible(ip: InternPool, arena: Allocator) anyerror!void { |
| 1678 | 1701 | .simple_type => 0, |
| 1679 | 1702 | .simple_value => 0, |
| 1680 | 1703 | .simple_internal => 0, |
| 1704 | .int_u8 => 0, |
| 1681 | 1705 | .int_u16 => 0, |
| 1682 | 1706 | .int_u32 => 0, |
| 1683 | 1707 | .int_i32 => 0, |