comptime_token: ?TokenIndexast: Componentspub fn firstToken(cf: ContainerField) TokenIndexcf: ContainerFieldpub fn firstToken(cf: ContainerField) TokenIndex {
return cf.comptime_token orelse cf.ast.main_token;
}pub fn convertToNonTupleLike(cf: *ContainerField, nodes: NodeList.Slice) voidcf: *ContainerFieldpub fn convertToNonTupleLike(cf: *ContainerField, nodes: NodeList.Slice) void {
if (!cf.ast.tuple_like) return;
if (nodes.items(.tag)[cf.ast.type_expr] != .identifier) return;
cf.ast.type_expr = 0;
cf.ast.tuple_like = false;
}pub const ContainerField = struct {
comptime_token: ?TokenIndex,
ast: Components,
pub const Components = struct {
main_token: TokenIndex,
type_expr: Node.Index,
align_expr: Node.Index,
value_expr: Node.Index,
tuple_like: bool,
};
pub fn firstToken(cf: ContainerField) TokenIndex {
return cf.comptime_token orelse cf.ast.main_token;
}
pub fn convertToNonTupleLike(cf: *ContainerField, nodes: NodeList.Slice) void {
if (!cf.ast.tuple_like) return;
if (nodes.items(.tag)[cf.ast.type_expr] != .identifier) return;
cf.ast.type_expr = 0;
cf.ast.tuple_like = false;
}
}