Skip to content

v0.3.8

Latest

Choose a tag to compare

@suzumaze suzumaze released this 03 Nov 11:03
97915f8
  • Response body names are found in methods that return early. An if without else whose
    block ends in return $this; (optionally after assigning one literal-key body) no longer makes
    the method unsupported; names describe the path that reaches the end, and earlyExits lists
    each guard with its line and the body there. A $this helper call inside the right-hand side of
    the full $this->body = [...] assignment is also accepted, since it runs before the body is
    written. Contract comparison and its diagnostics now cover these methods.

  • Diagnostics report a full $this->body = ... assignment in a method with #[Embed], which drops
    the embedded keys: embed_body_replaced_on_early_exit inside a block that leaves the method with
    return or throw (usually an intentional error body), embed_body_replaced everywhere else.
    Closures, arrow functions and anonymous classes are not counted. bear/resource/describe shows
    the same as responseBody.embedReplacements.

  • Resource references, incoming relations, and the relations and Resource calls in a Resource
    description carry the 1-based line of their position next to the byte offset or range, so the
    place can be passed on to a person. Other byte positions (attribute ranges, schema titles, ALPS
    descriptors, DI declarations) are unchanged.

  • Provenance for those three requests lists each file once without a byte range, since every item
    already carries its own position. Previously each item's position was repeated in provenance; for
    an incoming relation it appeared as a zero-length range at the attribute's start. On BEAR.Kata,
    app://self/article references with limit 5 shrink from 118 to 98 lines of JSON.