stage2: progress towards stage3
* The `@bitCast` workaround is removed in favor of `@ptrCast` properly
doing element casting for slice element types. This required an
enhancement both to stage1 and stage2.
* stage1 incorrectly accepts `.{}` instead of `{}`. stage2 code that
abused this is fixed.
* Make some parameters comptime to support functions in switch
expressions (as opposed to making them function pointers).
* Avoid relying on local temporaries being mutable.
* Workarounds for when stage1 and stage2 disagree on function pointer
types.
* Workaround recursive formatting bug with a `@panic("TODO")`.
* Remove unreachable `else` prongs for some inferred error sets.
All in effort towards #89.
This commit is contained in:
@@ -4593,7 +4593,7 @@ pub fn clearDecl(
|
||||
.c => .{ .c = {} },
|
||||
.wasm => .{ .wasm = link.File.Wasm.FnData.empty },
|
||||
.spirv => .{ .spirv = .{} },
|
||||
.nvptx => .{ .nvptx = .{} },
|
||||
.nvptx => .{ .nvptx = {} },
|
||||
};
|
||||
}
|
||||
if (decl.getInnerNamespace()) |namespace| {
|
||||
@@ -4975,7 +4975,7 @@ pub fn allocateNewDecl(
|
||||
.c => .{ .c = {} },
|
||||
.wasm => .{ .wasm = link.File.Wasm.FnData.empty },
|
||||
.spirv => .{ .spirv = .{} },
|
||||
.nvptx => .{ .nvptx = .{} },
|
||||
.nvptx => .{ .nvptx = {} },
|
||||
},
|
||||
.generation = 0,
|
||||
.is_pub = false,
|
||||
|
||||
Reference in New Issue
Block a user