Fix semantic token generation for container fields with a byte alignment
This commit is contained in:
		
							parent
							
								
									14dc9d1b51
								
							
						
					
					
						commit
						5631b8d202
					
				| @ -1017,20 +1017,20 @@ fn writeContainerField( | |||||||
|     if (field_token_type) |tok_type| try writeToken(builder, container_field.ast.name_token, tok_type); |     if (field_token_type) |tok_type| try writeToken(builder, container_field.ast.name_token, tok_type); | ||||||
| 
 | 
 | ||||||
|     if (container_field.ast.type_expr != 0) { |     if (container_field.ast.type_expr != 0) { | ||||||
|  |         try await @asyncCall(child_frame, {}, writeNodeTokens, .{ builder, arena, store, container_field.ast.type_expr }); | ||||||
|         if (container_field.ast.align_expr != 0) { |         if (container_field.ast.align_expr != 0) { | ||||||
|             try writeToken(builder, tree.firstToken(container_field.ast.align_expr) - 2, .keyword); |             try writeToken(builder, tree.firstToken(container_field.ast.align_expr) - 2, .keyword); | ||||||
|             try await @asyncCall(child_frame, {}, writeNodeTokens, .{ builder, arena, store, container_field.ast.align_expr }); |             try await @asyncCall(child_frame, {}, writeNodeTokens, .{ builder, arena, store, container_field.ast.align_expr }); | ||||||
|         } |         } | ||||||
|         try await @asyncCall(child_frame, {}, writeNodeTokens, .{ builder, arena, store, container_field.ast.type_expr }); |  | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     if (container_field.ast.value_expr != 0) block: { |     if (container_field.ast.value_expr != 0) block: { | ||||||
|         const eq_tok: ast.TokenIndex = if (container_field.ast.type_expr != 0) |         const eq_tok: ast.TokenIndex = if (container_field.ast.align_expr != 0) | ||||||
|  |             lastToken(tree, container_field.ast.align_expr) + 2 | ||||||
|  |         else if (container_field.ast.type_expr != 0) | ||||||
|             lastToken(tree, container_field.ast.type_expr) + 1 |             lastToken(tree, container_field.ast.type_expr) + 1 | ||||||
|         else if (container_field.ast.align_expr != 0) |  | ||||||
|             lastToken(tree, container_field.ast.align_expr) + 1 |  | ||||||
|         else |         else | ||||||
|             break :block; // Check this, I believe it is correct. |             break :block; | ||||||
| 
 | 
 | ||||||
|         try writeToken(builder, eq_tok, .operator); |         try writeToken(builder, eq_tok, .operator); | ||||||
|         try await @asyncCall(child_frame, {}, writeNodeTokens, .{ builder, arena, store, container_field.ast.value_expr }); |         try await @asyncCall(child_frame, {}, writeNodeTokens, .{ builder, arena, store, container_field.ast.value_expr }); | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user