Dynamic rules with overlapping left-hand sides are not supported. The compiler should detect such rules and issue an error message.

Submitted on 22 July 2005 at 15:29

On 24 July 2005 at 23:09 Jira commented:

STR-353, visser:
To avoid surprises by overlapping dynamic rules, these are now forbidden
by means of a check during lifting. Each pair of keys of left-hand sides
of rules with the same name are compared. The keys are renamed to check
overlap modulo variable names. An error message in case of overlap, states
the problem in terms of the name of the dynamic rule, the names of the
definitions in which the problems arises, and the left-hand sides concerned
(in their original form).

An exception is made for left-hand sides of the form DR_UNDEFINE(x). These
are produced for every rule by the compiler to deal with dependent rules.
It is thus allowed to have dynamic rules with a non-context variable as
left-hand side (although this is not encouraged).

Log in to post comments