CIF type checker: don't check annotations if the model has errors
Currently, the following specification leads to a stack depth crash, as the state annotation provider is trying to see annotation argument value x has a single value:
automaton a:
alg int x = x;
@state(a: x)
location:
initial;
end
The algebraic variable has a cycle. The cycle detector of the type checker detects this, but still we check the annotations.
For all post-checkers, we ensure that the checks are only done if previous checks are OK, or if they are not affected by the problems reported there. For annotations, anyone can add any annotation. It would therefore be good to only check annotations if there are no other errors reported by the type checker. Then the specification is valid, and annotation providers can safely use all CIF utility classes to query it, without having to worry about things like cycles.