CIF type checker: add warning for variables which could be changed to constants
It would be nice to warn developers when they could use a constant instead of a variable. It is possible to go quite far in this but checking whether a variable only has one initial value and is only assigned to itself or not assigned at all would already be a nice addition. The change from a variable to a constant might seem small but it can have a huge impact on the synthesis performance, given the right circumstances. For example, the following cif code was part of a larger model: ``` disc bool recovery = false; location: initial; marked; edge call do state := Busy; edge callback do state := done; edge trigger_done do state := not_done; edge reset do state := if recovery = false: not_done else state end; ``` Changing recovery to be a constant instead of a variable changed the synthesis from running out of memory to being done within seconds.
issue

Copyright © Eclipse Foundation AISBL. All rights reserved.     Privacy Policy | Terms of Use | Copyright Agent