Skip to content

v0.5.0

Choose a tag to compare

@github-actions github-actions released this 05 Aug 11:21
· 212 commits to main since this release

Features

  • lang: a struct's fields are already public, so pub on one is refused
  • check: a declared static is type-only, and dyn is the dispatch
  • tooling: pub on 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 .noe type'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: static reaches 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 .noeb is 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: Self is the receiver's type, through a bound and through dyn

Documentation

  • abi: the authoring walkthrough teaches the published dependency
  • vm: Unsupported is a coverage regression, not a subset boundary
  • vm: a compile failure is a coverage regression, not an unsupported fixture
  • two M1.0 claims 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 pub where the rule now asks
  • visibility: the embedded programs say pub where 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 pub like 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 pub where the rule now asks
  • visibility: the rule is pinned at every spelling it could leak through
  • ide: pin the ghost modifier against async and a @tier directive
  • 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