Skip to content

v0.10.1

@Dillonsmart Dillonsmart tagged this 10 Sep 07:22
v0.10.0 taught `triple()` to read the Result off the return type
`Domain::handle()` declares, because Results are shared by shape and there
is no longer one named after each operation to predict. It only handled a
single named type, so a Domain declaring a union fell straight back to the
naming convention and was reported as `(not found)`.

A union is not an edge case. It is the framework's own documented way of
saying a section can end more than one way — a Result type per outcome,
with the Responder picking both the view and the status code off the type,
rather than reading a `found` flag out of an array. So the one shape of
Domain most worth being able to explain was the one shape that could not
be.

The website found it within minutes of being migrated, which is what that
site is for: its dev log returns `Post|PostNotFound` and `tether explain
/devlog/hello` reported `Domains\DevLog\Results\Show (not found)`.

- every role in a triple now carries a list of classes, so `class` is
  pipe-separated for a union and `exists` is true only if every member of
  it exists
- `file` is null for a union, because it names several and pointing at one
  of them would be picking a favourite; explain prints no path under it
  rather than an empty line
- the fallback line said "no Domain was found to read a return type from",
  which was untrue in exactly this case — the Domain was found and its
  return type was simply not a single named type. It now says nothing
  about why
Assets 2
Loading