docs← Back to article

Markdown for LLMs

LDC-E1320 — Case import without a version

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

Download this articlePlain text ↗
# LDC-E1320 — Case import without a version

## What it means

A case is computation input, and its world must be reproducible down
to the exact dependency releases it ran against. An import without a
version leaves that world undefined: any release could satisfy it, and
two runs could compute in two different worlds. The compiler stops at
the versionless import rather than guessing a release.

The repair is to pin the exact version on the import. Program sources
may leave the version to the lockfile; a case may not, because the
case itself is the input whose recorded world must be exact.

## 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\nimport dep.shapes;\n\nentity A;\n\ncase Solo {\n    context {\n        legal_time @2026-08-26;\n    }\n}\n"}, "expect": "LDC-E1320"}
```

## 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\nimport dep.shapes version \"0.1.0\";\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:5:1: error LDC-E1320: the case imports dep.shapes without a version (§169: unpinned package) — give the exact version: computation input must be reproducible
```

## Related

- [LDC-E1315](/diagnostics/LDC-E1315/) — lowering a file that declares no case.
- [LDC-E1110](/diagnostics/LDC-E1110/) — naming a version the dependency does not carry.