Skip to content

1.10.0

Latest

Choose a tag to compare

@caffeine-ci-bot caffeine-ci-bot released this 19 Jun 13:13
· 1 commit to master since this release
69de48c
  • motoko (moc)

    • feat: M0218 ("redundant stable keyword") now ships a machine-applicable edit, so mops check --fix removes the explicit stable keyword on fields of a persistent actor (#6175).

    • feat: Permitting destructuring patterns against actor types — let { foo } = a, func g({foo} : actor T) {}, etc. (#6149).

    • feat: /// @deprecated M0235 <message> — the caffeine deprecation warning (M0235) can now carry a free-text message, rendered as a note: sub-diagnostic at every use site. M0154 free-text deprecation messages now render the same way (#6153).

    • perf: Multi-value Wasm codegen is now on by default, --no-experimental-multi-value flag disables (if not desired) (#6165).

    • bugfix: M0237 (implicit argument can be omitted) only fires now when the suggested removal preserves the same type instantiation. Previously the edit could be rejected (M0098) (#6166).

    • bugfix: M0236 dot-notation suggestion no longer fires for literal receivers — the lit.f() rewrite could misparse (-1.1.isNaN()-(1.1.isNaN())), mis-lex (0xff.abs as a hex float), or fail to type-check when it lost a literal coercion (Blob.isEmpty("\00")"\00".isEmpty()) (#6173).

    • bugfix: M0236 dot-notation suggestion no longer fires when the receiver cannot be inferred or would infer to a different type causing the call to resolve to a different function (#6177).

    • bugfix: Implicit argument derivation now resolves type variables that occur only in a covariant result position (e.g. JSON-style decoders Text -> ?T). Previously such a variable was solved to None (bottom), so the implicit had to be passed explicitly (#6186).

    • bugfix: Diagnostic columns now count Unicode codepoints (matching editor displays and rustc), and JSON diagnostics gain byte_start/byte_end for encoding-independent edit anchors. Previously mops check --fix over-deleted on multi-byte lines (e.g. Char.toNat32('京') trimmed the trailing )) (#6168).