1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
//! **Elision has a floor** (bl-5410): the half of QUALITY §1 G1 that
//! [`super`]'s predicate is structurally blind to.
//!
//! That sweep tells a silent cut from a marked one by comparing the width a run
//! was laid at against the width its clip let through, and a galley egui
//! truncated *on purpose* is correctly not reported — it fits its box and ends
//! in `…`. But truncation has a floor, and under it the elision eats the run:
//! `[ … ]` where a verb was, which is bl-bc06's original defect and says
//! strictly less than the clipped `Sto` it replaced. Both are held here, on the
//! same frames, because the two are one loss to the operator.
//!
//! The repair the two halves ask for is different, which is why both are
//! needed: rule 1's `Truncate` answers the first and *causes* the second on a
//! control, and rule 8's wrap ([`row::peers`](crate::shell::row::peers))
//! answers the second. A tree with only the first sweep passes with the
//! composer's `Stop` truncated to nothing at the minimum window.
use window;
use crate;
use crateseen_of;
/// **No run on the glass is a bare ellipsis** — the other half of G1, and the
/// half this file's own predicate is blind to (bl-5410).
///
/// A silent cut and a marked one are told apart by comparing laid against shown,
/// and a galley egui truncated *on purpose* is correctly not reported: it fits
/// its box and it ends in `…`. But truncation has a floor, and under it the
/// elision eats the whole run — `[ … ]` where a verb was, which is bl-bc06's
/// original defect and says strictly less than the clipped `Sto` it replaced.
/// The two failures are opposite in the sweep above (one over-wide, one exactly
/// as wide as its box) and identical to the operator, so both are held here.
///
/// Two directions, as everywhere: the sweep must have seen a real frame's worth
/// of runs, or an empty window would satisfy this without painting anything.
/// **The composer's verbs survive every window size** (bl-5410). The audit's
/// headline evidence was `Stop`, a *control*, showing 16 of its 25 points at
/// 420x320; the repair is rule 8's wrap, not rule 1's truncation, and this is
/// what tells the two apart — the sweep above would be satisfied by a `Stop`
/// truncated to fit, and the operator would not.
///
/// Asserted by exact glyph equality on a painted run: `Sto…` is not `Stop`, and
/// a needle test with `contains` would accept it. Both verbs, at all four sizes,
/// so the beat cannot pass on the roomy end alone.