fn renderParamList(
r: *Render,
lparen: Ast.TokenIndex,
params: []const Ast.Node.Index,
space: Space,
) Error!void OutOfMemoryRan out of memory allocating call stack frames to complete rendering.
WriteFailedTransitive failure from
2594
2595
2596
2597
2598
2599
2600
2601
2602
2603
2604
2605
2606
2607
2608
2609
2610
2611
2612
2613
2614
2615
2616
2617
2618
2619
2620
2621
2622
2623
2624
2625
2626
2627
2628
2629
2630
2631
2632
2633
2634
2635
2636
2637
2638
2639
2640
2641
2642
2643
2644
2645fn renderParamList(
r: *Render,
lparen: Ast.TokenIndex,
params: []const Ast.Node.Index,
space: Space,
) Error!void {
const tree = r.tree;
const ais = r.ais;
if (params.len == 0) {
try ais.pushIndent(.normal);
try renderToken(r, lparen, .none); // (
ais.popIndent();
return renderToken(r, lparen + 1, space); // )
}
const last_param = params[params.len - 1];
const after_last_param_tok = tree.lastToken(last_param) + 1;
if (tree.tokenTag(after_last_param_tok) == .comma) {
try ais.pushIndent(.normal);
try renderToken(r, lparen, .newline); // (
for (params, 0..) |param_node, i| {
if (i + 1 < params.len) {
try renderExpression(r, param_node, .none);
const comma = tree.lastToken(param_node) + 1;
try renderToken(r, comma, .newline); // ,
try renderExtraNewline(r, params[i + 1]);
} else {
try ais.pushSpace(.comma);
try renderExpression(r, param_node, .comma);
ais.popSpace();
}
}
ais.popIndent();
return renderToken(r, after_last_param_tok + 1, space); // )
}
try ais.pushIndent(.normal);
try renderToken(r, lparen, .none); // (
for (params, 0..) |param_node, i| {
try renderExpression(r, param_node, .none);
if (i + 1 < params.len) {
const comma = tree.lastToken(param_node) + 1;
try renderToken(r, comma, .maybe_space);
}
}
ais.popIndent();
return renderToken(r, after_last_param_tok, space); // )
}