Constraint Diagnostics

Most errors in an expression name the part they are about and say what to write instead. The messages below need more context, <…​> stands for the part that varies.

In a definition:

Message Meaning

The constraint name '<name>' is not UpperCamelCase.

A name such as PriorityLimit, the form a type name takes.

The constraint name '<name>' is used twice along one inheritance chain.

A type and a base type of it declare a constraint of one name, rename one of them.

The constraint message does not end with a '.'.

A message is a sentence, it ends in a period.

The constraint nests deeper than <limit> levels.

The limit is 32, bind a part to a variable with ( $x := ...; ... ) or split the constraint.

A number does not start with '0', '<number>' would read as octal in C.

Write 10, not 010.

A number with a unit is a string literal, such as '10 ms'.

10 ms is no number, quote it: '10 ms'.

Constraint <name> may be undefined when '<property>' is absent.

See Absent Values.

The parent of '<type>' is not unique, it is used in <types>.

See The Parent %, write the constraint at the use site.

Constraints read each '<list>' element <n> times, above the limit of <limit>

See Cost.

The constraints of this definition take <steps> on every configuration, above the limit of <limit>

See Cost.

In a configuration:

Message Meaning

<n> constraints are not evaluated while this file has errors.

Fix the other errors of the file, its constraints run again then.

Constraint <name> could not be evaluated: <cause> in '<part>'.

A division by zero, an overflow or a float that is not finite, at the constraint’s severity.

Constraint <name> could not render its message.

The assert failed, but a placeholder of the message could not be evaluated.

Accepted error: <message>

An _acceptConstraintViolation accepts the error, which stays visible as a warning.

No constraint '<name>' applies to '<type>'.

The accepted name is no constraint the element runs, mistyped or of another type.

Constraint <name> is accepted twice.

The annotation lists the name twice.

Constraint <name> has no violation to accept here.

The constraint holds for the element, remove the name from the annotation.

Constraint <name> took <n> steps, its estimate for this configuration is <estimate>.

Probably a bug in the cost analysis, the CLI completed the constraint, please report it.

Constraint <name> stopped after <n> steps, its estimate for this configuration is <estimate>.

Probably a bug in the cost analysis, an editor stopped the constraint, its result is incomplete and shows no violation, please report it.

The constraint evaluation failed with '<reason>'. This is a bug, please report it.

An internal error of the evaluation, please report it with the files.