Record the place.rs visibility round and point the handoff at 1ebd4d3

This commit is contained in:
iris-ai committed 2026-09-19 23:52:13 -04:00
1 parent 52a5c2f40c
commit 362191c3f3
2 files changed
+16 -11

No files matched your search

+4 -4
View File
@@ -6,7 +6,7 @@ found is in `docs/LAYOUT_LOG.md`.
## The Iris layout repair is submitted ## The Iris layout repair is submitted
**Iris PR #19** (`layout/one-ask`) replaces closed #18. The tip is `7e2b4cd`, **Iris PR #19** (`layout/one-ask`) replaces closed #18. The tip is `1ebd4d3`,
and past the reviewed `cadfba0` it is five rounds, each described in and past the reviewed `cadfba0` it is five rounds, each described in
`docs/LAYOUT_LOG.md`: `docs/LAYOUT_LOG.md`:
@@ -16,9 +16,9 @@ and past the reviewed `cadfba0` it is five rounds, each described in
- **The vocabulary and the container API**, `5642f20` through `58ce74d`. - **The vocabulary and the container API**, `5642f20` through `58ce74d`.
- **Naming**, `55df32a` through `40b89c1`. - **Naming**, `55df32a` through `40b89c1`.
- **A sweep over the logic those names exposed**, `8d2b7a5` and `6c84b6f`. - **A sweep over the logic those names exposed**, `8d2b7a5` and `6c84b6f`.
- **A clarity sweep**, `3da1c71` and `7e2b4cd` -- naming the pairs layout - **A clarity sweep**, `3da1c71` through `1ebd4d3` -- naming the pairs layout
returns, `Span::slot`, and a diagnostic that printed the rel base while returns, `Span::slot`, a diagnostic that printed the rel base while calling
calling it the box. it the box, and `in_parent` matching a place's own cases.
The settled design of the last three is in `docs/LAYOUT.md` under "Three The settled design of the last three is in `docs/LAYOUT.md` under "Three
names, and the one argument that says them". Bryan settled the API over names, and the one argument that says them". Bryan settled the API over
+12 -7
View File
@@ -213,19 +213,24 @@ moved a box, and all three seed scans passed on `7e2b4cd` (400 at depth 5 in
`move_idx != parent_move`; `Axis::BOTH` replaces `AXES` in three modules; `move_idx != parent_move`; `Axis::BOTH` replaces `AXES` in three modules;
`Len::rel_min`, `rel_max` and the unused `select_len` are gone. `Len::rel_min`, `rel_max` and the unused `select_len` are gone.
`1ebd4d3` then closed the `PlaceSpan` item. `PlaceSpan` and `RelBase` are
`pub` and `ui/mod.rs` re-exports `place` by name rather than by glob, the way
it already did for `painter`, so the six `pub(crate)` accessors
(`stated_rel_base`, `narrows_rel_base`, `within_span`, `is_sized`,
`does_fill`, `with_rel_base`) are gone and `in_parent` matches
`(at.span, declared)`. `!at.is_sized()` was dead: `PlaceSpan::Sized` is built
only by `Len::as_desc`, which sets `RelBase::Len(self)` in the same literal,
and deleting `with_rel_base` removes the only writer that could have
separated them. Visibility here is plain `pub` plus a named re-export
wherever the path can be hidden (Bryan, 2026-09-19); `pub(super)` is for
inherent methods on types the crate exports, where it cannot.
What is left, none of it urgent: What is left, none of it urgent:
- `widget_at` does three linear scans per child (`children.contains`, - `widget_at` does three linear scans per child (`children.contains`,
`under.iter_mut().find`, `depend_on`), so a span of *n* children is `under.iter_mut().find`, `depend_on`), so a span of *n* children is
O(n^2) per draw. Not a problem at today's sizes; it is worth knowing O(n^2) per draw. Not a problem at today's sizes; it is worth knowing
before a long transcript list lands on it. before a long transcript list lands on it.
- `PlaceSpan` is private to `place.rs`, so `Painter::in_parent` asks five
yes/no questions (`stated_rel_base`, `is_sized`, `within_span`,
`narrows_rel_base`, `does_fill`) about a three-case enum instead of
matching it. Two of those questions are redundant with one another --
`Sized` always states a rel base -- but only because nothing constructs
a `Sized` without one, which nothing states. `pub(crate)` on the enum
would let `in_parent` read as its three cases.
- `DrawInfo` and `ActiveData` both carry `placed` and `asked`, two - `DrawInfo` and `ActiveData` both carry `placed` and `asked`, two
`PlaceDesc` fields distinguished only by position in every literal. `PlaceDesc` fields distinguished only by position in every literal.
They are genuinely different and documented, but the names are past They are genuinely different and documented, but the names are past