Skip to content

v0.3.0

Choose a tag to compare

@github-actions github-actions released this 04 Sep 06:43
· 13 commits to master since this release
4996a1a

A minor rather than a patch: the misuse rules now fire inside
expectSequence(), where they were silently absent, so a consumer's own code
can draw a diagnostic it did not draw before.

  • Allow rasuvaeff/understudy ^0.6. Widened rather than raised: the
    extension works against 0.4, 0.5 and 0.6, and consumers on the older ones
    should not be cut off from it.

  • wire()'s shape disagreed with the core on a parameter naming more than
    one contract.
    An intersection — BookRepository&Auditor — is ONE double
    standing for both, which is what Wire::resolve() builds; the extension
    dropped the parameter, so its key was reported as a missing offset on code
    that wires and runs. A union of two object types makes the core refuse the
    class outright (CannotWire), and reporting a missing key there named the
    wrong mistake: no shape describes a call that never returns, so none is
    produced. Fixes #16.

  • The mutation gate rises from 95 to 97. Re-measured on PHP 8.4, the version
    the coverage job pins: 188 of 191 mutants killed, 98.43%, with the same
    three equivalent survivors the config already names. The gate is one mutant
    below the measurement rather than a round number three points under it.

  • expectSequence() is recognised as a specification verb. It was known to
    neither spelling's list, so SpecificationRangeCollector never recorded the
    call and understudy.matcherLeak was reported for every matcher inside an
    armed protocol — a false report on code the engine accepts. The closure and
    matcher-kind rules were silently absent on the same closures. Fixes #13.

  • VerbNamesTest now walks the core's own public surface and fails when a
    closure-taking verb is missing from either list. expectSequence() was the
    second verb to fall outside every rule after lastCall(); a list nobody
    checks is what let both happen.

  • Both READMEs say what was only implied: the understudy.* identifiers are
    stable, because they are what a consumer writes into ignoreErrors, while
    the wording of a message is not.