Skip to content
docs
Arxo ↗

LDC-Q2006 — The expression reads a field of a value that has none

For LLMs5 sections

Dotted reads walk into structured rows: each step must land on something with named fields. When a step lands on a plain value — a name, a number, a date — there is nothing further to walk into, and the engine stops at that step. The row is fine; the path through it goes one step too far.

Shorten the path to the structured value, or compare that value directly instead of reading into it.

Both queries below run against this package:

Arxo Law
language "law.core" version "0.2";
package demo.diagnostics version "0.1.0";
namespace "urn:law:demo:diagnostics";
entity Applicant;
relation resident(a: Applicant) kind institutional;
relation permit_eligible(a: Applicant) kind institutional;
rule PermitEligibility strict {
for a: Applicant;
when resident(a);
then permit_eligible(a);
}

The identifier of a rule is a plain name, so reading further into it fails:

LawQL
from r in rules where r.id.foo == 1 select r
LawQL
from r in rules select r

The engine reports this in its own wording:

Output
LDC-Q2006: r has no field 'foo'.

Documentation for Arxo. Writings — blog.arxo.io.

Anonymous visit counts on stats.arxo.io, no cookies.