| ... | ... | @@ -2136,10 +2136,12 @@ fn fullPtrTypeComponents(tree: Ast, info: full.PtrType.Components) full.PtrType |
| 2136 | 2136 | // here while looking for modifiers as that could result in false |
| 2137 | 2137 | // positives. Therefore, start after a sentinel if there is one and |
| 2138 | 2138 | // skip over any align node and bit range nodes. |
| 2139 | | var i = if (info.sentinel.unwrap()) |sentinel| tree.lastToken(sentinel) + 1 else switch (size) { |
| 2140 | | .many, .c => info.main_token + 1, |
| 2141 | | else => info.main_token, |
| 2142 | | }; |
| 2139 | var i = (if (info.sentinel.unwrap()) |sentinel| tree.lastToken(sentinel) + 1 else switch (size) { |
| 2140 | .one => info.main_token, |
| 2141 | .slice => info.main_token + 1, |
| 2142 | .many => info.main_token + 2, |
| 2143 | .c => info.main_token + 3, |
| 2144 | }) + 1; |
| 2143 | 2145 | const end = tree.firstToken(info.child_type); |
| 2144 | 2146 | while (i < end) : (i += 1) { |
| 2145 | 2147 | switch (tree.tokenTag(i)) { |
| ... | ... | @@ -2147,15 +2149,15 @@ fn fullPtrTypeComponents(tree: Ast, info: full.PtrType.Components) full.PtrType |
| 2147 | 2149 | .keyword_const => result.const_token = i, |
| 2148 | 2150 | .keyword_volatile => result.volatile_token = i, |
| 2149 | 2151 | .keyword_align => { |
| 2150 | | const align_node = info.align_node.unwrap().?; |
| 2151 | 2152 | if (info.bit_range_end.unwrap()) |bit_range_end| { |
| 2152 | 2153 | assert(info.bit_range_start != .none); |
| 2153 | 2154 | i = tree.lastToken(bit_range_end) + 1; |
| 2154 | | } else { |
| 2155 | } else if (info.align_node.unwrap()) |align_node| { |
| 2155 | 2156 | i = tree.lastToken(align_node) + 1; |
| 2156 | | } |
| 2157 | } else unreachable; |
| 2157 | 2158 | }, |
| 2158 | | else => {}, |
| 2159 | .keyword_addrspace => i = tree.lastToken(info.addrspace_node.unwrap().?) + 1, |
| 2160 | else => unreachable, |
| 2159 | 2161 | } |
| 2160 | 2162 | } |
| 2161 | 2163 | return result; |