SIGN IN SIGN UP

ast: relax rule conflict check to allow multiple assignments

This is a follow-on to aeda97e8ee68ea6f41615a11cef59df7eea2e675 so
that users can declare multiple rules with the same name using ":=".

The original purpose of the check was to reduce the chance that
someone would write a rule that generates conflicts. The problem w/
this check is that doesn't remove conflicts completely--it only
removes a class of conflict errors that are trivial to diagnose. For
example:

	package foo

	p := 7
	p := 8

If the user asks for `p`, previously they'd receive a type error; now
they're receive an eval error. This example is a bit contrived
though. In reality, conflicts are a more likely to occur due to
iteration and assignment to a single variable... for example:

	package foo

	p := x { some x in input }

Of course, this rule will pass the check because the check cannot
determine whether there _will_ be multiple assignments to `p`.

Since the check fails to prevent a class of errors that is difficult
to debug AND it would be beneficial to use := and == everywhere
instead of =, we're opting to disable it going forward.

Signed-off-by: Torin Sandall <torinsandall@gmail.com>
T
Torin Sandall committed
e87d89e20023c9e1db3ae4b7de683b7683fb3aff
Parent: 3c03cc8