aboutsummaryrefslogtreecommitdiff
path: root/src/AstGen.zig
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2021-05-11 14:50:39 -0700
committerAndrew Kelley <andrew@ziglang.org>2021-05-11 14:51:08 -0700
commitfb3952615948748baab6cac02371a7cbfff4e9ac (patch)
treefbe96459ea6e1314172d177f4f080a7801d72569 /src/AstGen.zig
parentbcf15e39e2d4e2243f475852aca7749e40a70fbd (diff)
downloadzig-fb3952615948748baab6cac02371a7cbfff4e9ac.tar.gz
zig-fb3952615948748baab6cac02371a7cbfff4e9ac.zip
AstGen: support emitting multiple compile errors
Diffstat (limited to 'src/AstGen.zig')
-rw-r--r--src/AstGen.zig300
1 files changed, 240 insertions, 60 deletions
diff --git a/src/AstGen.zig b/src/AstGen.zig
index f445f3dd26..c8225602ae 100644
--- a/src/AstGen.zig
+++ b/src/AstGen.zig
@@ -3317,20 +3317,32 @@ fn structDeclInner(
switch (node_tags[fn_proto]) {
.fn_proto_simple => {
var params: [1]ast.Node.Index = undefined;
- try astgen.fnDecl(gz, &wip_decls, member_node, body, tree.fnProtoSimple(&params, fn_proto));
+ astgen.fnDecl(gz, &wip_decls, member_node, body, tree.fnProtoSimple(&params, fn_proto)) catch |err| switch (err) {
+ error.OutOfMemory => return error.OutOfMemory,
+ error.AnalysisFail => {},
+ };
continue;
},
.fn_proto_multi => {
- try astgen.fnDecl(gz, &wip_decls, member_node, body, tree.fnProtoMulti(fn_proto));
+ astgen.fnDecl(gz, &wip_decls, member_node, body, tree.fnProtoMulti(fn_proto)) catch |err| switch (err) {
+ error.OutOfMemory => return error.OutOfMemory,
+ error.AnalysisFail => {},
+ };
continue;
},
.fn_proto_one => {
var params: [1]ast.Node.Index = undefined;
- try astgen.fnDecl(gz, &wip_decls, member_node, body, tree.fnProtoOne(&params, fn_proto));
+ astgen.fnDecl(gz, &wip_decls, member_node, body, tree.fnProtoOne(&params, fn_proto)) catch |err| switch (err) {
+ error.OutOfMemory => return error.OutOfMemory,
+ error.AnalysisFail => {},
+ };
continue;
},
.fn_proto => {
- try astgen.fnDecl(gz, &wip_decls, member_node, body, tree.fnProto(fn_proto));
+ astgen.fnDecl(gz, &wip_decls, member_node, body, tree.fnProto(fn_proto)) catch |err| switch (err) {
+ error.OutOfMemory => return error.OutOfMemory,
+ error.AnalysisFail => {},
+ };
continue;
},
else => unreachable,
@@ -3338,50 +3350,83 @@ fn structDeclInner(
},
.fn_proto_simple => {
var params: [1]ast.Node.Index = undefined;
- try astgen.fnDecl(gz, &wip_decls, member_node, 0, tree.fnProtoSimple(&params, member_node));
+ astgen.fnDecl(gz, &wip_decls, member_node, 0, tree.fnProtoSimple(&params, member_node)) catch |err| switch (err) {
+ error.OutOfMemory => return error.OutOfMemory,
+ error.AnalysisFail => {},
+ };
continue;
},
.fn_proto_multi => {
- try astgen.fnDecl(gz, &wip_decls, member_node, 0, tree.fnProtoMulti(member_node));
+ astgen.fnDecl(gz, &wip_decls, member_node, 0, tree.fnProtoMulti(member_node)) catch |err| switch (err) {
+ error.OutOfMemory => return error.OutOfMemory,
+ error.AnalysisFail => {},
+ };
continue;
},
.fn_proto_one => {
var params: [1]ast.Node.Index = undefined;
- try astgen.fnDecl(gz, &wip_decls, member_node, 0, tree.fnProtoOne(&params, member_node));
+ astgen.fnDecl(gz, &wip_decls, member_node, 0, tree.fnProtoOne(&params, member_node)) catch |err| switch (err) {
+ error.OutOfMemory => return error.OutOfMemory,
+ error.AnalysisFail => {},
+ };
continue;
},
.fn_proto => {
- try astgen.fnDecl(gz, &wip_decls, member_node, 0, tree.fnProto(member_node));
+ astgen.fnDecl(gz, &wip_decls, member_node, 0, tree.fnProto(member_node)) catch |err| switch (err) {
+ error.OutOfMemory => return error.OutOfMemory,
+ error.AnalysisFail => {},
+ };
continue;
},
.global_var_decl => {
- try astgen.globalVarDecl(gz, scope, &wip_decls, member_node, tree.globalVarDecl(member_node));
+ astgen.globalVarDecl(gz, scope, &wip_decls, member_node, tree.globalVarDecl(member_node)) catch |err| switch (err) {
+ error.OutOfMemory => return error.OutOfMemory,
+ error.AnalysisFail => {},
+ };
continue;
},
.local_var_decl => {
- try astgen.globalVarDecl(gz, scope, &wip_decls, member_node, tree.localVarDecl(member_node));
+ astgen.globalVarDecl(gz, scope, &wip_decls, member_node, tree.localVarDecl(member_node)) catch |err| switch (err) {
+ error.OutOfMemory => return error.OutOfMemory,
+ error.AnalysisFail => {},
+ };
continue;
},
.simple_var_decl => {
- try astgen.globalVarDecl(gz, scope, &wip_decls, member_node, tree.simpleVarDecl(member_node));
+ astgen.globalVarDecl(gz, scope, &wip_decls, member_node, tree.simpleVarDecl(member_node)) catch |err| switch (err) {
+ error.OutOfMemory => return error.OutOfMemory,
+ error.AnalysisFail => {},
+ };
continue;
},
.aligned_var_decl => {
- try astgen.globalVarDecl(gz, scope, &wip_decls, member_node, tree.alignedVarDecl(member_node));
+ astgen.globalVarDecl(gz, scope, &wip_decls, member_node, tree.alignedVarDecl(member_node)) catch |err| switch (err) {
+ error.OutOfMemory => return error.OutOfMemory,
+ error.AnalysisFail => {},
+ };
continue;
},
.@"comptime" => {
- try astgen.comptimeDecl(gz, scope, &wip_decls, member_node);
+ astgen.comptimeDecl(gz, scope, &wip_decls, member_node) catch |err| switch (err) {
+ error.OutOfMemory => return error.OutOfMemory,
+ error.AnalysisFail => {},
+ };
continue;
},
.@"usingnamespace" => {
- try astgen.usingnamespaceDecl(gz, scope, &wip_decls, member_node);
+ astgen.usingnamespaceDecl(gz, scope, &wip_decls, member_node) catch |err| switch (err) {
+ error.OutOfMemory => return error.OutOfMemory,
+ error.AnalysisFail => {},
+ };
continue;
},
.test_decl => {
- try astgen.testDecl(gz, scope, &wip_decls, member_node);
+ astgen.testDecl(gz, scope, &wip_decls, member_node) catch |err| switch (err) {
+ error.OutOfMemory => return error.OutOfMemory,
+ error.AnalysisFail => {},
+ };
continue;
},
else => unreachable,
@@ -3530,20 +3575,32 @@ fn unionDeclInner(
switch (node_tags[fn_proto]) {
.fn_proto_simple => {
var params: [1]ast.Node.Index = undefined;
- try astgen.fnDecl(gz, &wip_decls, member_node, body, tree.fnProtoSimple(&params, fn_proto));
+ astgen.fnDecl(gz, &wip_decls, member_node, body, tree.fnProtoSimple(&params, fn_proto)) catch |err| switch (err) {
+ error.OutOfMemory => return error.OutOfMemory,
+ error.AnalysisFail => {},
+ };
continue;
},
.fn_proto_multi => {
- try astgen.fnDecl(gz, &wip_decls, member_node, body, tree.fnProtoMulti(fn_proto));
+ astgen.fnDecl(gz, &wip_decls, member_node, body, tree.fnProtoMulti(fn_proto)) catch |err| switch (err) {
+ error.OutOfMemory => return error.OutOfMemory,
+ error.AnalysisFail => {},
+ };
continue;
},
.fn_proto_one => {
var params: [1]ast.Node.Index = undefined;
- try astgen.fnDecl(gz, &wip_decls, member_node, body, tree.fnProtoOne(&params, fn_proto));
+ astgen.fnDecl(gz, &wip_decls, member_node, body, tree.fnProtoOne(&params, fn_proto)) catch |err| switch (err) {
+ error.OutOfMemory => return error.OutOfMemory,
+ error.AnalysisFail => {},
+ };
continue;
},
.fn_proto => {
- try astgen.fnDecl(gz, &wip_decls, member_node, body, tree.fnProto(fn_proto));
+ astgen.fnDecl(gz, &wip_decls, member_node, body, tree.fnProto(fn_proto)) catch |err| switch (err) {
+ error.OutOfMemory => return error.OutOfMemory,
+ error.AnalysisFail => {},
+ };
continue;
},
else => unreachable,
@@ -3551,50 +3608,83 @@ fn unionDeclInner(
},
.fn_proto_simple => {
var params: [1]ast.Node.Index = undefined;
- try astgen.fnDecl(gz, &wip_decls, member_node, 0, tree.fnProtoSimple(&params, member_node));
+ astgen.fnDecl(gz, &wip_decls, member_node, 0, tree.fnProtoSimple(&params, member_node)) catch |err| switch (err) {
+ error.OutOfMemory => return error.OutOfMemory,
+ error.AnalysisFail => {},
+ };
continue;
},
.fn_proto_multi => {
- try astgen.fnDecl(gz, &wip_decls, member_node, 0, tree.fnProtoMulti(member_node));
+ astgen.fnDecl(gz, &wip_decls, member_node, 0, tree.fnProtoMulti(member_node)) catch |err| switch (err) {
+ error.OutOfMemory => return error.OutOfMemory,
+ error.AnalysisFail => {},
+ };
continue;
},
.fn_proto_one => {
var params: [1]ast.Node.Index = undefined;
- try astgen.fnDecl(gz, &wip_decls, member_node, 0, tree.fnProtoOne(&params, member_node));
+ astgen.fnDecl(gz, &wip_decls, member_node, 0, tree.fnProtoOne(&params, member_node)) catch |err| switch (err) {
+ error.OutOfMemory => return error.OutOfMemory,
+ error.AnalysisFail => {},
+ };
continue;
},
.fn_proto => {
- try astgen.fnDecl(gz, &wip_decls, member_node, 0, tree.fnProto(member_node));
+ astgen.fnDecl(gz, &wip_decls, member_node, 0, tree.fnProto(member_node)) catch |err| switch (err) {
+ error.OutOfMemory => return error.OutOfMemory,
+ error.AnalysisFail => {},
+ };
continue;
},
.global_var_decl => {
- try astgen.globalVarDecl(gz, scope, &wip_decls, member_node, tree.globalVarDecl(member_node));
+ astgen.globalVarDecl(gz, scope, &wip_decls, member_node, tree.globalVarDecl(member_node)) catch |err| switch (err) {
+ error.OutOfMemory => return error.OutOfMemory,
+ error.AnalysisFail => {},
+ };
continue;
},
.local_var_decl => {
- try astgen.globalVarDecl(gz, scope, &wip_decls, member_node, tree.localVarDecl(member_node));
+ astgen.globalVarDecl(gz, scope, &wip_decls, member_node, tree.localVarDecl(member_node)) catch |err| switch (err) {
+ error.OutOfMemory => return error.OutOfMemory,
+ error.AnalysisFail => {},
+ };
continue;
},
.simple_var_decl => {
- try astgen.globalVarDecl(gz, scope, &wip_decls, member_node, tree.simpleVarDecl(member_node));
+ astgen.globalVarDecl(gz, scope, &wip_decls, member_node, tree.simpleVarDecl(member_node)) catch |err| switch (err) {
+ error.OutOfMemory => return error.OutOfMemory,
+ error.AnalysisFail => {},
+ };
continue;
},
.aligned_var_decl => {
- try astgen.globalVarDecl(gz, scope, &wip_decls, member_node, tree.alignedVarDecl(member_node));
+ astgen.globalVarDecl(gz, scope, &wip_decls, member_node, tree.alignedVarDecl(member_node)) catch |err| switch (err) {
+ error.OutOfMemory => return error.OutOfMemory,
+ error.AnalysisFail => {},
+ };
continue;
},
.@"comptime" => {
- try astgen.comptimeDecl(gz, scope, &wip_decls, member_node);
+ astgen.comptimeDecl(gz, scope, &wip_decls, member_node) catch |err| switch (err) {
+ error.OutOfMemory => return error.OutOfMemory,
+ error.AnalysisFail => {},
+ };
continue;
},
.@"usingnamespace" => {
- try astgen.usingnamespaceDecl(gz, scope, &wip_decls, member_node);
+ astgen.usingnamespaceDecl(gz, scope, &wip_decls, member_node) catch |err| switch (err) {
+ error.OutOfMemory => return error.OutOfMemory,
+ error.AnalysisFail => {},
+ };
continue;
},
.test_decl => {
- try astgen.testDecl(gz, scope, &wip_decls, member_node);
+ astgen.testDecl(gz, scope, &wip_decls, member_node) catch |err| switch (err) {
+ error.OutOfMemory => return error.OutOfMemory,
+ error.AnalysisFail => {},
+ };
continue;
},
else => unreachable,
@@ -3878,20 +3968,32 @@ fn containerDecl(
switch (node_tags[fn_proto]) {
.fn_proto_simple => {
var params: [1]ast.Node.Index = undefined;
- try astgen.fnDecl(gz, &wip_decls, member_node, body, tree.fnProtoSimple(&params, fn_proto));
+ astgen.fnDecl(gz, &wip_decls, member_node, body, tree.fnProtoSimple(&params, fn_proto)) catch |err| switch (err) {
+ error.OutOfMemory => return error.OutOfMemory,
+ error.AnalysisFail => {},
+ };
continue;
},
.fn_proto_multi => {
- try astgen.fnDecl(gz, &wip_decls, member_node, body, tree.fnProtoMulti(fn_proto));
+ astgen.fnDecl(gz, &wip_decls, member_node, body, tree.fnProtoMulti(fn_proto)) catch |err| switch (err) {
+ error.OutOfMemory => return error.OutOfMemory,
+ error.AnalysisFail => {},
+ };
continue;
},
.fn_proto_one => {
var params: [1]ast.Node.Index = undefined;
- try astgen.fnDecl(gz, &wip_decls, member_node, body, tree.fnProtoOne(&params, fn_proto));
+ astgen.fnDecl(gz, &wip_decls, member_node, body, tree.fnProtoOne(&params, fn_proto)) catch |err| switch (err) {
+ error.OutOfMemory => return error.OutOfMemory,
+ error.AnalysisFail => {},
+ };
continue;
},
.fn_proto => {
- try astgen.fnDecl(gz, &wip_decls, member_node, body, tree.fnProto(fn_proto));
+ astgen.fnDecl(gz, &wip_decls, member_node, body, tree.fnProto(fn_proto)) catch |err| switch (err) {
+ error.OutOfMemory => return error.OutOfMemory,
+ error.AnalysisFail => {},
+ };
continue;
},
else => unreachable,
@@ -3899,50 +4001,83 @@ fn containerDecl(
},
.fn_proto_simple => {
var params: [1]ast.Node.Index = undefined;
- try astgen.fnDecl(gz, &wip_decls, member_node, 0, tree.fnProtoSimple(&params, member_node));
+ astgen.fnDecl(gz, &wip_decls, member_node, 0, tree.fnProtoSimple(&params, member_node)) catch |err| switch (err) {
+ error.OutOfMemory => return error.OutOfMemory,
+ error.AnalysisFail => {},
+ };
continue;
},
.fn_proto_multi => {
- try astgen.fnDecl(gz, &wip_decls, member_node, 0, tree.fnProtoMulti(member_node));
+ astgen.fnDecl(gz, &wip_decls, member_node, 0, tree.fnProtoMulti(member_node)) catch |err| switch (err) {
+ error.OutOfMemory => return error.OutOfMemory,
+ error.AnalysisFail => {},
+ };
continue;
},
.fn_proto_one => {
var params: [1]ast.Node.Index = undefined;
- try astgen.fnDecl(gz, &wip_decls, member_node, 0, tree.fnProtoOne(&params, member_node));
+ astgen.fnDecl(gz, &wip_decls, member_node, 0, tree.fnProtoOne(&params, member_node)) catch |err| switch (err) {
+ error.OutOfMemory => return error.OutOfMemory,
+ error.AnalysisFail => {},
+ };
continue;
},
.fn_proto => {
- try astgen.fnDecl(gz, &wip_decls, member_node, 0, tree.fnProto(member_node));
+ astgen.fnDecl(gz, &wip_decls, member_node, 0, tree.fnProto(member_node)) catch |err| switch (err) {
+ error.OutOfMemory => return error.OutOfMemory,
+ error.AnalysisFail => {},
+ };
continue;
},
.global_var_decl => {
- try astgen.globalVarDecl(gz, scope, &wip_decls, member_node, tree.globalVarDecl(member_node));
+ astgen.globalVarDecl(gz, scope, &wip_decls, member_node, tree.globalVarDecl(member_node)) catch |err| switch (err) {
+ error.OutOfMemory => return error.OutOfMemory,
+ error.AnalysisFail => {},
+ };
continue;
},
.local_var_decl => {
- try astgen.globalVarDecl(gz, scope, &wip_decls, member_node, tree.localVarDecl(member_node));
+ astgen.globalVarDecl(gz, scope, &wip_decls, member_node, tree.localVarDecl(member_node)) catch |err| switch (err) {
+ error.OutOfMemory => return error.OutOfMemory,
+ error.AnalysisFail => {},
+ };
continue;
},
.simple_var_decl => {
- try astgen.globalVarDecl(gz, scope, &wip_decls, member_node, tree.simpleVarDecl(member_node));
+ astgen.globalVarDecl(gz, scope, &wip_decls, member_node, tree.simpleVarDecl(member_node)) catch |err| switch (err) {
+ error.OutOfMemory => return error.OutOfMemory,
+ error.AnalysisFail => {},
+ };
continue;
},
.aligned_var_decl => {
- try astgen.globalVarDecl(gz, scope, &wip_decls, member_node, tree.alignedVarDecl(member_node));
+ astgen.globalVarDecl(gz, scope, &wip_decls, member_node, tree.alignedVarDecl(member_node)) catch |err| switch (err) {
+ error.OutOfMemory => return error.OutOfMemory,
+ error.AnalysisFail => {},
+ };
continue;
},
.@"comptime" => {
- try astgen.comptimeDecl(gz, scope, &wip_decls, member_node);
+ astgen.comptimeDecl(gz, scope, &wip_decls, member_node) catch |err| switch (err) {
+ error.OutOfMemory => return error.OutOfMemory,
+ error.AnalysisFail => {},
+ };
continue;
},
.@"usingnamespace" => {
- try astgen.usingnamespaceDecl(gz, scope, &wip_decls, member_node);
+ astgen.usingnamespaceDecl(gz, scope, &wip_decls, member_node) catch |err| switch (err) {
+ error.OutOfMemory => return error.OutOfMemory,
+ error.AnalysisFail => {},
+ };
continue;
},
.test_decl => {
- try astgen.testDecl(gz, scope, &wip_decls, member_node);
+ astgen.testDecl(gz, scope, &wip_decls, member_node) catch |err| switch (err) {
+ error.OutOfMemory => return error.OutOfMemory,
+ error.AnalysisFail => {},
+ };
continue;
},
else => unreachable,
@@ -4044,20 +4179,32 @@ fn containerDecl(
switch (node_tags[fn_proto]) {
.fn_proto_simple => {
var params: [1]ast.Node.Index = undefined;
- try astgen.fnDecl(gz, &wip_decls, member_node, body, tree.fnProtoSimple(&params, fn_proto));
+ astgen.fnDecl(gz, &wip_decls, member_node, body, tree.fnProtoSimple(&params, fn_proto)) catch |err| switch (err) {
+ error.OutOfMemory => return error.OutOfMemory,
+ error.AnalysisFail => {},
+ };
continue;
},
.fn_proto_multi => {
- try astgen.fnDecl(gz, &wip_decls, member_node, body, tree.fnProtoMulti(fn_proto));
+ astgen.fnDecl(gz, &wip_decls, member_node, body, tree.fnProtoMulti(fn_proto)) catch |err| switch (err) {
+ error.OutOfMemory => return error.OutOfMemory,
+ error.AnalysisFail => {},
+ };
continue;
},
.fn_proto_one => {
var params: [1]ast.Node.Index = undefined;
- try astgen.fnDecl(gz, &wip_decls, member_node, body, tree.fnProtoOne(&params, fn_proto));
+ astgen.fnDecl(gz, &wip_decls, member_node, body, tree.fnProtoOne(&params, fn_proto)) catch |err| switch (err) {
+ error.OutOfMemory => return error.OutOfMemory,
+ error.AnalysisFail => {},
+ };
continue;
},
.fn_proto => {
- try astgen.fnDecl(gz, &wip_decls, member_node, body, tree.fnProto(fn_proto));
+ astgen.fnDecl(gz, &wip_decls, member_node, body, tree.fnProto(fn_proto)) catch |err| switch (err) {
+ error.OutOfMemory => return error.OutOfMemory,
+ error.AnalysisFail => {},
+ };
continue;
},
else => unreachable,
@@ -4065,50 +4212,83 @@ fn containerDecl(
},
.fn_proto_simple => {
var params: [1]ast.Node.Index = undefined;
- try astgen.fnDecl(gz, &wip_decls, member_node, 0, tree.fnProtoSimple(&params, member_node));
+ astgen.fnDecl(gz, &wip_decls, member_node, 0, tree.fnProtoSimple(&params, member_node)) catch |err| switch (err) {
+ error.OutOfMemory => return error.OutOfMemory,
+ error.AnalysisFail => {},
+ };
continue;
},
.fn_proto_multi => {
- try astgen.fnDecl(gz, &wip_decls, member_node, 0, tree.fnProtoMulti(member_node));
+ astgen.fnDecl(gz, &wip_decls, member_node, 0, tree.fnProtoMulti(member_node)) catch |err| switch (err) {
+ error.OutOfMemory => return error.OutOfMemory,
+ error.AnalysisFail => {},
+ };
continue;
},
.fn_proto_one => {
var params: [1]ast.Node.Index = undefined;
- try astgen.fnDecl(gz, &wip_decls, member_node, 0, tree.fnProtoOne(&params, member_node));
+ astgen.fnDecl(gz, &wip_decls, member_node, 0, tree.fnProtoOne(&params, member_node)) catch |err| switch (err) {
+ error.OutOfMemory => return error.OutOfMemory,
+ error.AnalysisFail => {},
+ };
continue;
},
.fn_proto => {
- try astgen.fnDecl(gz, &wip_decls, member_node, 0, tree.fnProto(member_node));
+ astgen.fnDecl(gz, &wip_decls, member_node, 0, tree.fnProto(member_node)) catch |err| switch (err) {
+ error.OutOfMemory => return error.OutOfMemory,
+ error.AnalysisFail => {},
+ };
continue;
},
.global_var_decl => {
- try astgen.globalVarDecl(gz, scope, &wip_decls, member_node, tree.globalVarDecl(member_node));
+ astgen.globalVarDecl(gz, scope, &wip_decls, member_node, tree.globalVarDecl(member_node)) catch |err| switch (err) {
+ error.OutOfMemory => return error.OutOfMemory,
+ error.AnalysisFail => {},
+ };
continue;
},
.local_var_decl => {
- try astgen.globalVarDecl(gz, scope, &wip_decls, member_node, tree.localVarDecl(member_node));
+ astgen.globalVarDecl(gz, scope, &wip_decls, member_node, tree.localVarDecl(member_node)) catch |err| switch (err) {
+ error.OutOfMemory => return error.OutOfMemory,
+ error.AnalysisFail => {},
+ };
continue;
},
.simple_var_decl => {
- try astgen.globalVarDecl(gz, scope, &wip_decls, member_node, tree.simpleVarDecl(member_node));
+ astgen.globalVarDecl(gz, scope, &wip_decls, member_node, tree.simpleVarDecl(member_node)) catch |err| switch (err) {
+ error.OutOfMemory => return error.OutOfMemory,
+ error.AnalysisFail => {},
+ };
continue;
},
.aligned_var_decl => {
- try astgen.globalVarDecl(gz, scope, &wip_decls, member_node, tree.alignedVarDecl(member_node));
+ astgen.globalVarDecl(gz, scope, &wip_decls, member_node, tree.alignedVarDecl(member_node)) catch |err| switch (err) {
+ error.OutOfMemory => return error.OutOfMemory,
+ error.AnalysisFail => {},
+ };
continue;
},
.@"comptime" => {
- try astgen.comptimeDecl(gz, scope, &wip_decls, member_node);
+ astgen.comptimeDecl(gz, scope, &wip_decls, member_node) catch |err| switch (err) {
+ error.OutOfMemory => return error.OutOfMemory,
+ error.AnalysisFail => {},
+ };
continue;
},
.@"usingnamespace" => {
- try astgen.usingnamespaceDecl(gz, scope, &wip_decls, member_node);
+ astgen.usingnamespaceDecl(gz, scope, &wip_decls, member_node) catch |err| switch (err) {
+ error.OutOfMemory => return error.OutOfMemory,
+ error.AnalysisFail => {},
+ };
continue;
},
.test_decl => {
- try astgen.testDecl(gz, scope, &wip_decls, member_node);
+ astgen.testDecl(gz, scope, &wip_decls, member_node) catch |err| switch (err) {
+ error.OutOfMemory => return error.OutOfMemory,
+ error.AnalysisFail => {},
+ };
continue;
},
else => unreachable,