docs← Back to article

Markdown for LLMs

LDC-E1206 — Context profile extension cycle

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

Download this articlePlain text ↗
# LDC-E1206 — Context profile extension cycle

## What it means

Named context profiles form a single-parent chain: each profile may
extend at most one parent, and following those links must always reach
an end. When two profiles extend each other — directly or through a
longer loop — no evaluation order exists, so the compiler stops at the
link that closes the loop.

The repair is to break the loop: drop one of the two extensions, or
remove the profiles if the settings belong with the case instead. The
passing file below drops the profiles and keeps the package.

## Example

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

context profile A extends B {
    mode active;
}
context profile B extends A {
    mode active;
}
```

## Fix

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

entity Applicant;
```

## Engine message

The engine reports this in its own wording:

```text
example.law:5:17: error LDC-E1206: context profile extends cycle detected at "A"
```

## Related

- [LDC-E1205](/diagnostics/LDC-E1205/) — extending a profile that is not declared at all.
- [LDC-E1207](/diagnostics/LDC-E1207/) — setting the same profile field twice.