docs← Back to article

Markdown for LLMs

LDC-E1332 — Malformed policy axis in a case

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

Download this articlePlain text ↗
# LDC-E1332 — Malformed policy axis in a case

## What it means

A case context names the policies the computation runs under — the
deadline policy, the evidence policy — by reference, not by value.
The policies themselves are declared at the package level; the case
only points at them, with a local name or a stable identifier. An
inline block or any other shape in that position is not a reference,
so the compiler stops at the axis: there is nothing to resolve it to.

The repair is to declare the policy once at the package level and
pass its name in the case context. A case borrows its policies; it
never defines them.

## Example

```run
{"argv": ["lower-case", "$ROOT/case.law"], "files": {"case.law": "language \"law.core\" version \"0.2\";\npackage demo.diagnostics version \"0.1.0\";\nnamespace \"urn:law:demo:diagnostics\";\n\nentity A;\n\ncase Solo {\n    context {\n        legal_time @2026-08-26;\n        evidence_policy {\n            threshold 1;\n        }\n    }\n}\n"}, "expect": "LDC-E1332"}
```

## Fix

```run
{"argv": ["lower-case", "$ROOT/case.law"], "files": {"case.law": "language \"law.core\" version \"0.2\";\npackage demo.diagnostics version \"0.1.0\";\nnamespace \"urn:law:demo:diagnostics\";\n\nentity A;\n\ncase Solo {\n    context {\n        legal_time @2026-08-26;\n    }\n}\n"}, "expect": null}
```

## Engine message

The engine reports this in its own wording:

```text
$ROOT/case.law:10:9: error LDC-E1332: evidence_policy axis §78.2.8: local name of a declared `evidence policy` or its StableId as a string
```

## Related

- [LDC-E1333](/diagnostics/LDC-E1333/) — the retired inline deadline-policy block.
- [LDC-E1315](/diagnostics/LDC-E1315/) — lowering a file that declares no case.