scrml.dev v0.7.1
Reference › Errors

E-AUTH-GRAPH-003

<auth role="X"> names a variant that is not in the role enum.

Error Compile-time SPEC §40.1.1 (normative)

What it means

The role enum resolved successfully, but a gate references a variant it does not declare — typically a typo or a role that was renamed in the enum and not at the gate. The diagnostic lists the enum's actual variants. Because the gate cannot be classified, it falls back to the worst-case union per §40.9.2, which means it would ship eagerly to everyone.

Minimal reproducer

This is the exact source compiled against the linked compiler and verified to produce E-AUTH-GRAPH-003.

<program title="p" auth="required">
    type Role:enum = { Admin, Member }
    <auth role="Ghost">
        <p>ghost only</p>
    </>
</>

How to fix

  1. Correct the variant name at the gate. Match one of the declared variants exactly — the check is case-sensitive.
  2. Add the variant to the role enum. Correct when the role is real and the enum is the thing that is out of date.

Related

Specification

Normative text: §40.1.1, §40.9.11, §34. Spec lives at compiler/SPEC.md .

← Reference