pub const ContainerField = struct comptime_token: ?TokenIndexast: Componentspub fn firstToken(cf: ContainerField) TokenIndexpub fn convertToNonTupleLike(cf: *ContainerField, tree: *const Ast) void2539
2540
2541
2542
2543
2544
2545
2546
2547
2548
2549
2550
2551
2552
2553
2554
2555
2556
2557
2558
2559
2560
2561
2562
2563 pub const ContainerField = struct {
comptime_token: ?TokenIndex,
ast: Components,
pub const Components = struct {
main_token: TokenIndex,
/// Can only be `.none` after calling `convertToNonTupleLike`.
type_expr: Node.OptionalIndex,
align_expr: Node.OptionalIndex,
value_expr: Node.OptionalIndex,
tuple_like: bool,
};
pub fn firstToken(cf: ContainerField) TokenIndex {
return cf.comptime_token orelse cf.ast.main_token;
}
pub fn convertToNonTupleLike(cf: *ContainerField, tree: *const Ast) void {
if (!cf.ast.tuple_like) return;
if (tree.nodeTag(cf.ast.type_expr.unwrap().?) != .identifier) return;
cf.ast.type_expr = .none;
cf.ast.tuple_like = false;
}
}