Post

Second, the last required upstream PR got merged into rustdoc! It lets us know which default values (like on associated consts, or default method impls in traits) are considered stable and therefore public API. This is the last "partial stability" mechanism we need. github.com/rust-lang/ru...

github.comInclude default-stability info in rustdoc JSON. by obi1kenobi · Pull Request #158468 · rust-lang/rustAdd a default_unstable field on associated constants, associated types, and functions. The field is populated only when those items appear inside a trait, only when there's a default present, a...

It's Wednesday, day 3. Default-stability is in rustdoc JSON in today's nightly Rust. Only *stable* defaults are public API, so we pretend unstable values don't exist. I'm working on a PR for this, and also on type normalization improvements to let us have type-checking lints 👀

It's Thursday, day 4. Today's haul so far is ~2500 LoC. First, making use of default-value stability which we previously exposed in rustdoc JSON. Codex caught a subtle edge case that affects which traits are considered sealed. Copious test cases are standard, of course. github.com/obi1kenobi/t...

github.comSupport default-value stability in rustdoc JSON v60. by obi1kenobi · Pull Request #1087 · obi1kenobi/trustfall-rustdoc-adapterUnstable default values, such as provided function bodies in trait definitions, associated type defaults, and default values for associated constants, are treated as not present when indexing rustd...

1 repost1 like

Day 5, a picture worth a thousand words 👇 I put an API-breaking `#[doc(hidden)]` in my local build of the Rust standard library, and asked cargo-semver-checks to find it. See for yourself!

Still some cleanup to do before this can merge, but I'm exhausted. I'm 30 PRs and 15080 cumulative lines in on my week off from work 😅 I'm calling this a win, and now going to lay down and read a book.