| 65 | /// The rendered list: the candidate values deduplicated by first occurrence |
| 66 | /// over `provenance`'s canonical order. |
| 67 | values: Vec<String>, |
| 68 | /// Every actual predecessor contributed a usable candidate, so the rendered |
| 69 | /// list is an exhaustive claim rather than evidence. Rendered arity does not |
| 70 | /// decide this: dedup can collapse three covered predecessors to one value. |
| 71 | complete: bool, |
| 72 | /// One attribution per emitted candidate, in ascending predecessor id, with |
| 73 | /// duplicates retained - two predecessors carrying the same value are one |
| 74 | /// rendered value and two attributions. This is audit data; output only reads |
| 75 | /// `values`. |
| 76 | provenance: Vec<control_flow::JoinCandidateProvenance>, |
nothing calls this directly
no outgoing calls
no test coverage detected