diff options
| author | Luuk de Gram <luuk@degram.dev> | 2021-12-05 12:34:50 +0100 |
|---|---|---|
| committer | Andrew Kelley <andrew@ziglang.org> | 2021-12-05 12:19:01 -0800 |
| commit | 9e03cf948948ea25feb3f413f234e98e71d55786 (patch) | |
| tree | 79a20fe0103e9615e1193bc2320d95523bf03601 /src/Module.zig | |
| parent | a1b79ea5857a52332d9da49d261a7fd04e52a466 (diff) | |
| download | zig-9e03cf948948ea25feb3f413f234e98e71d55786.tar.gz zig-9e03cf948948ea25feb3f413f234e98e71d55786.zip | |
wasm: Initial behavior tests succeeding
- Correctly load slice value on stack
- Implement WrapErrorUnionErr and payload
- Implement trunc, fix sliceLen and write undefined
- Implement slice as return type and argument
Note: This also fixes a memory leak for inferred error sets, and for usingnamespace
Diffstat (limited to 'src/Module.zig')
| -rw-r--r-- | src/Module.zig | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/src/Module.zig b/src/Module.zig index 7ef9a02e09..7fa91486d3 100644 --- a/src/Module.zig +++ b/src/Module.zig @@ -1226,19 +1226,20 @@ pub const Fn = struct { }; pub fn deinit(func: *Fn, gpa: Allocator) void { - if (func.getInferredErrorSet()) |map| { - map.deinit(gpa); + if (func.getInferredErrorSet()) |error_set_data| { + error_set_data.map.deinit(gpa); + error_set_data.functions.deinit(gpa); } } - pub fn getInferredErrorSet(func: *Fn) ?*std.StringHashMapUnmanaged(void) { + pub fn getInferredErrorSet(func: *Fn) ?*Type.Payload.ErrorSetInferred.Data { const ret_ty = func.owner_decl.ty.fnReturnType(); if (ret_ty.tag() == .generic_poison) { return null; } if (ret_ty.zigTypeTag() == .ErrorUnion) { if (ret_ty.errorUnionSet().castTag(.error_set_inferred)) |payload| { - return &payload.data.map; + return &payload.data; } } return null; @@ -1301,6 +1302,7 @@ pub const Namespace = struct { key.destroy(mod); } anon_decls.deinit(gpa); + ns.usingnamespace_set.deinit(gpa); } pub fn deleteAllDecls( @@ -1332,6 +1334,8 @@ pub const Namespace = struct { child_decl.destroy(mod); } anon_decls.deinit(gpa); + + ns.usingnamespace_set.deinit(gpa); } // This renders e.g. "std.fs.Dir.OpenOptions" |
