docs← Back to article

Markdown for LLMs

LDC-E1352 — Label with no bearer

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

Download this articlePlain text ↗
# LDC-E1352 — Label with no bearer

## What it means

A label lives on a lowered node: entities, rules, and most
declarations carry their labels into the output. Some positions never
become nodes — a procedure instance parameter, a query parameter, a
case constant — and a label written there would be accepted and lost.
The compiler stops at the label instead.

The repair is to move the label onto a declaration that lowers, or to
drop it. Labels that ride a node survive exactly as written.

## Example

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

entity Tenant;
procedure Review(t: Tenant { label en official "Subject"; }) {
    state Open initial;
    state Closed terminal;
}
```

## Fix

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

entity Tenant;
procedure Review(t: Tenant) {
    state Open initial;
    state Closed terminal;
}
```

## Engine message

The engine reports this in its own wording:

```text
example.law:6:18: error LDC-E1352: procedure parameter `t` label has no bearer: an instance is not lowered into ParameterDecl (§218, errata E-0153); bearing is a separate decision
```

## Related

- [Procedures](/constructs/procedure/) — instances and the parameters they bind.
- [Sources](/constructs/sources/) — labels and the anchors that carry them.