v0.5.0
Features
- lang: a struct's fields are already public, so
pubon one is refused - check: a declared
staticis type-only, anddynis the dispatch - tooling:
pubon a method reaches fmt, the editors, and the docs - lang: a method is private by default, in every type kind
- doc: an extension's
@-directives are documented - doc: a
.noetype's methods and impls reach its documentation - doc: the API reference documents a unit's traits, enums and types
- abi: a native trait, enum and fielded type can carry its own prose
- tooling:
staticreaches the editors, and one word names "takes no receiver" - lang: a trait may declare a method
static, and receiver-ness stops being a survey - ide: a derived receiver is a fact the source never spells, so show it
- p2p: a host can name an exact data dir for the para.p2p node
- check: a bounded type parameter may sit in receiver position
Fixes
- diagnostics: append-only is the rule, so there is no break to version
- bundle: a diagnostic code inserted mid-catalogue is a wire break
- diagnostics: a new code is appended, so no
.noebis mis-decodable - ext-abi: every intra-doc link resolves, and a gate step keeps it that way
- mcp: a native trait is a trait, constrained or not
- ide: the ghost modifier follows
pub, which is outermost - derive: a synthesized method is a trait implementation, so it is public
- abi: a native trait's namespace is held to its unit's root
- ide: a ghost modifier anchors on
fn, not on the attribute above it - check:
Selfis the receiver's type, through a bound and throughdyn
Documentation
- abi: the authoring walkthrough teaches the published dependency
- vm:
Unsupportedis a coverage regression, not a subset boundary - vm: a compile failure is a coverage regression, not an unsupported fixture
- two
M1.0claims that stopped being true - abi: the receiver constraint row names its third case
Housekeeping
- fixtures: a fixture that lies about its return type proves nothing
- vm: an unannotated parameter was pinning a destructor check no real program needs
- eval: a fixture without a signature is not a program the checker would accept
- visibility: the VM and eval fixtures say
pubwhere the rule now asks - visibility: the embedded programs say
pubwhere the rule now asks - visibility: a refusal fixture shows the refusal it is about
- expand: a generated method is called from outside, so it says
pub - parser: the demo snapshot follows the demo
- embed: a native trait's implementor says
publike any other - fuzz: the census follows the rename, it does not gain a rejection
- ide: rustfmt the modifier-order test
- check: the crate's own inline sources say
pubwhere the rule now asks - visibility: the rule is pinned at every spelling it could leak through
- ide: pin the ghost modifier against
asyncand a@tierdirective - ir: rustfmt the A2 lowering rewrite
Other
- crates-io: publish the contract crates, and patch them like a git pin
- one table for every
@name, and a binding is what enables it
Full changelog: v0.4.5...v0.5.0