Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | import type TPlannedCaseLabel from "./TPlannedCaseLabel";
/**
* One `case` of a switch, with every label that falls through to its body.
*/
interface IPlannedSwitchCase {
/** ADR-025's `||` labels, expanded -- the last one carries the body. */
readonly labels: readonly TPlannedCaseLabel[];
/**
* The body's statements, rendered.
*
* A thunk because it renders statements, which register effects, and
* because the generator decides the indentation depth each line sits at.
* The empty ones are dropped by the generator, not by the planner: "a
* statement that renders to nothing contributes no line" is a rendering
* rule.
*/
readonly renderBody: () => readonly string[];
}
export default IPlannedSwitchCase;
|