docs← Back to article

Markdown for LLMs

LDC-E1321 — Declaration the compiler does not lower

The source Markdown for this article. Copy it into your assistant or download it as a text file.

Download this articlePlain text ↗
# LDC-E1321 — Declaration the compiler does not lower

## What it means

An unknown or unsupported declaration has no node the compiler can lower.
Losing it silently would check a program different from the one
written, so the compiler stops at the declaration instead.

The same error covers a declaration whose executable node is skipped because
its condition or head is outside the lowering slice, including an exception
or conditional priority. Both `check` and `lower` refuse it (§210.1).

Unsupported semantic fields in norm payloads, goals, and assertions also
produce this error. Examples include duty policies outside the implemented
slice, `termination` on a goal, `goal` or `activation` on an L3 payload, and
`judgment` or `confidence` on a surface assertion. The message identifies
the lost field. Assertion fields are checked on case and `given` lowering
as well; the CLI refuses before emitting a partial document.

The repair is to remove the declaration, or to express the same
content with constructs from the lowered slice. What stays in the file
all lowers.

## Example

```law
language "law.core" version "0.2";
package demo.diagnostics version "0.1.0";
namespace "urn:law:demo:diagnostics";

entity Tenant;
power Grant {
}
```

## Fix

```law
language "law.core" version "0.2";
package demo.diagnostics version "0.1.0";
namespace "urn:law:demo:diagnostics";

entity Tenant;
```

## Engine message

The engine reports this in its own wording:

```text
example.law:6:1: error LDC-E1321: unsupported declaration `power`: it has no CLIR node, and the package program differs from the written one (§210). Remove the declaration or express it with L0-slice constructs
```

## Related

- [Vocabulary](/constructs/vocabulary/) — how names are declared and which positions take them.
- [Powers](/constructs/power/) — the concept this spelling reaches for.