| ... | @@ -3317,20 +3317,32 @@ fn structDeclInner( | ... | @@ -3317,20 +3317,32 @@ fn structDeclInner( |
| 3317 | switch (node_tags[fn_proto]) { | 3317 | switch (node_tags[fn_proto]) { |
| 3318 | .fn_proto_simple => { | 3318 | .fn_proto_simple => { |
| 3319 | var params: [1]ast.Node.Index = undefined; | 3319 | var params: [1]ast.Node.Index = undefined; |
| 3320 | try astgen.fnDecl(gz, &wip_decls, member_node, body, tree.fnProtoSimple(&params, fn_proto)); | 3320 | astgen.fnDecl(gz, &wip_decls, member_node, body, tree.fnProtoSimple(&params, fn_proto)) catch |err| switch (err) { |
| | 3321 | error.OutOfMemory => return error.OutOfMemory, |
| | 3322 | error.AnalysisFail => {}, |
| | 3323 | }; |
| 3321 | continue; | 3324 | continue; |
| 3322 | }, | 3325 | }, |
| 3323 | .fn_proto_multi => { | 3326 | .fn_proto_multi => { |
| 3324 | try astgen.fnDecl(gz, &wip_decls, member_node, body, tree.fnProtoMulti(fn_proto)); | 3327 | astgen.fnDecl(gz, &wip_decls, member_node, body, tree.fnProtoMulti(fn_proto)) catch |err| switch (err) { |
| | 3328 | error.OutOfMemory => return error.OutOfMemory, |
| | 3329 | error.AnalysisFail => {}, |
| | 3330 | }; |
| 3325 | continue; | 3331 | continue; |
| 3326 | }, | 3332 | }, |
| 3327 | .fn_proto_one => { | 3333 | .fn_proto_one => { |
| 3328 | var params: [1]ast.Node.Index = undefined; | 3334 | var params: [1]ast.Node.Index = undefined; |
| 3329 | try astgen.fnDecl(gz, &wip_decls, member_node, body, tree.fnProtoOne(&params, fn_proto)); | 3335 | astgen.fnDecl(gz, &wip_decls, member_node, body, tree.fnProtoOne(&params, fn_proto)) catch |err| switch (err) { |
| | 3336 | error.OutOfMemory => return error.OutOfMemory, |
| | 3337 | error.AnalysisFail => {}, |
| | 3338 | }; |
| 3330 | continue; | 3339 | continue; |
| 3331 | }, | 3340 | }, |
| 3332 | .fn_proto => { | 3341 | .fn_proto => { |
| 3333 | try astgen.fnDecl(gz, &wip_decls, member_node, body, tree.fnProto(fn_proto)); | 3342 | astgen.fnDecl(gz, &wip_decls, member_node, body, tree.fnProto(fn_proto)) catch |err| switch (err) { |
| | 3343 | error.OutOfMemory => return error.OutOfMemory, |
| | 3344 | error.AnalysisFail => {}, |
| | 3345 | }; |
| 3334 | continue; | 3346 | continue; |
| 3335 | }, | 3347 | }, |
| 3336 | else => unreachable, | 3348 | else => unreachable, |
| ... | @@ -3338,50 +3350,83 @@ fn structDeclInner( | ... | @@ -3338,50 +3350,83 @@ fn structDeclInner( |
| 3338 | }, | 3350 | }, |
| 3339 | .fn_proto_simple => { | 3351 | .fn_proto_simple => { |
| 3340 | var params: [1]ast.Node.Index = undefined; | 3352 | var params: [1]ast.Node.Index = undefined; |
| 3341 | try astgen.fnDecl(gz, &wip_decls, member_node, 0, tree.fnProtoSimple(&params, member_node)); | 3353 | astgen.fnDecl(gz, &wip_decls, member_node, 0, tree.fnProtoSimple(&params, member_node)) catch |err| switch (err) { |
| | 3354 | error.OutOfMemory => return error.OutOfMemory, |
| | 3355 | error.AnalysisFail => {}, |
| | 3356 | }; |
| 3342 | continue; | 3357 | continue; |
| 3343 | }, | 3358 | }, |
| 3344 | .fn_proto_multi => { | 3359 | .fn_proto_multi => { |
| 3345 | try astgen.fnDecl(gz, &wip_decls, member_node, 0, tree.fnProtoMulti(member_node)); | 3360 | astgen.fnDecl(gz, &wip_decls, member_node, 0, tree.fnProtoMulti(member_node)) catch |err| switch (err) { |
| | 3361 | error.OutOfMemory => return error.OutOfMemory, |
| | 3362 | error.AnalysisFail => {}, |
| | 3363 | }; |
| 3346 | continue; | 3364 | continue; |
| 3347 | }, | 3365 | }, |
| 3348 | .fn_proto_one => { | 3366 | .fn_proto_one => { |
| 3349 | var params: [1]ast.Node.Index = undefined; | 3367 | var params: [1]ast.Node.Index = undefined; |
| 3350 | try astgen.fnDecl(gz, &wip_decls, member_node, 0, tree.fnProtoOne(&params, member_node)); | 3368 | astgen.fnDecl(gz, &wip_decls, member_node, 0, tree.fnProtoOne(&params, member_node)) catch |err| switch (err) { |
| | 3369 | error.OutOfMemory => return error.OutOfMemory, |
| | 3370 | error.AnalysisFail => {}, |
| | 3371 | }; |
| 3351 | continue; | 3372 | continue; |
| 3352 | }, | 3373 | }, |
| 3353 | .fn_proto => { | 3374 | .fn_proto => { |
| 3354 | try astgen.fnDecl(gz, &wip_decls, member_node, 0, tree.fnProto(member_node)); | 3375 | astgen.fnDecl(gz, &wip_decls, member_node, 0, tree.fnProto(member_node)) catch |err| switch (err) { |
| | 3376 | error.OutOfMemory => return error.OutOfMemory, |
| | 3377 | error.AnalysisFail => {}, |
| | 3378 | }; |
| 3355 | continue; | 3379 | continue; |
| 3356 | }, | 3380 | }, |
| 3357 | | 3381 | |
| 3358 | .global_var_decl => { | 3382 | .global_var_decl => { |
| 3359 | try astgen.globalVarDecl(gz, scope, &wip_decls, member_node, tree.globalVarDecl(member_node)); | 3383 | astgen.globalVarDecl(gz, scope, &wip_decls, member_node, tree.globalVarDecl(member_node)) catch |err| switch (err) { |
| | 3384 | error.OutOfMemory => return error.OutOfMemory, |
| | 3385 | error.AnalysisFail => {}, |
| | 3386 | }; |
| 3360 | continue; | 3387 | continue; |
| 3361 | }, | 3388 | }, |
| 3362 | .local_var_decl => { | 3389 | .local_var_decl => { |
| 3363 | try astgen.globalVarDecl(gz, scope, &wip_decls, member_node, tree.localVarDecl(member_node)); | 3390 | astgen.globalVarDecl(gz, scope, &wip_decls, member_node, tree.localVarDecl(member_node)) catch |err| switch (err) { |
| | 3391 | error.OutOfMemory => return error.OutOfMemory, |
| | 3392 | error.AnalysisFail => {}, |
| | 3393 | }; |
| 3364 | continue; | 3394 | continue; |
| 3365 | }, | 3395 | }, |
| 3366 | .simple_var_decl => { | 3396 | .simple_var_decl => { |
| 3367 | try astgen.globalVarDecl(gz, scope, &wip_decls, member_node, tree.simpleVarDecl(member_node)); | 3397 | astgen.globalVarDecl(gz, scope, &wip_decls, member_node, tree.simpleVarDecl(member_node)) catch |err| switch (err) { |
| | 3398 | error.OutOfMemory => return error.OutOfMemory, |
| | 3399 | error.AnalysisFail => {}, |
| | 3400 | }; |
| 3368 | continue; | 3401 | continue; |
| 3369 | }, | 3402 | }, |
| 3370 | .aligned_var_decl => { | 3403 | .aligned_var_decl => { |
| 3371 | try astgen.globalVarDecl(gz, scope, &wip_decls, member_node, tree.alignedVarDecl(member_node)); | 3404 | astgen.globalVarDecl(gz, scope, &wip_decls, member_node, tree.alignedVarDecl(member_node)) catch |err| switch (err) { |
| | 3405 | error.OutOfMemory => return error.OutOfMemory, |
| | 3406 | error.AnalysisFail => {}, |
| | 3407 | }; |
| 3372 | continue; | 3408 | continue; |
| 3373 | }, | 3409 | }, |
| 3374 | | 3410 | |
| 3375 | .@"comptime" => { | 3411 | .@"comptime" => { |
| 3376 | try astgen.comptimeDecl(gz, scope, &wip_decls, member_node); | 3412 | astgen.comptimeDecl(gz, scope, &wip_decls, member_node) catch |err| switch (err) { |
| | 3413 | error.OutOfMemory => return error.OutOfMemory, |
| | 3414 | error.AnalysisFail => {}, |
| | 3415 | }; |
| 3377 | continue; | 3416 | continue; |
| 3378 | }, | 3417 | }, |
| 3379 | .@"usingnamespace" => { | 3418 | .@"usingnamespace" => { |
| 3380 | try astgen.usingnamespaceDecl(gz, scope, &wip_decls, member_node); | 3419 | astgen.usingnamespaceDecl(gz, scope, &wip_decls, member_node) catch |err| switch (err) { |
| | 3420 | error.OutOfMemory => return error.OutOfMemory, |
| | 3421 | error.AnalysisFail => {}, |
| | 3422 | }; |
| 3381 | continue; | 3423 | continue; |
| 3382 | }, | 3424 | }, |
| 3383 | .test_decl => { | 3425 | .test_decl => { |
| 3384 | try astgen.testDecl(gz, scope, &wip_decls, member_node); | 3426 | astgen.testDecl(gz, scope, &wip_decls, member_node) catch |err| switch (err) { |
| | 3427 | error.OutOfMemory => return error.OutOfMemory, |
| | 3428 | error.AnalysisFail => {}, |
| | 3429 | }; |
| 3385 | continue; | 3430 | continue; |
| 3386 | }, | 3431 | }, |
| 3387 | else => unreachable, | 3432 | else => unreachable, |
| ... | @@ -3530,20 +3575,32 @@ fn unionDeclInner( | ... | @@ -3530,20 +3575,32 @@ fn unionDeclInner( |
| 3530 | switch (node_tags[fn_proto]) { | 3575 | switch (node_tags[fn_proto]) { |
| 3531 | .fn_proto_simple => { | 3576 | .fn_proto_simple => { |
| 3532 | var params: [1]ast.Node.Index = undefined; | 3577 | var params: [1]ast.Node.Index = undefined; |
| 3533 | try astgen.fnDecl(gz, &wip_decls, member_node, body, tree.fnProtoSimple(&params, fn_proto)); | 3578 | astgen.fnDecl(gz, &wip_decls, member_node, body, tree.fnProtoSimple(&params, fn_proto)) catch |err| switch (err) { |
| | 3579 | error.OutOfMemory => return error.OutOfMemory, |
| | 3580 | error.AnalysisFail => {}, |
| | 3581 | }; |
| 3534 | continue; | 3582 | continue; |
| 3535 | }, | 3583 | }, |
| 3536 | .fn_proto_multi => { | 3584 | .fn_proto_multi => { |
| 3537 | try astgen.fnDecl(gz, &wip_decls, member_node, body, tree.fnProtoMulti(fn_proto)); | 3585 | astgen.fnDecl(gz, &wip_decls, member_node, body, tree.fnProtoMulti(fn_proto)) catch |err| switch (err) { |
| | 3586 | error.OutOfMemory => return error.OutOfMemory, |
| | 3587 | error.AnalysisFail => {}, |
| | 3588 | }; |
| 3538 | continue; | 3589 | continue; |
| 3539 | }, | 3590 | }, |
| 3540 | .fn_proto_one => { | 3591 | .fn_proto_one => { |
| 3541 | var params: [1]ast.Node.Index = undefined; | 3592 | var params: [1]ast.Node.Index = undefined; |
| 3542 | try astgen.fnDecl(gz, &wip_decls, member_node, body, tree.fnProtoOne(&params, fn_proto)); | 3593 | astgen.fnDecl(gz, &wip_decls, member_node, body, tree.fnProtoOne(&params, fn_proto)) catch |err| switch (err) { |
| | 3594 | error.OutOfMemory => return error.OutOfMemory, |
| | 3595 | error.AnalysisFail => {}, |
| | 3596 | }; |
| 3543 | continue; | 3597 | continue; |
| 3544 | }, | 3598 | }, |
| 3545 | .fn_proto => { | 3599 | .fn_proto => { |
| 3546 | try astgen.fnDecl(gz, &wip_decls, member_node, body, tree.fnProto(fn_proto)); | 3600 | astgen.fnDecl(gz, &wip_decls, member_node, body, tree.fnProto(fn_proto)) catch |err| switch (err) { |
| | 3601 | error.OutOfMemory => return error.OutOfMemory, |
| | 3602 | error.AnalysisFail => {}, |
| | 3603 | }; |
| 3547 | continue; | 3604 | continue; |
| 3548 | }, | 3605 | }, |
| 3549 | else => unreachable, | 3606 | else => unreachable, |
| ... | @@ -3551,50 +3608,83 @@ fn unionDeclInner( | ... | @@ -3551,50 +3608,83 @@ fn unionDeclInner( |
| 3551 | }, | 3608 | }, |
| 3552 | .fn_proto_simple => { | 3609 | .fn_proto_simple => { |
| 3553 | var params: [1]ast.Node.Index = undefined; | 3610 | var params: [1]ast.Node.Index = undefined; |
| 3554 | try astgen.fnDecl(gz, &wip_decls, member_node, 0, tree.fnProtoSimple(&params, member_node)); | 3611 | astgen.fnDecl(gz, &wip_decls, member_node, 0, tree.fnProtoSimple(&params, member_node)) catch |err| switch (err) { |
| | 3612 | error.OutOfMemory => return error.OutOfMemory, |
| | 3613 | error.AnalysisFail => {}, |
| | 3614 | }; |
| 3555 | continue; | 3615 | continue; |
| 3556 | }, | 3616 | }, |
| 3557 | .fn_proto_multi => { | 3617 | .fn_proto_multi => { |
| 3558 | try astgen.fnDecl(gz, &wip_decls, member_node, 0, tree.fnProtoMulti(member_node)); | 3618 | astgen.fnDecl(gz, &wip_decls, member_node, 0, tree.fnProtoMulti(member_node)) catch |err| switch (err) { |
| | 3619 | error.OutOfMemory => return error.OutOfMemory, |
| | 3620 | error.AnalysisFail => {}, |
| | 3621 | }; |
| 3559 | continue; | 3622 | continue; |
| 3560 | }, | 3623 | }, |
| 3561 | .fn_proto_one => { | 3624 | .fn_proto_one => { |
| 3562 | var params: [1]ast.Node.Index = undefined; | 3625 | var params: [1]ast.Node.Index = undefined; |
| 3563 | try astgen.fnDecl(gz, &wip_decls, member_node, 0, tree.fnProtoOne(&params, member_node)); | 3626 | astgen.fnDecl(gz, &wip_decls, member_node, 0, tree.fnProtoOne(&params, member_node)) catch |err| switch (err) { |
| | 3627 | error.OutOfMemory => return error.OutOfMemory, |
| | 3628 | error.AnalysisFail => {}, |
| | 3629 | }; |
| 3564 | continue; | 3630 | continue; |
| 3565 | }, | 3631 | }, |
| 3566 | .fn_proto => { | 3632 | .fn_proto => { |
| 3567 | try astgen.fnDecl(gz, &wip_decls, member_node, 0, tree.fnProto(member_node)); | 3633 | astgen.fnDecl(gz, &wip_decls, member_node, 0, tree.fnProto(member_node)) catch |err| switch (err) { |
| | 3634 | error.OutOfMemory => return error.OutOfMemory, |
| | 3635 | error.AnalysisFail => {}, |
| | 3636 | }; |
| 3568 | continue; | 3637 | continue; |
| 3569 | }, | 3638 | }, |
| 3570 | | 3639 | |
| 3571 | .global_var_decl => { | 3640 | .global_var_decl => { |
| 3572 | try astgen.globalVarDecl(gz, scope, &wip_decls, member_node, tree.globalVarDecl(member_node)); | 3641 | astgen.globalVarDecl(gz, scope, &wip_decls, member_node, tree.globalVarDecl(member_node)) catch |err| switch (err) { |
| | 3642 | error.OutOfMemory => return error.OutOfMemory, |
| | 3643 | error.AnalysisFail => {}, |
| | 3644 | }; |
| 3573 | continue; | 3645 | continue; |
| 3574 | }, | 3646 | }, |
| 3575 | .local_var_decl => { | 3647 | .local_var_decl => { |
| 3576 | try astgen.globalVarDecl(gz, scope, &wip_decls, member_node, tree.localVarDecl(member_node)); | 3648 | astgen.globalVarDecl(gz, scope, &wip_decls, member_node, tree.localVarDecl(member_node)) catch |err| switch (err) { |
| | 3649 | error.OutOfMemory => return error.OutOfMemory, |
| | 3650 | error.AnalysisFail => {}, |
| | 3651 | }; |
| 3577 | continue; | 3652 | continue; |
| 3578 | }, | 3653 | }, |
| 3579 | .simple_var_decl => { | 3654 | .simple_var_decl => { |
| 3580 | try astgen.globalVarDecl(gz, scope, &wip_decls, member_node, tree.simpleVarDecl(member_node)); | 3655 | astgen.globalVarDecl(gz, scope, &wip_decls, member_node, tree.simpleVarDecl(member_node)) catch |err| switch (err) { |
| | 3656 | error.OutOfMemory => return error.OutOfMemory, |
| | 3657 | error.AnalysisFail => {}, |
| | 3658 | }; |
| 3581 | continue; | 3659 | continue; |
| 3582 | }, | 3660 | }, |
| 3583 | .aligned_var_decl => { | 3661 | .aligned_var_decl => { |
| 3584 | try astgen.globalVarDecl(gz, scope, &wip_decls, member_node, tree.alignedVarDecl(member_node)); | 3662 | astgen.globalVarDecl(gz, scope, &wip_decls, member_node, tree.alignedVarDecl(member_node)) catch |err| switch (err) { |
| | 3663 | error.OutOfMemory => return error.OutOfMemory, |
| | 3664 | error.AnalysisFail => {}, |
| | 3665 | }; |
| 3585 | continue; | 3666 | continue; |
| 3586 | }, | 3667 | }, |
| 3587 | | 3668 | |
| 3588 | .@"comptime" => { | 3669 | .@"comptime" => { |
| 3589 | try astgen.comptimeDecl(gz, scope, &wip_decls, member_node); | 3670 | astgen.comptimeDecl(gz, scope, &wip_decls, member_node) catch |err| switch (err) { |
| | 3671 | error.OutOfMemory => return error.OutOfMemory, |
| | 3672 | error.AnalysisFail => {}, |
| | 3673 | }; |
| 3590 | continue; | 3674 | continue; |
| 3591 | }, | 3675 | }, |
| 3592 | .@"usingnamespace" => { | 3676 | .@"usingnamespace" => { |
| 3593 | try astgen.usingnamespaceDecl(gz, scope, &wip_decls, member_node); | 3677 | astgen.usingnamespaceDecl(gz, scope, &wip_decls, member_node) catch |err| switch (err) { |
| | 3678 | error.OutOfMemory => return error.OutOfMemory, |
| | 3679 | error.AnalysisFail => {}, |
| | 3680 | }; |
| 3594 | continue; | 3681 | continue; |
| 3595 | }, | 3682 | }, |
| 3596 | .test_decl => { | 3683 | .test_decl => { |
| 3597 | try astgen.testDecl(gz, scope, &wip_decls, member_node); | 3684 | astgen.testDecl(gz, scope, &wip_decls, member_node) catch |err| switch (err) { |
| | 3685 | error.OutOfMemory => return error.OutOfMemory, |
| | 3686 | error.AnalysisFail => {}, |
| | 3687 | }; |
| 3598 | continue; | 3688 | continue; |
| 3599 | }, | 3689 | }, |
| 3600 | else => unreachable, | 3690 | else => unreachable, |
| ... | @@ -3878,20 +3968,32 @@ fn containerDecl( | ... | @@ -3878,20 +3968,32 @@ fn containerDecl( |
| 3878 | switch (node_tags[fn_proto]) { | 3968 | switch (node_tags[fn_proto]) { |
| 3879 | .fn_proto_simple => { | 3969 | .fn_proto_simple => { |
| 3880 | var params: [1]ast.Node.Index = undefined; | 3970 | var params: [1]ast.Node.Index = undefined; |
| 3881 | try astgen.fnDecl(gz, &wip_decls, member_node, body, tree.fnProtoSimple(&params, fn_proto)); | 3971 | astgen.fnDecl(gz, &wip_decls, member_node, body, tree.fnProtoSimple(&params, fn_proto)) catch |err| switch (err) { |
| | 3972 | error.OutOfMemory => return error.OutOfMemory, |
| | 3973 | error.AnalysisFail => {}, |
| | 3974 | }; |
| 3882 | continue; | 3975 | continue; |
| 3883 | }, | 3976 | }, |
| 3884 | .fn_proto_multi => { | 3977 | .fn_proto_multi => { |
| 3885 | try astgen.fnDecl(gz, &wip_decls, member_node, body, tree.fnProtoMulti(fn_proto)); | 3978 | astgen.fnDecl(gz, &wip_decls, member_node, body, tree.fnProtoMulti(fn_proto)) catch |err| switch (err) { |
| | 3979 | error.OutOfMemory => return error.OutOfMemory, |
| | 3980 | error.AnalysisFail => {}, |
| | 3981 | }; |
| 3886 | continue; | 3982 | continue; |
| 3887 | }, | 3983 | }, |
| 3888 | .fn_proto_one => { | 3984 | .fn_proto_one => { |
| 3889 | var params: [1]ast.Node.Index = undefined; | 3985 | var params: [1]ast.Node.Index = undefined; |
| 3890 | try astgen.fnDecl(gz, &wip_decls, member_node, body, tree.fnProtoOne(&params, fn_proto)); | 3986 | astgen.fnDecl(gz, &wip_decls, member_node, body, tree.fnProtoOne(&params, fn_proto)) catch |err| switch (err) { |
| | 3987 | error.OutOfMemory => return error.OutOfMemory, |
| | 3988 | error.AnalysisFail => {}, |
| | 3989 | }; |
| 3891 | continue; | 3990 | continue; |
| 3892 | }, | 3991 | }, |
| 3893 | .fn_proto => { | 3992 | .fn_proto => { |
| 3894 | try astgen.fnDecl(gz, &wip_decls, member_node, body, tree.fnProto(fn_proto)); | 3993 | astgen.fnDecl(gz, &wip_decls, member_node, body, tree.fnProto(fn_proto)) catch |err| switch (err) { |
| | 3994 | error.OutOfMemory => return error.OutOfMemory, |
| | 3995 | error.AnalysisFail => {}, |
| | 3996 | }; |
| 3895 | continue; | 3997 | continue; |
| 3896 | }, | 3998 | }, |
| 3897 | else => unreachable, | 3999 | else => unreachable, |
| ... | @@ -3899,50 +4001,83 @@ fn containerDecl( | ... | @@ -3899,50 +4001,83 @@ fn containerDecl( |
| 3899 | }, | 4001 | }, |
| 3900 | .fn_proto_simple => { | 4002 | .fn_proto_simple => { |
| 3901 | var params: [1]ast.Node.Index = undefined; | 4003 | var params: [1]ast.Node.Index = undefined; |
| 3902 | try astgen.fnDecl(gz, &wip_decls, member_node, 0, tree.fnProtoSimple(&params, member_node)); | 4004 | astgen.fnDecl(gz, &wip_decls, member_node, 0, tree.fnProtoSimple(&params, member_node)) catch |err| switch (err) { |
| | 4005 | error.OutOfMemory => return error.OutOfMemory, |
| | 4006 | error.AnalysisFail => {}, |
| | 4007 | }; |
| 3903 | continue; | 4008 | continue; |
| 3904 | }, | 4009 | }, |
| 3905 | .fn_proto_multi => { | 4010 | .fn_proto_multi => { |
| 3906 | try astgen.fnDecl(gz, &wip_decls, member_node, 0, tree.fnProtoMulti(member_node)); | 4011 | astgen.fnDecl(gz, &wip_decls, member_node, 0, tree.fnProtoMulti(member_node)) catch |err| switch (err) { |
| | 4012 | error.OutOfMemory => return error.OutOfMemory, |
| | 4013 | error.AnalysisFail => {}, |
| | 4014 | }; |
| 3907 | continue; | 4015 | continue; |
| 3908 | }, | 4016 | }, |
| 3909 | .fn_proto_one => { | 4017 | .fn_proto_one => { |
| 3910 | var params: [1]ast.Node.Index = undefined; | 4018 | var params: [1]ast.Node.Index = undefined; |
| 3911 | try astgen.fnDecl(gz, &wip_decls, member_node, 0, tree.fnProtoOne(&params, member_node)); | 4019 | astgen.fnDecl(gz, &wip_decls, member_node, 0, tree.fnProtoOne(&params, member_node)) catch |err| switch (err) { |
| | 4020 | error.OutOfMemory => return error.OutOfMemory, |
| | 4021 | error.AnalysisFail => {}, |
| | 4022 | }; |
| 3912 | continue; | 4023 | continue; |
| 3913 | }, | 4024 | }, |
| 3914 | .fn_proto => { | 4025 | .fn_proto => { |
| 3915 | try astgen.fnDecl(gz, &wip_decls, member_node, 0, tree.fnProto(member_node)); | 4026 | astgen.fnDecl(gz, &wip_decls, member_node, 0, tree.fnProto(member_node)) catch |err| switch (err) { |
| | 4027 | error.OutOfMemory => return error.OutOfMemory, |
| | 4028 | error.AnalysisFail => {}, |
| | 4029 | }; |
| 3916 | continue; | 4030 | continue; |
| 3917 | }, | 4031 | }, |
| 3918 | | 4032 | |
| 3919 | .global_var_decl => { | 4033 | .global_var_decl => { |
| 3920 | try astgen.globalVarDecl(gz, scope, &wip_decls, member_node, tree.globalVarDecl(member_node)); | 4034 | astgen.globalVarDecl(gz, scope, &wip_decls, member_node, tree.globalVarDecl(member_node)) catch |err| switch (err) { |
| | 4035 | error.OutOfMemory => return error.OutOfMemory, |
| | 4036 | error.AnalysisFail => {}, |
| | 4037 | }; |
| 3921 | continue; | 4038 | continue; |
| 3922 | }, | 4039 | }, |
| 3923 | .local_var_decl => { | 4040 | .local_var_decl => { |
| 3924 | try astgen.globalVarDecl(gz, scope, &wip_decls, member_node, tree.localVarDecl(member_node)); | 4041 | astgen.globalVarDecl(gz, scope, &wip_decls, member_node, tree.localVarDecl(member_node)) catch |err| switch (err) { |
| | 4042 | error.OutOfMemory => return error.OutOfMemory, |
| | 4043 | error.AnalysisFail => {}, |
| | 4044 | }; |
| 3925 | continue; | 4045 | continue; |
| 3926 | }, | 4046 | }, |
| 3927 | .simple_var_decl => { | 4047 | .simple_var_decl => { |
| 3928 | try astgen.globalVarDecl(gz, scope, &wip_decls, member_node, tree.simpleVarDecl(member_node)); | 4048 | astgen.globalVarDecl(gz, scope, &wip_decls, member_node, tree.simpleVarDecl(member_node)) catch |err| switch (err) { |
| | 4049 | error.OutOfMemory => return error.OutOfMemory, |
| | 4050 | error.AnalysisFail => {}, |
| | 4051 | }; |
| 3929 | continue; | 4052 | continue; |
| 3930 | }, | 4053 | }, |
| 3931 | .aligned_var_decl => { | 4054 | .aligned_var_decl => { |
| 3932 | try astgen.globalVarDecl(gz, scope, &wip_decls, member_node, tree.alignedVarDecl(member_node)); | 4055 | astgen.globalVarDecl(gz, scope, &wip_decls, member_node, tree.alignedVarDecl(member_node)) catch |err| switch (err) { |
| | 4056 | error.OutOfMemory => return error.OutOfMemory, |
| | 4057 | error.AnalysisFail => {}, |
| | 4058 | }; |
| 3933 | continue; | 4059 | continue; |
| 3934 | }, | 4060 | }, |
| 3935 | | 4061 | |
| 3936 | .@"comptime" => { | 4062 | .@"comptime" => { |
| 3937 | try astgen.comptimeDecl(gz, scope, &wip_decls, member_node); | 4063 | astgen.comptimeDecl(gz, scope, &wip_decls, member_node) catch |err| switch (err) { |
| | 4064 | error.OutOfMemory => return error.OutOfMemory, |
| | 4065 | error.AnalysisFail => {}, |
| | 4066 | }; |
| 3938 | continue; | 4067 | continue; |
| 3939 | }, | 4068 | }, |
| 3940 | .@"usingnamespace" => { | 4069 | .@"usingnamespace" => { |
| 3941 | try astgen.usingnamespaceDecl(gz, scope, &wip_decls, member_node); | 4070 | astgen.usingnamespaceDecl(gz, scope, &wip_decls, member_node) catch |err| switch (err) { |
| | 4071 | error.OutOfMemory => return error.OutOfMemory, |
| | 4072 | error.AnalysisFail => {}, |
| | 4073 | }; |
| 3942 | continue; | 4074 | continue; |
| 3943 | }, | 4075 | }, |
| 3944 | .test_decl => { | 4076 | .test_decl => { |
| 3945 | try astgen.testDecl(gz, scope, &wip_decls, member_node); | 4077 | astgen.testDecl(gz, scope, &wip_decls, member_node) catch |err| switch (err) { |
| | 4078 | error.OutOfMemory => return error.OutOfMemory, |
| | 4079 | error.AnalysisFail => {}, |
| | 4080 | }; |
| 3946 | continue; | 4081 | continue; |
| 3947 | }, | 4082 | }, |
| 3948 | else => unreachable, | 4083 | else => unreachable, |
| ... | @@ -4044,20 +4179,32 @@ fn containerDecl( | ... | @@ -4044,20 +4179,32 @@ fn containerDecl( |
| 4044 | switch (node_tags[fn_proto]) { | 4179 | switch (node_tags[fn_proto]) { |
| 4045 | .fn_proto_simple => { | 4180 | .fn_proto_simple => { |
| 4046 | var params: [1]ast.Node.Index = undefined; | 4181 | var params: [1]ast.Node.Index = undefined; |
| 4047 | try astgen.fnDecl(gz, &wip_decls, member_node, body, tree.fnProtoSimple(&params, fn_proto)); | 4182 | astgen.fnDecl(gz, &wip_decls, member_node, body, tree.fnProtoSimple(&params, fn_proto)) catch |err| switch (err) { |
| | 4183 | error.OutOfMemory => return error.OutOfMemory, |
| | 4184 | error.AnalysisFail => {}, |
| | 4185 | }; |
| 4048 | continue; | 4186 | continue; |
| 4049 | }, | 4187 | }, |
| 4050 | .fn_proto_multi => { | 4188 | .fn_proto_multi => { |
| 4051 | try astgen.fnDecl(gz, &wip_decls, member_node, body, tree.fnProtoMulti(fn_proto)); | 4189 | astgen.fnDecl(gz, &wip_decls, member_node, body, tree.fnProtoMulti(fn_proto)) catch |err| switch (err) { |
| | 4190 | error.OutOfMemory => return error.OutOfMemory, |
| | 4191 | error.AnalysisFail => {}, |
| | 4192 | }; |
| 4052 | continue; | 4193 | continue; |
| 4053 | }, | 4194 | }, |
| 4054 | .fn_proto_one => { | 4195 | .fn_proto_one => { |
| 4055 | var params: [1]ast.Node.Index = undefined; | 4196 | var params: [1]ast.Node.Index = undefined; |
| 4056 | try astgen.fnDecl(gz, &wip_decls, member_node, body, tree.fnProtoOne(&params, fn_proto)); | 4197 | astgen.fnDecl(gz, &wip_decls, member_node, body, tree.fnProtoOne(&params, fn_proto)) catch |err| switch (err) { |
| | 4198 | error.OutOfMemory => return error.OutOfMemory, |
| | 4199 | error.AnalysisFail => {}, |
| | 4200 | }; |
| 4057 | continue; | 4201 | continue; |
| 4058 | }, | 4202 | }, |
| 4059 | .fn_proto => { | 4203 | .fn_proto => { |
| 4060 | try astgen.fnDecl(gz, &wip_decls, member_node, body, tree.fnProto(fn_proto)); | 4204 | astgen.fnDecl(gz, &wip_decls, member_node, body, tree.fnProto(fn_proto)) catch |err| switch (err) { |
| | 4205 | error.OutOfMemory => return error.OutOfMemory, |
| | 4206 | error.AnalysisFail => {}, |
| | 4207 | }; |
| 4061 | continue; | 4208 | continue; |
| 4062 | }, | 4209 | }, |
| 4063 | else => unreachable, | 4210 | else => unreachable, |
| ... | @@ -4065,50 +4212,83 @@ fn containerDecl( | ... | @@ -4065,50 +4212,83 @@ fn containerDecl( |
| 4065 | }, | 4212 | }, |
| 4066 | .fn_proto_simple => { | 4213 | .fn_proto_simple => { |
| 4067 | var params: [1]ast.Node.Index = undefined; | 4214 | var params: [1]ast.Node.Index = undefined; |
| 4068 | try astgen.fnDecl(gz, &wip_decls, member_node, 0, tree.fnProtoSimple(&params, member_node)); | 4215 | astgen.fnDecl(gz, &wip_decls, member_node, 0, tree.fnProtoSimple(&params, member_node)) catch |err| switch (err) { |
| | 4216 | error.OutOfMemory => return error.OutOfMemory, |
| | 4217 | error.AnalysisFail => {}, |
| | 4218 | }; |
| 4069 | continue; | 4219 | continue; |
| 4070 | }, | 4220 | }, |
| 4071 | .fn_proto_multi => { | 4221 | .fn_proto_multi => { |
| 4072 | try astgen.fnDecl(gz, &wip_decls, member_node, 0, tree.fnProtoMulti(member_node)); | 4222 | astgen.fnDecl(gz, &wip_decls, member_node, 0, tree.fnProtoMulti(member_node)) catch |err| switch (err) { |
| | 4223 | error.OutOfMemory => return error.OutOfMemory, |
| | 4224 | error.AnalysisFail => {}, |
| | 4225 | }; |
| 4073 | continue; | 4226 | continue; |
| 4074 | }, | 4227 | }, |
| 4075 | .fn_proto_one => { | 4228 | .fn_proto_one => { |
| 4076 | var params: [1]ast.Node.Index = undefined; | 4229 | var params: [1]ast.Node.Index = undefined; |
| 4077 | try astgen.fnDecl(gz, &wip_decls, member_node, 0, tree.fnProtoOne(&params, member_node)); | 4230 | astgen.fnDecl(gz, &wip_decls, member_node, 0, tree.fnProtoOne(&params, member_node)) catch |err| switch (err) { |
| | 4231 | error.OutOfMemory => return error.OutOfMemory, |
| | 4232 | error.AnalysisFail => {}, |
| | 4233 | }; |
| 4078 | continue; | 4234 | continue; |
| 4079 | }, | 4235 | }, |
| 4080 | .fn_proto => { | 4236 | .fn_proto => { |
| 4081 | try astgen.fnDecl(gz, &wip_decls, member_node, 0, tree.fnProto(member_node)); | 4237 | astgen.fnDecl(gz, &wip_decls, member_node, 0, tree.fnProto(member_node)) catch |err| switch (err) { |
| | 4238 | error.OutOfMemory => return error.OutOfMemory, |
| | 4239 | error.AnalysisFail => {}, |
| | 4240 | }; |
| 4082 | continue; | 4241 | continue; |
| 4083 | }, | 4242 | }, |
| 4084 | | 4243 | |
| 4085 | .global_var_decl => { | 4244 | .global_var_decl => { |
| 4086 | try astgen.globalVarDecl(gz, scope, &wip_decls, member_node, tree.globalVarDecl(member_node)); | 4245 | astgen.globalVarDecl(gz, scope, &wip_decls, member_node, tree.globalVarDecl(member_node)) catch |err| switch (err) { |
| | 4246 | error.OutOfMemory => return error.OutOfMemory, |
| | 4247 | error.AnalysisFail => {}, |
| | 4248 | }; |
| 4087 | continue; | 4249 | continue; |
| 4088 | }, | 4250 | }, |
| 4089 | .local_var_decl => { | 4251 | .local_var_decl => { |
| 4090 | try astgen.globalVarDecl(gz, scope, &wip_decls, member_node, tree.localVarDecl(member_node)); | 4252 | astgen.globalVarDecl(gz, scope, &wip_decls, member_node, tree.localVarDecl(member_node)) catch |err| switch (err) { |
| | 4253 | error.OutOfMemory => return error.OutOfMemory, |
| | 4254 | error.AnalysisFail => {}, |
| | 4255 | }; |
| 4091 | continue; | 4256 | continue; |
| 4092 | }, | 4257 | }, |
| 4093 | .simple_var_decl => { | 4258 | .simple_var_decl => { |
| 4094 | try astgen.globalVarDecl(gz, scope, &wip_decls, member_node, tree.simpleVarDecl(member_node)); | 4259 | astgen.globalVarDecl(gz, scope, &wip_decls, member_node, tree.simpleVarDecl(member_node)) catch |err| switch (err) { |
| | 4260 | error.OutOfMemory => return error.OutOfMemory, |
| | 4261 | error.AnalysisFail => {}, |
| | 4262 | }; |
| 4095 | continue; | 4263 | continue; |
| 4096 | }, | 4264 | }, |
| 4097 | .aligned_var_decl => { | 4265 | .aligned_var_decl => { |
| 4098 | try astgen.globalVarDecl(gz, scope, &wip_decls, member_node, tree.alignedVarDecl(member_node)); | 4266 | astgen.globalVarDecl(gz, scope, &wip_decls, member_node, tree.alignedVarDecl(member_node)) catch |err| switch (err) { |
| | 4267 | error.OutOfMemory => return error.OutOfMemory, |
| | 4268 | error.AnalysisFail => {}, |
| | 4269 | }; |
| 4099 | continue; | 4270 | continue; |
| 4100 | }, | 4271 | }, |
| 4101 | | 4272 | |
| 4102 | .@"comptime" => { | 4273 | .@"comptime" => { |
| 4103 | try astgen.comptimeDecl(gz, scope, &wip_decls, member_node); | 4274 | astgen.comptimeDecl(gz, scope, &wip_decls, member_node) catch |err| switch (err) { |
| | 4275 | error.OutOfMemory => return error.OutOfMemory, |
| | 4276 | error.AnalysisFail => {}, |
| | 4277 | }; |
| 4104 | continue; | 4278 | continue; |
| 4105 | }, | 4279 | }, |
| 4106 | .@"usingnamespace" => { | 4280 | .@"usingnamespace" => { |
| 4107 | try astgen.usingnamespaceDecl(gz, scope, &wip_decls, member_node); | 4281 | astgen.usingnamespaceDecl(gz, scope, &wip_decls, member_node) catch |err| switch (err) { |
| | 4282 | error.OutOfMemory => return error.OutOfMemory, |
| | 4283 | error.AnalysisFail => {}, |
| | 4284 | }; |
| 4108 | continue; | 4285 | continue; |
| 4109 | }, | 4286 | }, |
| 4110 | .test_decl => { | 4287 | .test_decl => { |
| 4111 | try astgen.testDecl(gz, scope, &wip_decls, member_node); | 4288 | astgen.testDecl(gz, scope, &wip_decls, member_node) catch |err| switch (err) { |
| | 4289 | error.OutOfMemory => return error.OutOfMemory, |
| | 4290 | error.AnalysisFail => {}, |
| | 4291 | }; |
| 4112 | continue; | 4292 | continue; |
| 4113 | }, | 4293 | }, |
| 4114 | else => unreachable, | 4294 | else => unreachable, |