sprig and prose docs classic docs
Reference› Errors› SP026 TargetNotInPairError

SP026 TargetNotInPairError

ActiveError — Errors, when they are introduced, are always considered active.

A relates block describes a pairing, so every connection written inside it has to be about the two things being paired. This is what it reports when a target names something else.

The endpoint that is not the target is the subject. That is how a relates block says which way a connection runs without ever naming a subject outright. A target that is neither endpoint leaves nothing to be the subject, so the sentence has no author and the manifest has no way to record one.

A fact about only one of the two belongs in that thing's own relationships block, where the subject is the thing containing it. A fact about the pairing itself, such as when the connection became true, has no home in the language yet.

Raised by

  • Relates — A relates block is a pairing worth describing on its own.

Decided in

  • ADR024 RelatesTargetsInPair (isIntroducedBy) — Accepted

In the compiler

  • packages/prose-parser/src/errors.js:301