Methods called in specifications must (a) have no side effects and (b) be called in a well-defined manner.
The second point means that the calcite should fulfill the method's preconditions.
But also the method should not throw any exceptions.
So I propose
(a) when a method is called in a specification any exceptional_behavior spec cases are ignored
(b) a method declared pure has as default signals false and signals_only \nothing
(c) any behavior spec case of a pure method may not have any signals or signals_only clauses other than the defaults
(the method could still have exceptional_behavior cases for use outside of specifications)
Methods called in specifications must (a) have no side effects and (b) be called in a well-defined manner.
The second point means that the calcite should fulfill the method's preconditions.
But also the method should not throw any exceptions.
So I propose
(a) when a method is called in a specification any exceptional_behavior spec cases are ignored
(b) a method declared pure has as default
signals falseandsignals_only \nothing(c) any
behaviorspec case of a pure method may not have any signals or signals_only clauses other than the defaults(the method could still have exceptional_behavior cases for use outside of specifications)