Source
pub fn containerField(tree: Ast, node: Node.Index) full.ContainerField {
assert(tree.nodeTag(node) == .container_field);
const type_expr, const extra_index = tree.nodeData(node).node_and_extra;
const extra = tree.extraData(extra_index, Node.ContainerField);
const main_token = tree.nodeMainToken(node);
return tree.fullContainerFieldComponents(.{
.main_token = main_token,
.type_expr = type_expr.toOptional(),
.align_expr = extra.align_expr.toOptional(),
.value_expr = extra.value_expr.toOptional(),
.tuple_like = tree.tokenTag(main_token) != .identifier or
tree.tokenTag(main_token + 1) != .colon,
});
}