State annotations need more restrictions
The idea of the annotation is that it represents a state. Hence, the values of the arguments should be literals. Thus, we should add the following constraints:
- The argument values must be statically evaluable.
- The argument values must not produce evaluation errors when they are evaluated.
- The argument values must be identical to their evaluation result.
- The argument values or parts of values (in case of containers) may only be of the types:
bool
,int
,real
,string
,tuple
,list
,set
,dict
.
With these restrictions in place, tools that process annotations can depend on them.
Edited by Dennis Hendriks