ValueKind

Overview

ValueKind is used in the Value and it's subclasses as a fast way to see what kind of value an instance is, without having to use "is" checks on all types.

Location

Value Description
AnonymousMethod An anonymous method (or lambda).
AnonymousParameter Anonymous parameter value (a reference to an anonymous parameter defined on an anonymous method).
Array The value is an inline array expression. Like ['124', 1, nil].
ArrayCtorCall The value is a call to an array constructor, like new byte[16].
BeginLocalVar The value is a reference to a local defined in a BeginStatement.
Between The value is a between value, like 1 < a < 3.
BinValueOp The value is a binary expression, like 1 + 1.
Case The value is a case expression.
Coalesce The value is a coalesce expression.
ConstructorOf The value is a ConstructorOf reference to a constructor.
Data The value is a data value.
Default The value is a Default(type) expression.
DuckType duck type value (duck<X>)
Empty Represents an "empty" value. Used for properties with read/write accessors that have a default implementation.
ExceptLocalVar The value points to a local defined in an Except block.
FieldOf The value is a System.Reflection.FieldInfo to a field.
FieldVar The value is a reference to an instance field.
ForInLocalVar The value is a reference to a local defined as part of a for (each) in expression.
ForLocalVar The value is a reference to a local defined as part of a for expression.
Identifier Identifier valeu
IIf The value is an IIF expression: iif(a = 15, b, a).
Length The value is a Length expression: Length(x).
LocalVar The value is a reference to a local defined in the var section of the method.
LockingLocalVar The value is a reference to a local defined in a locked statement.
MethodOf The value is a reference to a MethodInfo.
NamedLocalValue The value is a named local.
New The value is a call to a constructor.
Nil The value is nil.
NotNil The value uses the not null operator on the left side. Pass this as a "Self" for instance fields and method calls.
ParamVar The value is a reference to a parameter.
PlaceholderValue Placeholder value
Proc The value is a method call.
ProcPtr The value is a reference to a method.
Range The value is a range value like a .. b.
Result The value points to the result of the current method.
Self The value points to the "self" of the current method.
SizeOf The value contains the size of a type.
Statement The value contains both a statement and a value to push. The statement cannot be something that creates a protected block (locking, using, try). The statement is executed before the value is pushed.
StaticVar The value points to a static variable.
SubArray The value accesses an element of an array expression: a[b].
Type The value is a type, used for calls on static methods.
TypeOf The value is a TypeOf value.
Undefined A value not supported by Cirrus.
UnValueOp The value is an unary operator like casting, not, negating.
UsingLocalVar The value points to a local defined in a using block.
WithLocalVar The value points to a local defined in a with block.