inConstantContext property
bool
get
inConstantContext
Whether this expression is in a constant context.
An expression e is said to occur in a constant context,
- if e is an element of a constant list literal, or a key or value of an entry of a constant map literal.
- if e is an actual argument of a constant object expression or of a metadata annotation.
- if e is the initializing expression of a constant variable declaration.
- if e is a switch case expression.
- if e is an immediate subexpression of an expression e1 which occurs
in a constant context, unless e1 is a
throw
expression or a function literal.
This roughly means that everything which is inside a syntactically
constant expression is in a constant context. A throw
expression is
currently not allowed in a constant expression, but extensions affecting
that status might be considered. A similar situation arises for function
literals.
Note that the default value of an optional formal parameter is not a constant context. This choice reserves some freedom to modify the semantics of default values.
Implementation
bool get inConstantContext;