/// <inheritdoc /> public override void VisitAnyArrayValue(AnyArrayValue value) { switch (operation) { case Operations.Equal: case Operations.NotEqual: case Operations.LessThan: case Operations.GreaterThanOrEqual: case Operations.Or: case Operations.Xor: result = OutSet.AnyBooleanValue; break; case Operations.BitAnd: case Operations.ShiftLeft: case Operations.ShiftRight: result = OutSet.CreateInt(0); break; case Operations.BitOr: case Operations.BitXor: result = TypeConversion.AnyArrayToIntegerInterval(OutSet); break; case Operations.Mod: result = ModuloOperation.AbstractModulo(flow); break; default: if (ArithmeticOperation.IsArithmetic(operation)) { // TODO: This must be fatal error SetWarning("Unsupported operand type: Arithmetic of array and null type"); result = OutSet.AnyValue; break; } base.VisitAnyArrayValue(value); break; } }