| ... | ... | @@ -4278,7 +4278,34 @@ fn testDecl( |
| 4278 | 4278 | var num_namespaces_out: u32 = 0; |
| 4279 | 4279 | var capturing_namespace: ?*Scope.Namespace = null; |
| 4280 | 4280 | while (true) switch (s.tag) { |
| 4281 | | .local_val, .local_ptr => unreachable, // a test cannot be in a local scope |
| 4281 | .local_val => { |
| 4282 | const local_val = s.cast(Scope.LocalVal).?; |
| 4283 | if (local_val.name == name_str_index) { |
| 4284 | local_val.used = test_name_token; |
| 4285 | return astgen.failTokNotes(test_name_token, "cannot test a {s}", .{ |
| 4286 | @tagName(local_val.id_cat), |
| 4287 | }, &[_]u32{ |
| 4288 | try astgen.errNoteTok(local_val.token_src, "{s} declared here", .{ |
| 4289 | @tagName(local_val.id_cat), |
| 4290 | }), |
| 4291 | }); |
| 4292 | } |
| 4293 | s = local_val.parent; |
| 4294 | }, |
| 4295 | .local_ptr => { |
| 4296 | const local_ptr = s.cast(Scope.LocalPtr).?; |
| 4297 | if (local_ptr.name == name_str_index) { |
| 4298 | local_ptr.used = test_name_token; |
| 4299 | return astgen.failTokNotes(test_name_token, "cannot test a {s}", .{ |
| 4300 | @tagName(local_ptr.id_cat), |
| 4301 | }, &[_]u32{ |
| 4302 | try astgen.errNoteTok(local_ptr.token_src, "{s} declared here", .{ |
| 4303 | @tagName(local_ptr.id_cat), |
| 4304 | }), |
| 4305 | }); |
| 4306 | } |
| 4307 | s = local_ptr.parent; |
| 4308 | }, |
| 4282 | 4309 | .gen_zir => s = s.cast(GenZir).?.parent, |
| 4283 | 4310 | .defer_normal, .defer_error => s = s.cast(Scope.Defer).?.parent, |
| 4284 | 4311 | .namespace, .enum_namespace => { |