CIF may produce false warning for globally disabled event that is monitored
While working on #298 (closed) I noticed the following. Consider the following specification:
group def D():
event a;
end
automaton def A(D x):
alphabet x.a;
monitor x.a;
location l1:
initial;
end
X: D();
Y: D();
B: A(X);
It has the following warning:
The alphabet of automaton "A" globally disables event "D.a", as the event is not used on any of the edges of the automaton.
Which is incorrect. The warning should be:
Automaton "A" monitors event "D.a", but the event is not used on any of the edges of the automaton.
The problem is in AutScope
, line 398. There we check whether eventRef
is contained within monitorSet
. However, eventRef
is unwrapped whereas the events within monitorSet
are wrapped.
Edited by Ferdie Reijnen