Zig 0.17.0-dev (Split by item) This is an example of documentation generated by
ZigDoc , an alternative to Zig's built-in
Auto Doc feature. See also
examples in other modes/formats . The project being documented here (as the example) is the Zig standard library.
std › zig › AstGen › boolBinOp Private Function boolBinOp Doc Source Private Function std.zig.AstGen.boolBinOp
fn boolBinOp (
gz : *GenZir ,
scope : *Scope ,
ri : ResultInfo ,
node : Ast .Node .Index ,
zir_tag : Zir .Inst .Tag ,
) InnerError !Zir .Inst .Ref Params Errors File zig/AstGen.zig: 6101
6101
6102
6103
6104
6105
6106
6107
6108
6109
6110
6111
6112
6113
6114
6115
6116
6117
6118
6119
6120
6121
6122
6123
6124
6125 fn boolBinOp (
gz : *GenZir ,
scope : *Scope ,
ri : ResultInfo ,
node : Ast .Node .Index ,
zir_tag : Zir .Inst .Tag ,
) InnerError !Zir .Inst .Ref {
const astgen = gz .astgen ;
const tree = astgen .tree ;
const lhs_node , const rhs_node = tree .nodeData (node ).node_and_node ;
const lhs = try expr (gz , scope , coerced_bool_ri , lhs_node );
const bool_br = (try gz .addPlNodePayloadIndex (zir_tag , node , undefined )).toIndex ().?;
var rhs_scope = gz .makeSubBlock (scope );
defer rhs_scope .unstack ();
const rhs = try fullBodyExpr (&rhs_scope , &rhs_scope .base , coerced_bool_ri , rhs_node , .allow_branch_hint );
if (!gz .refIsNoReturn (rhs )) {
_ = try rhs_scope .addBreakWithSrcNode (.break_inline , bool_br , rhs , rhs_node );
}
try rhs_scope .setBoolBrBody (bool_br , lhs );
const block_ref = bool_br .toRef ();
return rvalue (gz , ri , block_ref , node );
}