docs← Back to article

Markdown for LLMs

LDC-E1105 — Unresolved qualified reference

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

Download this articlePlain text ↗
# LDC-E1105 — Unresolved qualified reference

## What it means

A qualified name such as `other::Hidden` reaches across a package
boundary, and the compiler only follows it when the named package is
visible: either the own package or a declared import. A prefix that is
neither means the reference points at a world the check cannot see, so
the compiler stops at the reference instead of guessing.

The repair is to declare what the reference needs: import the package,
or spell a local type that is actually in scope. A reference the
compiler cannot place never lowers silently.

## Example

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

entity Applicant;
relation covered(person: demo.other::Hidden) kind institutional;
```

## Fix

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

entity Applicant;
relation covered(person: Applicant) kind institutional;
```

## Engine message

The engine reports this in its own wording:

```text
example.law:6:26: error LDC-E1105: qualified reference to type demo.other::Hidden does not resolve: lowering runs without a resolve context (§23; dependency pinning §11 — `lawc lower <file> --imports <context.json>`)
```

## Related

- [Vocabulary](/constructs/vocabulary/) — how names are declared and which positions take them.
- [Facts and evidence](/constructs/facts-and-evidence/) — what a package may address from outside.