authorgravatar for spexguy070@gmail.comMartin Wickham <spexguy070@gmail.com> 2021-10-01 12:45:46-05:00
committergravatar for spexguy070@gmail.comMartin Wickham <spexguy070@gmail.com> 2021-10-02 15:21:49-05:00
log01e08c92b3d1a7895762e7b8f8a7913d08c3fa6c
tree66872b2d6b5f03bdfb450d5184a6cf76020e751b
parent53a36eacfa145244902e9230243c76892d141b03

Revert collateral changes, clarify abortAnonDecl()


1 files changed, 13 insertions(+), 10 deletions(-)

src/Module.zig+13-10
......@@ -617,15 +617,17 @@ pub const Decl = struct {
617617 return tree.tokens.items(.start)[decl.srcToken()];
618618 }
619619
620 pub fn renderFullyQualifiedName(decl: *const Decl, writer: anytype) @TypeOf(writer).Error!void {
621 return try decl.src_namespace.renderFullyQualifiedName(mem.spanZ(decl.name), writer);
620 pub fn renderFullyQualifiedName(decl: Decl, writer: anytype) !void {
621 const unqualified_name = mem.spanZ(decl.name);
622 return decl.src_namespace.renderFullyQualifiedName(unqualified_name, writer);
622623 }
623624
624 pub fn renderFullyQualifiedDebugName(decl: *const Decl, writer: anytype) @TypeOf(writer).Error!void {
625 return try decl.src_namespace.renderFullyQualifiedDebugName(mem.spanZ(decl.name), writer);
625 pub fn renderFullyQualifiedDebugName(decl: Decl, writer: anytype) !void {
626 const unqualified_name = mem.spanZ(decl.name);
627 return decl.src_namespace.renderFullyQualifiedDebugName(unqualified_name, writer);
626628 }
627629
628 pub fn getFullyQualifiedName(decl: *const Decl, gpa: *Allocator) ![:0]u8 {
630 pub fn getFullyQualifiedName(decl: Decl, gpa: *Allocator) ![:0]u8 {
629631 var buffer = std.ArrayList(u8).init(gpa);
630632 defer buffer.deinit();
631633 try decl.renderFullyQualifiedName(buffer.writer());
......@@ -1246,7 +1248,7 @@ pub const Scope = struct {
12461248 }
12471249 }
12481250
1249 // This renders e.g. "std.fs:Dir.OpenOptions"
1251 /// This renders e.g. "std/fs.zig:Dir.OpenOptions"
12501252 pub fn renderFullyQualifiedDebugName(
12511253 ns: Namespace,
12521254 name: []const u8,
......@@ -4055,16 +4057,17 @@ pub fn deleteUnusedDecl(mod: *Module, decl: *Decl) void {
40554057 decl.destroy(mod);
40564058}
40574059
4060/// Cancel the creation of an anon decl and delete any references to it.
4061/// If other decls depend on this decl, they must be aborted first.
40584062pub fn abortAnonDecl(mod: *Module, decl: *Decl) void {
40594063 log.debug("abortAnonDecl {*} ({s})", .{ decl, decl.name });
40604064
40614065 assert(!decl.isRoot());
40624066 assert(decl.src_namespace.anon_decls.swapRemove(decl));
40634067
4064 const dependants = decl.dependants.keys();
4065 for (dependants) |dep| {
4066 dep.removeDependency(decl);
4067 }
4068 // An aborted decl must not have dependants -- they must have
4069 // been aborted first and removed from this list.
4070 assert(decl.dependants.count() == 0);
40684071
40694072 for (decl.dependencies.keys()) |dep| {
40704073 dep.removeDependant(decl);