Diagnostics · unsupported
unsupported[not-operator]
The text NOT appears outside a string, comment or source tag.
v1 has no negation. The bounds scan refuses the three letters NOT wherever they occur, including inside names such as CANNOT_MERGE or ANNOTATION: use lower-case names for those. Write the opposite comparison instead (see Patterns).
Example
compileSourceCONTRACT Claim {
ENFORCEMENT_MODE: enforced
CONTEXT {
ENTITIES Request {
count: int
region: string
ready: bool
ratio: float
}
CONSTANTS {
zero: int == 0 [SOURCE:POLICY]
cap: int == 25 [SOURCE:POLICY]
}
}
TRIGGER {
grant()
}
GUARANTEE {
ENSURE grant() WHEN Request.ready == true [SOURCE:must_be_ready]
}
PROHIBITION {
FORBID grant WHEN NOT Request.ready == true [SOURCE:not_ready]
}
}rejected unsupported[not-operator] at 22:23 NOT is refused before recursive parsing
Fix
compileSourceCONTRACT Claim {
ENFORCEMENT_MODE: enforced
CONTEXT {
ENTITIES Request {
count: int
region: string
ready: bool
ratio: float
}
CONSTANTS {
zero: int == 0 [SOURCE:POLICY]
cap: int == 25 [SOURCE:POLICY]
}
}
TRIGGER {
grant()
}
GUARANTEE {
ENSURE grant() WHEN Request.ready == true [SOURCE:must_be_ready]
}
PROHIBITION {
FORBID grant WHEN Request.ready == false [SOURCE:not_ready]
}
}accepted
See also: the specification.