@@ -836,20 +836,38 @@ pub const SrcLoc = struct {
836
836
.node_offset_var_decl_align = > | node_off | {
837
837
const tree = try src_loc .file_scope .getTree (gpa );
838
838
const node = src_loc .relativeToNodeIndex (node_off );
839
- const full = tree .fullVarDecl (node ).? ;
840
- return tree .nodeToSpan (full .ast .align_node );
839
+ var buf : [1 ]Ast.Node.Index = undefined ;
840
+ const align_node = if (tree .fullVarDecl (node )) | v |
841
+ v .ast .align_node
842
+ else if (tree .fullFnProto (& buf , node )) | f |
843
+ f .ast .align_expr
844
+ else
845
+ unreachable ;
846
+ return tree .nodeToSpan (align_node );
841
847
},
842
848
.node_offset_var_decl_section = > | node_off | {
843
849
const tree = try src_loc .file_scope .getTree (gpa );
844
850
const node = src_loc .relativeToNodeIndex (node_off );
845
- const full = tree .fullVarDecl (node ).? ;
846
- return tree .nodeToSpan (full .ast .section_node );
851
+ var buf : [1 ]Ast.Node.Index = undefined ;
852
+ const section_node = if (tree .fullVarDecl (node )) | v |
853
+ v .ast .section_node
854
+ else if (tree .fullFnProto (& buf , node )) | f |
855
+ f .ast .section_expr
856
+ else
857
+ unreachable ;
858
+ return tree .nodeToSpan (section_node );
847
859
},
848
860
.node_offset_var_decl_addrspace = > | node_off | {
849
861
const tree = try src_loc .file_scope .getTree (gpa );
850
862
const node = src_loc .relativeToNodeIndex (node_off );
851
- const full = tree .fullVarDecl (node ).? ;
852
- return tree .nodeToSpan (full .ast .addrspace_node );
863
+ var buf : [1 ]Ast.Node.Index = undefined ;
864
+ const addrspace_node = if (tree .fullVarDecl (node )) | v |
865
+ v .ast .addrspace_node
866
+ else if (tree .fullFnProto (& buf , node )) | f |
867
+ f .ast .addrspace_expr
868
+ else
869
+ unreachable ;
870
+ return tree .nodeToSpan (addrspace_node );
853
871
},
854
872
.node_offset_var_decl_init = > | node_off | {
855
873
const tree = try src_loc .file_scope .getTree (gpa );
0 commit comments