Skip to content

1.1.3

Choose a tag to compare

@sorunokoe sorunokoe released this 01 Aug 11:43
· 25 commits to main since this release

What's new

  • New diagnostic: default-valued let properties are now detected and reported as a compile-time error.
    A stored let property with an in-place default value (e.g. let id: UUID = .init()) can never be assigned by any additional initializer -- not even by self.id = ... or a whole-self reassignment like self = other. This is a genuine Swift compiler limitation (reproduces with plain hand-written structs, no macros involved), and it always broke @Mapper's generated builder init, which does self = creation(...).
    @Mapper now detects this shape deterministically and raises a clear compile-time error at the offending property, explaining the root cause and the fix (drop the default, set it explicitly in the canonical initializer's body instead).

Docs

  • Added a new "Known limitations" subsection documenting this compiler behavior, alongside the existing Equatable/Hashable/Comparable conflict subsection.
  • Added a "Requirements (v1)" bullet calling out the restriction.

Tests

  • 16/16 tests passing (9 macro-expansion + 7 integration), including a new testDiagnosesDefaultValuedStoredProperty regression test.