apalache
apalache copied to clipboard
Warn and immediately throw on naming collisions
It may sometimes happen, in a multi-module scenario where module A
extends or instantiates module B
, that an operator in A
has the same name as a bound variable or parameter in B
. This causes a slew of shadowing issues (#2452, #2132, #2135).
We should be able to detect this scenario and immediately abort with a warning message, instead of generating hard-to-trace exceptions in one of the passes.