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