diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index e34f2c21a..97c471e1f 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -2,10 +2,10 @@ name: build on: pull_request: - branches: ['series/*'] + branches: [ 'series/*' ] push: - branches: ['series/*'] - tags: ["v[0-9]+*"] + branches: [ 'series/*' ] + tags: [ "v[0-9]+*" ] jobs: jvm-tests: @@ -17,7 +17,7 @@ jobs: java: [ 11 ] # WARN: build.sbt depends on this key path, as scalaVersion and # crossScalaVersions is determined from it - scala: [ 2.13.8, 3.1.2 ] + scala: [ 2.13.18, 3.3.7 ] env: CI: true @@ -65,8 +65,8 @@ jobs: # WARN: build.sbt depends on this key path, as scalaVersion and # crossScalaVersions is determined from it include: - - { java: 11, scala: 2.13.8 } - - { java: 11, scala: 3.1.2 } + - { java: 11, scala: 2.13.18 } + - { java: 11, scala: 3.3.7 } env: CI: true @@ -118,8 +118,8 @@ jobs: fail-fast: false matrix: include: - - { java: 11, scala: 2.13.8 } - - { java: 11, scala: 3.1.2 } + - { java: 11, scala: 2.13.18 } + - { java: 11, scala: 3.3.7 } steps: - uses: actions/checkout@v4 @@ -162,9 +162,9 @@ jobs: fail-fast: false matrix: include: - - { java: 11, scala: 2.13.8 } + - { java: 11, scala: 2.13.18 } # TODO: enable this after it works! - # - { java: 11, scala: 3.1.2 } + # - { java: 11, scala: 3.3.5 } steps: - uses: actions/checkout@v4 diff --git a/.gitignore b/.gitignore index bb032f1cd..d5899b7e7 100644 --- a/.gitignore +++ b/.gitignore @@ -18,3 +18,4 @@ TAGS metals.sbt .vscode .bsp +.planning/ diff --git a/.jvmopts b/.jvmopts index 3fb8ad21b..e6d2d3e25 100644 --- a/.jvmopts +++ b/.jvmopts @@ -4,5 +4,4 @@ -XX:ReservedCodeCacheSize=250M -XX:+TieredCompilation -XX:-UseGCOverheadLimit --XX:+CMSClassUnloadingEnabled diff --git a/build.sbt b/build.sbt index 4a3e92d39..85631e914 100644 --- a/build.sbt +++ b/build.sbt @@ -3,6 +3,7 @@ import sbt.{ Def, Global, Tags } import scala.collection.immutable.SortedSet import MonixBuildUtils._ +import org.typelevel.scalacoptions.ScalacOptions val benchmarkProjects = List( "benchmarksPrev", @@ -31,9 +32,9 @@ val reactiveStreams_Version = "1.0.4" val macrotaskExecutor_Version = "1.0.0" val minitest_Version = "2.9.6" val implicitBox_Version = "0.3.4" -val kindProjector_Version = "0.13.2" +val kindProjector_Version = "0.13.4" val betterMonadicFor_Version = "0.3.1" -val silencer_Version = "1.7.8" +val silencer_Version = "1.7.19" val scalaCompat_Version = "2.7.0" // The Monix version with which we must keep binary compatibility. @@ -189,8 +190,19 @@ lazy val sharedSettings = pgpSettings ++ Seq( "-Wunused:explicits", "-Ywarn-unused:params", "-Wunused:params", - "-Xlint:infer-any" + "-Xlint:infer-any", + "-Wnonunit-statement" ), + // Disabled from tpolecat for test compilation: + // -Wunused:patvars triggers on for-comprehension loop vars in tests (pre-existing pattern) + // -Xlint:constant triggers on intentional overflow tests (e.g. Long.MaxValue + 1) + Test / scalacOptions --= { + CrossVersion.partialVersion(scalaVersion.value) match { + case Some((2, 13)) => Seq("-Wunused:patvars", "-Xlint:constant") + case Some((2, 12)) => Seq("-Ywarn-unused:patvars") + case _ => Seq.empty + } + }, // Turning off fatal warnings for doc generation Compile / doc / tpolecatExcludeOptions ++= ScalacOptions.defaultConsoleExclude, // Silence everything in auto-generated files @@ -202,7 +214,9 @@ lazy val sharedSettings = pgpSettings ++ Seq( }, scalacOptions --= { if (isDotty.value) - Seq("-Xfatal-warnings") + // tpolecat uses -Werror in Scala 3; disable fatal warnings + // so that pre-existing value-discard and similar patterns don't break Scala 3 builds + Seq("-Werror") else Seq() }, diff --git a/monix-catnap/shared/src/test/scala/monix/execution/TypeClassLawsForCancelableFutureSuite.scala b/monix-catnap/shared/src/test/scala/monix/execution/TypeClassLawsForCancelableFutureSuite.scala index 70bf36f37..a9a49c1f8 100644 --- a/monix-catnap/shared/src/test/scala/monix/execution/TypeClassLawsForCancelableFutureSuite.scala +++ b/monix-catnap/shared/src/test/scala/monix/execution/TypeClassLawsForCancelableFutureSuite.scala @@ -33,7 +33,7 @@ object TypeClassLawsForCancelableFutureSuite extends BaseLawsSuite { } test("adaptError") { - implicit val ec = TestScheduler() + implicit val ec: TestScheduler = TestScheduler() val F = MonadError[CancelableFuture, Throwable] val fa1 = F.catchNonFatal(1); ec.tick() @@ -45,7 +45,7 @@ object TypeClassLawsForCancelableFutureSuite extends BaseLawsSuite { } test("adaptErrorEval") { - implicit val ec = TestScheduler() + implicit val ec: TestScheduler = TestScheduler() val F = MonadError[CancelableFuture, Throwable] val fa1 = F.catchNonFatalEval(Eval.always(1)); ec.tick() @@ -57,7 +57,7 @@ object TypeClassLawsForCancelableFutureSuite extends BaseLawsSuite { } test("flatMap should be stack safe") { - implicit val s = TestScheduler() + implicit val s: TestScheduler = TestScheduler() val n = 100000 val M = Monad[CancelableFuture] val f = M.tailRecM(0)(i => M.pure(if (i < n) Left(i + 1) else Right(i))) diff --git a/monix-eval/shared/src/test/scala/monix/eval/TypeClassLawsForTaskWithCallbackSuite.scala b/monix-eval/shared/src/test/scala/monix/eval/TypeClassLawsForTaskWithCallbackSuite.scala index 7c39c7d6f..b7c80ec46 100644 --- a/monix-eval/shared/src/test/scala/monix/eval/TypeClassLawsForTaskWithCallbackSuite.scala +++ b/monix-eval/shared/src/test/scala/monix/eval/TypeClassLawsForTaskWithCallbackSuite.scala @@ -51,7 +51,7 @@ class BaseTypeClassLawsForTaskWithCallbackSuite(implicit opts: Task.Options) ext implicit A: Eq[A], ec: TestScheduler, - opts: Options) = { + opts: Options): Eq[Task[A]] = { Eq.by { task => val p = Promise[A]() diff --git a/monix-reactive/js/src/main/scala/monix/reactive/observers/buffers/AbstractBackPressuredBufferedSubscriber.scala b/monix-reactive/js/src/main/scala/monix/reactive/observers/buffers/AbstractBackPressuredBufferedSubscriber.scala index 4326e531d..4f75fa5dd 100644 --- a/monix-reactive/js/src/main/scala/monix/reactive/observers/buffers/AbstractBackPressuredBufferedSubscriber.scala +++ b/monix-reactive/js/src/main/scala/monix/reactive/observers/buffers/AbstractBackPressuredBufferedSubscriber.scala @@ -17,10 +17,11 @@ package monix.reactive.observers.buffers -import monix.execution.Ack +import monix.execution.{Ack, Scheduler} import monix.execution.Ack.{Continue, Stop} import monix.execution.internal.collection.JSArrayQueue import monix.execution.internal.math.nextPowerOf2 + import scala.util.control.NonFatal import monix.reactive.observers.{BufferedSubscriber, Subscriber} @@ -37,7 +38,7 @@ private[observers] abstract class AbstractBackPressuredBufferedSubscriber[A, R]( private[this] val bufferSize = nextPowerOf2(_size) private[this] val em = out.scheduler.executionModel - implicit final val scheduler = out.scheduler + implicit final val scheduler: Scheduler = out.scheduler private[this] var upstreamIsComplete = false private[this] var downstreamIsComplete = false diff --git a/monix-reactive/js/src/main/scala/monix/reactive/observers/buffers/SyncBufferedSubscriber.scala b/monix-reactive/js/src/main/scala/monix/reactive/observers/buffers/SyncBufferedSubscriber.scala index f49cb9077..abdcb06e3 100644 --- a/monix-reactive/js/src/main/scala/monix/reactive/observers/buffers/SyncBufferedSubscriber.scala +++ b/monix-reactive/js/src/main/scala/monix/reactive/observers/buffers/SyncBufferedSubscriber.scala @@ -18,7 +18,7 @@ package monix.reactive.observers.buffers import monix.eval.Coeval -import monix.execution.Ack +import monix.execution.{Ack, Scheduler} import monix.execution.Ack.{Continue, Stop} import monix.execution.internal.collection.{JSArrayQueue, _} @@ -38,7 +38,7 @@ private[observers] final class SyncBufferedSubscriber[-A] private ( onOverflow: Long => Coeval[Option[A]] = null) extends BufferedSubscriber[A] with Subscriber.Sync[A] { - implicit val scheduler = out.scheduler + implicit val scheduler: Scheduler = out.scheduler // to be modified only in onError, before upstreamIsComplete private[this] var errorThrown: Throwable = _ // to be modified only in onError / onComplete diff --git a/monix-reactive/jvm/src/main/scala/monix/reactive/compression/internal/operators/DeflateOperator.scala b/monix-reactive/jvm/src/main/scala/monix/reactive/compression/internal/operators/DeflateOperator.scala index 58149ca48..a4a964786 100644 --- a/monix-reactive/jvm/src/main/scala/monix/reactive/compression/internal/operators/DeflateOperator.scala +++ b/monix-reactive/jvm/src/main/scala/monix/reactive/compression/internal/operators/DeflateOperator.scala @@ -18,8 +18,7 @@ package monix.reactive.compression.internal.operators import java.util.zip.Deflater - -import monix.execution.Ack +import monix.execution.{Ack, Scheduler} import monix.execution.Ack.Continue import monix.reactive.Observable.Operator import monix.reactive.compression.{CompressionLevel, CompressionParameters, CompressionStrategy, FlushMode} @@ -36,7 +35,7 @@ private[compression] final class DeflateOperator( ) extends Operator[Array[Byte], Array[Byte]] { override def apply(out: Subscriber[Array[Byte]]): Subscriber[Array[Byte]] = { new Subscriber[Array[Byte]] { - implicit val scheduler = out.scheduler + implicit val scheduler: Scheduler = out.scheduler private[this] var ack: Future[Ack] = Continue private[this] val deflate = diff --git a/monix-reactive/jvm/src/main/scala/monix/reactive/compression/internal/operators/GunzipOperator.scala b/monix-reactive/jvm/src/main/scala/monix/reactive/compression/internal/operators/GunzipOperator.scala index 81f20d652..d3d423273 100644 --- a/monix-reactive/jvm/src/main/scala/monix/reactive/compression/internal/operators/GunzipOperator.scala +++ b/monix-reactive/jvm/src/main/scala/monix/reactive/compression/internal/operators/GunzipOperator.scala @@ -19,18 +19,11 @@ package monix.reactive.compression.internal.operators import java.util.zip.{CRC32, DataFormatException, Inflater} import java.{util => ju} - -import monix.execution.Ack +import monix.execution.{Ack, Scheduler} import monix.execution.Ack.{Continue, Stop} import monix.reactive.Observable.Operator import monix.reactive.compression.internal.operators.Gunzipper._ -import monix.reactive.compression.{ - gzipCompressionMethod, - gzipFlag, - gzipMagicFirstByte, - gzipMagicSecondByte, - CompressionException -} +import monix.reactive.compression.{CompressionException, gzipCompressionMethod, gzipFlag, gzipMagicFirstByte, gzipMagicSecondByte} import monix.reactive.observers.Subscriber import scala.annotation.tailrec @@ -42,7 +35,7 @@ private[compression] final class GunzipOperator(bufferSize: Int) extends Operato def apply(out: Subscriber[Array[Byte]]): Subscriber[Array[Byte]] = new Subscriber[Array[Byte]] { - implicit val scheduler = out.scheduler + implicit val scheduler: Scheduler = out.scheduler private[this] var isDone = false private[this] var ack: Future[Ack] = _ diff --git a/monix-reactive/jvm/src/main/scala/monix/reactive/compression/internal/operators/GzipOperator.scala b/monix-reactive/jvm/src/main/scala/monix/reactive/compression/internal/operators/GzipOperator.scala index 900c788fa..e3d04cc93 100644 --- a/monix-reactive/jvm/src/main/scala/monix/reactive/compression/internal/operators/GzipOperator.scala +++ b/monix-reactive/jvm/src/main/scala/monix/reactive/compression/internal/operators/GzipOperator.scala @@ -20,23 +20,11 @@ package monix.reactive.compression.internal.operators import java.nio.charset.StandardCharsets import java.time.Instant import java.util.zip.{CRC32, Deflater} - -import monix.execution.Ack +import monix.execution.{Ack, Scheduler} import monix.execution.Ack.Continue import monix.reactive.Observable.Operator import monix.reactive.compression.internal.operators.Gzipper.gzipOperatingSystem -import monix.reactive.compression.{ - gzipCompressionMethod, - gzipExtraFlag, - gzipFlag, - gzipMagicFirstByte, - gzipMagicSecondByte, - zeroByte, - CompressionLevel, - CompressionParameters, - CompressionStrategy, - FlushMode -} +import monix.reactive.compression.{CompressionLevel, CompressionParameters, CompressionStrategy, FlushMode, gzipCompressionMethod, gzipExtraFlag, gzipFlag, gzipMagicFirstByte, gzipMagicSecondByte, zeroByte} import monix.reactive.observers.Subscriber import scala.concurrent.Future @@ -52,7 +40,7 @@ private[compression] final class GzipOperator( ) extends Operator[Array[Byte], Array[Byte]] { override def apply(out: Subscriber[Array[Byte]]): Subscriber[Array[Byte]] = { new Subscriber[Array[Byte]] { - implicit val scheduler = out.scheduler + implicit val scheduler: Scheduler = out.scheduler private[this] var ack: Future[Ack] = _ private[this] val gzipper = diff --git a/monix-reactive/jvm/src/main/scala/monix/reactive/compression/internal/operators/InflateOperator.scala b/monix-reactive/jvm/src/main/scala/monix/reactive/compression/internal/operators/InflateOperator.scala index 340366afe..87d9a9a24 100644 --- a/monix-reactive/jvm/src/main/scala/monix/reactive/compression/internal/operators/InflateOperator.scala +++ b/monix-reactive/jvm/src/main/scala/monix/reactive/compression/internal/operators/InflateOperator.scala @@ -19,8 +19,7 @@ package monix.reactive.compression.internal.operators import java.util.zip.{DataFormatException, Inflater} import java.{util => ju} - -import monix.execution.Ack +import monix.execution.{Ack, Scheduler} import monix.execution.Ack.{Continue, Stop} import monix.reactive.Observable.Operator import monix.reactive.compression.CompressionException @@ -36,7 +35,7 @@ private[compression] final class InflateOperator(bufferSize: Int, noWrap: Boolea def apply(out: Subscriber[Array[Byte]]): Subscriber[Array[Byte]] = new Subscriber[Array[Byte]] { - implicit val scheduler = out.scheduler + implicit val scheduler: Scheduler = out.scheduler private[this] var isDone = false private[this] var ack: Future[Ack] = _ diff --git a/monix-reactive/jvm/src/main/scala/monix/reactive/observers/buffers/AbstractBackPressuredBufferedSubscriber.scala b/monix-reactive/jvm/src/main/scala/monix/reactive/observers/buffers/AbstractBackPressuredBufferedSubscriber.scala index f748f67a2..ff797a625 100644 --- a/monix-reactive/jvm/src/main/scala/monix/reactive/observers/buffers/AbstractBackPressuredBufferedSubscriber.scala +++ b/monix-reactive/jvm/src/main/scala/monix/reactive/observers/buffers/AbstractBackPressuredBufferedSubscriber.scala @@ -17,14 +17,14 @@ package monix.reactive.observers.buffers -import monix.execution.{Ack, ChannelType} +import monix.execution.{Ack, ChannelType, Scheduler} import monix.execution.Ack.{Continue, Stop} import monix.execution.BufferCapacity.Unbounded import monix.execution.ChannelType._ import monix.execution.atomic.Atomic import monix.execution.atomic.PaddingStrategy.LeftRight256 import monix.execution.internal.collection.LowLevelConcurrentQueue -import monix.execution.internal.{math, Platform} +import monix.execution.internal.{Platform, math} import scala.util.control.NonFatal import monix.reactive.observers.{BufferedSubscriber, Subscriber} @@ -46,7 +46,7 @@ private[observers] abstract class AbstractBackPressuredBufferedSubscriber[A, R]( private[this] val bufferSize = math.nextPowerOf2(_bufferSize) private[this] val em = out.scheduler.executionModel - implicit final val scheduler = out.scheduler + implicit final val scheduler: Scheduler = out.scheduler protected final val queue: LowLevelConcurrentQueue[A] = LowLevelConcurrentQueue( diff --git a/monix-reactive/jvm/src/main/scala/monix/reactive/observers/buffers/DropNewBufferedSubscriber.scala b/monix-reactive/jvm/src/main/scala/monix/reactive/observers/buffers/DropNewBufferedSubscriber.scala index 0c5c58fe6..cc3ef4bae 100644 --- a/monix-reactive/jvm/src/main/scala/monix/reactive/observers/buffers/DropNewBufferedSubscriber.scala +++ b/monix-reactive/jvm/src/main/scala/monix/reactive/observers/buffers/DropNewBufferedSubscriber.scala @@ -18,7 +18,7 @@ package monix.reactive.observers.buffers import monix.eval.Coeval -import monix.execution.Ack +import monix.execution.{Ack, Scheduler} import monix.execution.Ack.{Continue, Stop} import monix.execution.atomic.PaddingStrategy.{LeftRight128, LeftRight256} import monix.execution.atomic.{Atomic, AtomicInt} @@ -42,7 +42,7 @@ private[observers] final class DropNewBufferedSubscriber[A] private ( require(bufferSize > 0, "bufferSize must be a strictly positive number") - implicit val scheduler = out.scheduler + implicit val scheduler: Scheduler = out.scheduler private[this] val em = out.scheduler.executionModel private[this] val itemsToPush = diff --git a/monix-reactive/jvm/src/main/scala/monix/reactive/observers/buffers/EvictingBufferedSubscriber.scala b/monix-reactive/jvm/src/main/scala/monix/reactive/observers/buffers/EvictingBufferedSubscriber.scala index dd39a7216..a69db54e3 100644 --- a/monix-reactive/jvm/src/main/scala/monix/reactive/observers/buffers/EvictingBufferedSubscriber.scala +++ b/monix-reactive/jvm/src/main/scala/monix/reactive/observers/buffers/EvictingBufferedSubscriber.scala @@ -18,7 +18,7 @@ package monix.reactive.observers.buffers import monix.eval.Coeval -import monix.execution.Ack +import monix.execution.{Ack, Scheduler} import monix.execution.Ack.{Continue, Stop} import monix.execution.atomic.PaddingStrategy.{LeftRight128, LeftRight256} import monix.execution.atomic.{Atomic, AtomicAny, AtomicInt} @@ -112,7 +112,7 @@ private[observers] abstract class AbstractEvictingBufferedSubscriber[-A]( require(strategy.bufferSize > 0, "bufferSize must be a strictly positive number") - implicit val scheduler = out.scheduler + implicit val scheduler: Scheduler = out.scheduler private[this] val em = out.scheduler.executionModel private[this] val droppedCount: AtomicInt = diff --git a/monix-reactive/jvm/src/main/scala/monix/reactive/observers/buffers/SimpleBufferedSubscriber.scala b/monix-reactive/jvm/src/main/scala/monix/reactive/observers/buffers/SimpleBufferedSubscriber.scala index dbe6a245a..50dafe4b5 100644 --- a/monix-reactive/jvm/src/main/scala/monix/reactive/observers/buffers/SimpleBufferedSubscriber.scala +++ b/monix-reactive/jvm/src/main/scala/monix/reactive/observers/buffers/SimpleBufferedSubscriber.scala @@ -17,7 +17,7 @@ package monix.reactive.observers.buffers -import monix.execution.{Ack, ChannelType} +import monix.execution.{Ack, ChannelType, Scheduler} import monix.execution.Ack.{Continue, Stop} import monix.execution.BufferCapacity.{Bounded, Unbounded} import monix.execution.ChannelType.SingleConsumer @@ -62,7 +62,7 @@ private[observers] abstract class AbstractSimpleBufferedSubscriber[A] protected private[this] val queue = _qRef private[this] val em = out.scheduler.executionModel - implicit val scheduler = out.scheduler + implicit val scheduler: Scheduler = out.scheduler private[this] val itemsToPush = Atomic.withPadding(0, LeftRight256) diff --git a/monix-reactive/shared/src/main/scala/monix/reactive/Observable.scala b/monix-reactive/shared/src/main/scala/monix/reactive/Observable.scala index afdfdae6d..f5c3c92fc 100644 --- a/monix-reactive/shared/src/main/scala/monix/reactive/Observable.scala +++ b/monix-reactive/shared/src/main/scala/monix/reactive/Observable.scala @@ -365,7 +365,7 @@ abstract class Observable[+A] extends Serializable { self => s: Scheduler): Cancelable = { subscribe(new Subscriber[A] { - implicit val scheduler = s + implicit val scheduler: Scheduler = s def onNext(elem: A) = nextFn(elem) def onComplete() = completedFn() diff --git a/monix-reactive/shared/src/main/scala/monix/reactive/internal/builders/CombineLatest2Observable.scala b/monix-reactive/shared/src/main/scala/monix/reactive/internal/builders/CombineLatest2Observable.scala index 140b0a02b..180b3b190 100644 --- a/monix-reactive/shared/src/main/scala/monix/reactive/internal/builders/CombineLatest2Observable.scala +++ b/monix-reactive/shared/src/main/scala/monix/reactive/internal/builders/CombineLatest2Observable.scala @@ -17,9 +17,10 @@ package monix.reactive.internal.builders -import monix.execution.{Ack, Cancelable} +import monix.execution.{Ack, Cancelable, Scheduler} import monix.execution.Ack.{Continue, Stop} import monix.execution.cancelables.CompositeCancelable + import scala.util.control.NonFatal import monix.reactive.Observable import monix.reactive.observers.Subscriber @@ -121,7 +122,7 @@ private[reactive] final class CombineLatest2Observable[A1, A2, +R](obsA1: Observ val composite = CompositeCancelable() composite += obsA1.unsafeSubscribeFn(new Subscriber[A1] { - implicit val scheduler = out.scheduler + implicit val scheduler: Scheduler = out.scheduler def onNext(elem: A1): Future[Ack] = lock.synchronized { if (isDone) Stop @@ -143,7 +144,7 @@ private[reactive] final class CombineLatest2Observable[A1, A2, +R](obsA1: Observ }) composite += obsA2.unsafeSubscribeFn(new Subscriber[A2] { - implicit val scheduler = out.scheduler + implicit val scheduler: Scheduler = out.scheduler def onNext(elem: A2): Future[Ack] = lock.synchronized { if (isDone) Stop diff --git a/monix-reactive/shared/src/main/scala/monix/reactive/internal/builders/CombineLatest3Observable.scala b/monix-reactive/shared/src/main/scala/monix/reactive/internal/builders/CombineLatest3Observable.scala index 3c5245241..a54a39c70 100644 --- a/monix-reactive/shared/src/main/scala/monix/reactive/internal/builders/CombineLatest3Observable.scala +++ b/monix-reactive/shared/src/main/scala/monix/reactive/internal/builders/CombineLatest3Observable.scala @@ -17,9 +17,10 @@ package monix.reactive.internal.builders -import monix.execution.{Ack, Cancelable} +import monix.execution.{Ack, Cancelable, Scheduler} import monix.execution.Ack.{Continue, Stop} import monix.execution.cancelables.CompositeCancelable + import scala.util.control.NonFatal import monix.reactive.Observable import monix.reactive.observers.Subscriber @@ -127,7 +128,7 @@ private[reactive] final class CombineLatest3Observable[A1, A2, A3, +R]( val composite = CompositeCancelable() composite += obsA1.unsafeSubscribeFn(new Subscriber[A1] { - implicit val scheduler = out.scheduler + implicit val scheduler: Scheduler = out.scheduler def onNext(elem: A1): Future[Ack] = lock.synchronized { if (isDone) Stop @@ -149,7 +150,7 @@ private[reactive] final class CombineLatest3Observable[A1, A2, A3, +R]( }) composite += obsA2.unsafeSubscribeFn(new Subscriber[A2] { - implicit val scheduler = out.scheduler + implicit val scheduler: Scheduler = out.scheduler def onNext(elem: A2): Future[Ack] = lock.synchronized { if (isDone) Stop @@ -171,7 +172,7 @@ private[reactive] final class CombineLatest3Observable[A1, A2, A3, +R]( }) composite += obsA3.unsafeSubscribeFn(new Subscriber[A3] { - implicit val scheduler = out.scheduler + implicit val scheduler: Scheduler = out.scheduler def onNext(elem: A3): Future[Ack] = lock.synchronized { if (isDone) Stop diff --git a/monix-reactive/shared/src/main/scala/monix/reactive/internal/builders/CombineLatest4Observable.scala b/monix-reactive/shared/src/main/scala/monix/reactive/internal/builders/CombineLatest4Observable.scala index 3e2977a6b..315bfa798 100644 --- a/monix-reactive/shared/src/main/scala/monix/reactive/internal/builders/CombineLatest4Observable.scala +++ b/monix-reactive/shared/src/main/scala/monix/reactive/internal/builders/CombineLatest4Observable.scala @@ -18,8 +18,9 @@ package monix.reactive.internal.builders import monix.execution.cancelables.CompositeCancelable -import monix.execution.{Ack, Cancelable} +import monix.execution.{Ack, Cancelable, Scheduler} import monix.execution.Ack.{Continue, Stop} + import scala.util.control.NonFatal import monix.reactive.Observable import monix.reactive.observers.Subscriber @@ -132,7 +133,7 @@ private[reactive] final class CombineLatest4Observable[A1, A2, A3, A4, +R]( val composite = CompositeCancelable() composite += obsA1.unsafeSubscribeFn(new Subscriber[A1] { - implicit val scheduler = out.scheduler + implicit val scheduler: Scheduler = out.scheduler def onNext(elem: A1): Future[Ack] = lock.synchronized { if (isDone) Stop @@ -154,7 +155,7 @@ private[reactive] final class CombineLatest4Observable[A1, A2, A3, A4, +R]( }) composite += obsA2.unsafeSubscribeFn(new Subscriber[A2] { - implicit val scheduler = out.scheduler + implicit val scheduler: Scheduler = out.scheduler def onNext(elem: A2): Future[Ack] = lock.synchronized { if (isDone) Stop @@ -176,7 +177,7 @@ private[reactive] final class CombineLatest4Observable[A1, A2, A3, A4, +R]( }) composite += obsA3.unsafeSubscribeFn(new Subscriber[A3] { - implicit val scheduler = out.scheduler + implicit val scheduler: Scheduler = out.scheduler def onNext(elem: A3): Future[Ack] = lock.synchronized { if (isDone) Stop @@ -198,7 +199,7 @@ private[reactive] final class CombineLatest4Observable[A1, A2, A3, A4, +R]( }) composite += obsA4.unsafeSubscribeFn(new Subscriber[A4] { - implicit val scheduler = out.scheduler + implicit val scheduler: Scheduler = out.scheduler def onNext(elem: A4): Future[Ack] = lock.synchronized { if (isDone) Stop diff --git a/monix-reactive/shared/src/main/scala/monix/reactive/internal/builders/CombineLatest5Observable.scala b/monix-reactive/shared/src/main/scala/monix/reactive/internal/builders/CombineLatest5Observable.scala index 3990b6153..a60ebd8ae 100644 --- a/monix-reactive/shared/src/main/scala/monix/reactive/internal/builders/CombineLatest5Observable.scala +++ b/monix-reactive/shared/src/main/scala/monix/reactive/internal/builders/CombineLatest5Observable.scala @@ -17,9 +17,10 @@ package monix.reactive.internal.builders -import monix.execution.{Ack, Cancelable} +import monix.execution.{Ack, Cancelable, Scheduler} import monix.execution.Ack.{Continue, Stop} import monix.execution.cancelables.CompositeCancelable + import scala.util.control.NonFatal import monix.reactive.Observable import monix.reactive.observers.Subscriber @@ -137,7 +138,7 @@ private[reactive] final class CombineLatest5Observable[A1, A2, A3, A4, A5, +R]( val composite = CompositeCancelable() composite += obsA1.unsafeSubscribeFn(new Subscriber[A1] { - implicit val scheduler = out.scheduler + implicit val scheduler: Scheduler = out.scheduler def onNext(elem: A1): Future[Ack] = lock.synchronized { if (isDone) Stop @@ -159,7 +160,7 @@ private[reactive] final class CombineLatest5Observable[A1, A2, A3, A4, A5, +R]( }) composite += obsA2.unsafeSubscribeFn(new Subscriber[A2] { - implicit val scheduler = out.scheduler + implicit val scheduler: Scheduler = out.scheduler def onNext(elem: A2): Future[Ack] = lock.synchronized { if (isDone) Stop @@ -181,7 +182,7 @@ private[reactive] final class CombineLatest5Observable[A1, A2, A3, A4, A5, +R]( }) composite += obsA3.unsafeSubscribeFn(new Subscriber[A3] { - implicit val scheduler = out.scheduler + implicit val scheduler: Scheduler = out.scheduler def onNext(elem: A3): Future[Ack] = lock.synchronized { if (isDone) Stop @@ -203,7 +204,7 @@ private[reactive] final class CombineLatest5Observable[A1, A2, A3, A4, A5, +R]( }) composite += obsA4.unsafeSubscribeFn(new Subscriber[A4] { - implicit val scheduler = out.scheduler + implicit val scheduler: Scheduler = out.scheduler def onNext(elem: A4): Future[Ack] = lock.synchronized { if (isDone) Stop @@ -225,7 +226,7 @@ private[reactive] final class CombineLatest5Observable[A1, A2, A3, A4, A5, +R]( }) composite += obsA5.unsafeSubscribeFn(new Subscriber[A5] { - implicit val scheduler = out.scheduler + implicit val scheduler: Scheduler = out.scheduler def onNext(elem: A5): Future[Ack] = lock.synchronized { if (isDone) Stop diff --git a/monix-reactive/shared/src/main/scala/monix/reactive/internal/builders/CombineLatest6Observable.scala b/monix-reactive/shared/src/main/scala/monix/reactive/internal/builders/CombineLatest6Observable.scala index 376a9e69e..546f7a2ca 100644 --- a/monix-reactive/shared/src/main/scala/monix/reactive/internal/builders/CombineLatest6Observable.scala +++ b/monix-reactive/shared/src/main/scala/monix/reactive/internal/builders/CombineLatest6Observable.scala @@ -17,9 +17,10 @@ package monix.reactive.internal.builders -import monix.execution.{Ack, Cancelable} +import monix.execution.{Ack, Cancelable, Scheduler} import monix.execution.Ack.{Continue, Stop} import monix.execution.cancelables.CompositeCancelable + import scala.util.control.NonFatal import monix.reactive.Observable import monix.reactive.observers.Subscriber @@ -142,7 +143,7 @@ private[reactive] final class CombineLatest6Observable[A1, A2, A3, A4, A5, A6, + val composite = CompositeCancelable() composite += obsA1.unsafeSubscribeFn(new Subscriber[A1] { - implicit val scheduler = out.scheduler + implicit val scheduler: Scheduler = out.scheduler def onNext(elem: A1): Future[Ack] = lock.synchronized { if (isDone) Stop @@ -164,7 +165,7 @@ private[reactive] final class CombineLatest6Observable[A1, A2, A3, A4, A5, A6, + }) composite += obsA2.unsafeSubscribeFn(new Subscriber[A2] { - implicit val scheduler = out.scheduler + implicit val scheduler: Scheduler = out.scheduler def onNext(elem: A2): Future[Ack] = lock.synchronized { if (isDone) Stop @@ -186,7 +187,7 @@ private[reactive] final class CombineLatest6Observable[A1, A2, A3, A4, A5, A6, + }) composite += obsA3.unsafeSubscribeFn(new Subscriber[A3] { - implicit val scheduler = out.scheduler + implicit val scheduler: Scheduler = out.scheduler def onNext(elem: A3): Future[Ack] = lock.synchronized { if (isDone) Stop @@ -208,7 +209,7 @@ private[reactive] final class CombineLatest6Observable[A1, A2, A3, A4, A5, A6, + }) composite += obsA4.unsafeSubscribeFn(new Subscriber[A4] { - implicit val scheduler = out.scheduler + implicit val scheduler: Scheduler = out.scheduler def onNext(elem: A4): Future[Ack] = lock.synchronized { if (isDone) Stop @@ -230,7 +231,7 @@ private[reactive] final class CombineLatest6Observable[A1, A2, A3, A4, A5, A6, + }) composite += obsA5.unsafeSubscribeFn(new Subscriber[A5] { - implicit val scheduler = out.scheduler + implicit val scheduler: Scheduler = out.scheduler def onNext(elem: A5): Future[Ack] = lock.synchronized { if (isDone) Stop @@ -252,7 +253,7 @@ private[reactive] final class CombineLatest6Observable[A1, A2, A3, A4, A5, A6, + }) composite += obsA6.unsafeSubscribeFn(new Subscriber[A6] { - implicit val scheduler = out.scheduler + implicit val scheduler: Scheduler = out.scheduler def onNext(elem: A6): Future[Ack] = lock.synchronized { if (isDone) Stop diff --git a/monix-reactive/shared/src/main/scala/monix/reactive/internal/builders/ExecuteWithModelObservable.scala b/monix-reactive/shared/src/main/scala/monix/reactive/internal/builders/ExecuteWithModelObservable.scala index 7f1c79f8e..798d39dc0 100644 --- a/monix-reactive/shared/src/main/scala/monix/reactive/internal/builders/ExecuteWithModelObservable.scala +++ b/monix-reactive/shared/src/main/scala/monix/reactive/internal/builders/ExecuteWithModelObservable.scala @@ -18,7 +18,7 @@ package monix.reactive.internal.builders import scala.util.control.NonFatal -import monix.execution.{Ack, Cancelable, ExecutionModel} +import monix.execution.{Ack, Cancelable, ExecutionModel, Scheduler} import monix.reactive.Observable import monix.reactive.observers.Subscriber @@ -34,7 +34,7 @@ private[reactive] final class ExecuteWithModelObservable[A](source: Observable[A streamErrors = false source.unsafeSubscribeFn(new Subscriber[A] { - implicit val scheduler = newS + implicit val scheduler: Scheduler = newS def onError(ex: Throwable): Unit = out.onError(ex) def onComplete(): Unit = out.onComplete() def onNext(elem: A): Future[Ack] = out.onNext(elem) diff --git a/monix-reactive/shared/src/main/scala/monix/reactive/internal/builders/Interleave2Observable.scala b/monix-reactive/shared/src/main/scala/monix/reactive/internal/builders/Interleave2Observable.scala index 8ddd6469f..e3910e382 100644 --- a/monix-reactive/shared/src/main/scala/monix/reactive/internal/builders/Interleave2Observable.scala +++ b/monix-reactive/shared/src/main/scala/monix/reactive/internal/builders/Interleave2Observable.scala @@ -19,9 +19,10 @@ package monix.reactive.internal.builders import monix.execution.Ack.{Continue, Stop} import monix.execution.cancelables.CompositeCancelable -import monix.execution.{Ack, Cancelable} +import monix.execution.{Ack, Cancelable, Scheduler} import monix.reactive.Observable import monix.reactive.observers.Subscriber + import scala.concurrent.{Future, Promise} private[reactive] final class Interleave2Observable[+A](obsA1: Observable[A], obsA2: Observable[A]) @@ -78,7 +79,7 @@ private[reactive] final class Interleave2Observable[+A](obsA1: Observable[A], ob val composite = CompositeCancelable() composite += obsA1.unsafeSubscribeFn(new Subscriber[A] { - implicit val scheduler = out.scheduler + implicit val scheduler: Scheduler = out.scheduler def onNext(elem: A): Future[Ack] = lock.synchronized { def sendSignal(elem: A): Future[Ack] = lock.synchronized { @@ -111,7 +112,7 @@ private[reactive] final class Interleave2Observable[+A](obsA1: Observable[A], ob }) composite += obsA2.unsafeSubscribeFn(new Subscriber[A] { - implicit val scheduler = out.scheduler + implicit val scheduler: Scheduler = out.scheduler def onNext(elem: A): Future[Ack] = lock.synchronized { def sendSignal(elem: A): Future[Ack] = lock.synchronized { diff --git a/monix-reactive/shared/src/main/scala/monix/reactive/internal/builders/PipeThroughSelectorObservable.scala b/monix-reactive/shared/src/main/scala/monix/reactive/internal/builders/PipeThroughSelectorObservable.scala index ee8283cd6..04541a9d0 100644 --- a/monix-reactive/shared/src/main/scala/monix/reactive/internal/builders/PipeThroughSelectorObservable.scala +++ b/monix-reactive/shared/src/main/scala/monix/reactive/internal/builders/PipeThroughSelectorObservable.scala @@ -17,8 +17,9 @@ package monix.reactive.internal.builders -import monix.execution.{Ack, Cancelable} +import monix.execution.{Ack, Cancelable, Scheduler} import monix.execution.cancelables.SingleAssignCancelable + import scala.util.control.NonFatal import monix.reactive.observers.Subscriber import monix.reactive.{Observable, Pipe} @@ -42,7 +43,7 @@ private[reactive] final class PipeThroughSelectorObservable[A, B, C]( streamErrors = false val downstream = observable.unsafeSubscribeFn(new Subscriber[C] { - implicit val scheduler = out.scheduler + implicit val scheduler: Scheduler = out.scheduler def onError(ex: Throwable) = out.onError(ex) def onComplete() = out.onComplete() diff --git a/monix-reactive/shared/src/main/scala/monix/reactive/internal/builders/Zip2Observable.scala b/monix-reactive/shared/src/main/scala/monix/reactive/internal/builders/Zip2Observable.scala index ba639f204..226ac637e 100644 --- a/monix-reactive/shared/src/main/scala/monix/reactive/internal/builders/Zip2Observable.scala +++ b/monix-reactive/shared/src/main/scala/monix/reactive/internal/builders/Zip2Observable.scala @@ -18,8 +18,9 @@ package monix.reactive.internal.builders import monix.execution.cancelables.CompositeCancelable -import monix.execution.{Ack, Cancelable} +import monix.execution.{Ack, Cancelable, Scheduler} import monix.execution.Ack.{Continue, Stop} + import scala.util.control.NonFatal import monix.reactive.Observable import monix.reactive.observers.Subscriber @@ -136,7 +137,7 @@ private[reactive] final class Zip2Observable[A1, A2, +R](obsA1: Observable[A1], val composite = CompositeCancelable() composite += obsA1.unsafeSubscribeFn(new Subscriber[A1] { - implicit val scheduler = out.scheduler + implicit val scheduler: Scheduler = out.scheduler def onNext(elem: A1): Future[Ack] = lock.synchronized { if (isDone) Stop @@ -158,7 +159,7 @@ private[reactive] final class Zip2Observable[A1, A2, +R](obsA1: Observable[A1], }) composite += obsA2.unsafeSubscribeFn(new Subscriber[A2] { - implicit val scheduler = out.scheduler + implicit val scheduler: Scheduler = out.scheduler def onNext(elem: A2): Future[Ack] = lock.synchronized { if (isDone) Stop diff --git a/monix-reactive/shared/src/main/scala/monix/reactive/internal/builders/Zip3Observable.scala b/monix-reactive/shared/src/main/scala/monix/reactive/internal/builders/Zip3Observable.scala index 40f6fcaa4..cd7fc3fcc 100644 --- a/monix-reactive/shared/src/main/scala/monix/reactive/internal/builders/Zip3Observable.scala +++ b/monix-reactive/shared/src/main/scala/monix/reactive/internal/builders/Zip3Observable.scala @@ -17,9 +17,10 @@ package monix.reactive.internal.builders -import monix.execution.{Ack, Cancelable} +import monix.execution.{Ack, Cancelable, Scheduler} import monix.execution.Ack.{Continue, Stop} import monix.execution.cancelables.CompositeCancelable + import scala.util.control.NonFatal import monix.reactive.Observable import monix.reactive.observers.Subscriber @@ -144,7 +145,7 @@ private[reactive] final class Zip3Observable[A1, A2, A3, +R]( val composite = CompositeCancelable() composite += obsA1.unsafeSubscribeFn(new Subscriber[A1] { - implicit val scheduler = out.scheduler + implicit val scheduler: Scheduler = out.scheduler def onNext(elem: A1): Future[Ack] = lock.synchronized { if (isDone) Stop @@ -167,7 +168,7 @@ private[reactive] final class Zip3Observable[A1, A2, A3, +R]( }) composite += obsA2.unsafeSubscribeFn(new Subscriber[A2] { - implicit val scheduler = out.scheduler + implicit val scheduler: Scheduler = out.scheduler def onNext(elem: A2): Future[Ack] = lock.synchronized { if (isDone) Stop @@ -190,7 +191,7 @@ private[reactive] final class Zip3Observable[A1, A2, A3, +R]( }) composite += obsA3.unsafeSubscribeFn(new Subscriber[A3] { - implicit val scheduler = out.scheduler + implicit val scheduler: Scheduler = out.scheduler def onNext(elem: A3): Future[Ack] = lock.synchronized { if (isDone) Stop diff --git a/monix-reactive/shared/src/main/scala/monix/reactive/internal/builders/Zip4Observable.scala b/monix-reactive/shared/src/main/scala/monix/reactive/internal/builders/Zip4Observable.scala index e27144518..dbf739942 100644 --- a/monix-reactive/shared/src/main/scala/monix/reactive/internal/builders/Zip4Observable.scala +++ b/monix-reactive/shared/src/main/scala/monix/reactive/internal/builders/Zip4Observable.scala @@ -17,9 +17,10 @@ package monix.reactive.internal.builders -import monix.execution.{Ack, Cancelable} +import monix.execution.{Ack, Cancelable, Scheduler} import monix.execution.Ack.{Continue, Stop} import monix.execution.cancelables.CompositeCancelable + import scala.util.control.NonFatal import monix.reactive.Observable import monix.reactive.observers.Subscriber @@ -150,7 +151,7 @@ private[reactive] final class Zip4Observable[A1, A2, A3, A4, +R]( val composite = CompositeCancelable() composite += obsA1.unsafeSubscribeFn(new Subscriber[A1] { - implicit val scheduler = out.scheduler + implicit val scheduler: Scheduler = out.scheduler def onNext(elem: A1): Future[Ack] = lock.synchronized { if (isDone) Stop @@ -173,7 +174,7 @@ private[reactive] final class Zip4Observable[A1, A2, A3, A4, +R]( }) composite += obsA2.unsafeSubscribeFn(new Subscriber[A2] { - implicit val scheduler = out.scheduler + implicit val scheduler: Scheduler = out.scheduler def onNext(elem: A2): Future[Ack] = lock.synchronized { if (isDone) Stop @@ -196,7 +197,7 @@ private[reactive] final class Zip4Observable[A1, A2, A3, A4, +R]( }) composite += obsA3.unsafeSubscribeFn(new Subscriber[A3] { - implicit val scheduler = out.scheduler + implicit val scheduler: Scheduler = out.scheduler def onNext(elem: A3): Future[Ack] = lock.synchronized { if (isDone) Stop @@ -219,7 +220,7 @@ private[reactive] final class Zip4Observable[A1, A2, A3, A4, +R]( }) composite += obsA4.unsafeSubscribeFn(new Subscriber[A4] { - implicit val scheduler = out.scheduler + implicit val scheduler: Scheduler = out.scheduler def onNext(elem: A4): Future[Ack] = lock.synchronized { if (isDone) Stop diff --git a/monix-reactive/shared/src/main/scala/monix/reactive/internal/builders/Zip5Observable.scala b/monix-reactive/shared/src/main/scala/monix/reactive/internal/builders/Zip5Observable.scala index 8beb1a69a..86425ae64 100644 --- a/monix-reactive/shared/src/main/scala/monix/reactive/internal/builders/Zip5Observable.scala +++ b/monix-reactive/shared/src/main/scala/monix/reactive/internal/builders/Zip5Observable.scala @@ -18,8 +18,9 @@ package monix.reactive.internal.builders import monix.execution.cancelables.CompositeCancelable -import monix.execution.{Ack, Cancelable} +import monix.execution.{Ack, Cancelable, Scheduler} import monix.execution.Ack.{Continue, Stop} + import scala.util.control.NonFatal import monix.reactive.Observable import monix.reactive.observers.Subscriber @@ -156,7 +157,7 @@ private[reactive] final class Zip5Observable[A1, A2, A3, A4, A5, +R]( val composite = CompositeCancelable() composite += obsA1.unsafeSubscribeFn(new Subscriber[A1] { - implicit val scheduler = out.scheduler + implicit val scheduler: Scheduler = out.scheduler def onNext(elem: A1): Future[Ack] = lock.synchronized { if (isDone) Stop @@ -179,7 +180,7 @@ private[reactive] final class Zip5Observable[A1, A2, A3, A4, A5, +R]( }) composite += obsA2.unsafeSubscribeFn(new Subscriber[A2] { - implicit val scheduler = out.scheduler + implicit val scheduler: Scheduler = out.scheduler def onNext(elem: A2): Future[Ack] = lock.synchronized { if (isDone) Stop @@ -202,7 +203,7 @@ private[reactive] final class Zip5Observable[A1, A2, A3, A4, A5, +R]( }) composite += obsA3.unsafeSubscribeFn(new Subscriber[A3] { - implicit val scheduler = out.scheduler + implicit val scheduler: Scheduler = out.scheduler def onNext(elem: A3): Future[Ack] = lock.synchronized { if (isDone) Stop @@ -225,7 +226,7 @@ private[reactive] final class Zip5Observable[A1, A2, A3, A4, A5, +R]( }) composite += obsA4.unsafeSubscribeFn(new Subscriber[A4] { - implicit val scheduler = out.scheduler + implicit val scheduler: Scheduler = out.scheduler def onNext(elem: A4): Future[Ack] = lock.synchronized { if (isDone) Stop @@ -248,7 +249,7 @@ private[reactive] final class Zip5Observable[A1, A2, A3, A4, A5, +R]( }) composite += obsA5.unsafeSubscribeFn(new Subscriber[A5] { - implicit val scheduler = out.scheduler + implicit val scheduler: Scheduler = out.scheduler def onNext(elem: A5): Future[Ack] = lock.synchronized { if (isDone) Stop diff --git a/monix-reactive/shared/src/main/scala/monix/reactive/internal/builders/Zip6Observable.scala b/monix-reactive/shared/src/main/scala/monix/reactive/internal/builders/Zip6Observable.scala index 9098c82f4..a2c6f540c 100644 --- a/monix-reactive/shared/src/main/scala/monix/reactive/internal/builders/Zip6Observable.scala +++ b/monix-reactive/shared/src/main/scala/monix/reactive/internal/builders/Zip6Observable.scala @@ -18,8 +18,9 @@ package monix.reactive.internal.builders import monix.execution.cancelables.CompositeCancelable -import monix.execution.{Ack, Cancelable} +import monix.execution.{Ack, Cancelable, Scheduler} import monix.execution.Ack.{Continue, Stop} + import scala.util.control.NonFatal import monix.reactive.Observable import monix.reactive.observers.Subscriber @@ -162,7 +163,7 @@ private[reactive] final class Zip6Observable[A1, A2, A3, A4, A5, A6, +R]( val composite = CompositeCancelable() composite += obsA1.unsafeSubscribeFn(new Subscriber[A1] { - implicit val scheduler = out.scheduler + implicit val scheduler: Scheduler = out.scheduler def onNext(elem: A1): Future[Ack] = lock.synchronized { if (isDone) Stop @@ -185,7 +186,7 @@ private[reactive] final class Zip6Observable[A1, A2, A3, A4, A5, A6, +R]( }) composite += obsA2.unsafeSubscribeFn(new Subscriber[A2] { - implicit val scheduler = out.scheduler + implicit val scheduler: Scheduler = out.scheduler def onNext(elem: A2): Future[Ack] = lock.synchronized { if (isDone) Stop @@ -208,7 +209,7 @@ private[reactive] final class Zip6Observable[A1, A2, A3, A4, A5, A6, +R]( }) composite += obsA3.unsafeSubscribeFn(new Subscriber[A3] { - implicit val scheduler = out.scheduler + implicit val scheduler: Scheduler = out.scheduler def onNext(elem: A3): Future[Ack] = lock.synchronized { if (isDone) Stop @@ -231,7 +232,7 @@ private[reactive] final class Zip6Observable[A1, A2, A3, A4, A5, A6, +R]( }) composite += obsA4.unsafeSubscribeFn(new Subscriber[A4] { - implicit val scheduler = out.scheduler + implicit val scheduler: Scheduler = out.scheduler def onNext(elem: A4): Future[Ack] = lock.synchronized { if (isDone) Stop @@ -254,7 +255,7 @@ private[reactive] final class Zip6Observable[A1, A2, A3, A4, A5, A6, +R]( }) composite += obsA5.unsafeSubscribeFn(new Subscriber[A5] { - implicit val scheduler = out.scheduler + implicit val scheduler: Scheduler = out.scheduler def onNext(elem: A5): Future[Ack] = lock.synchronized { if (isDone) Stop @@ -277,7 +278,7 @@ private[reactive] final class Zip6Observable[A1, A2, A3, A4, A5, A6, +R]( }) composite += obsA6.unsafeSubscribeFn(new Subscriber[A6] { - implicit val scheduler = out.scheduler + implicit val scheduler: Scheduler = out.scheduler def onNext(elem: A6): Future[Ack] = lock.synchronized { if (isDone) Stop diff --git a/monix-reactive/shared/src/main/scala/monix/reactive/internal/consumers/CancelledConsumer.scala b/monix-reactive/shared/src/main/scala/monix/reactive/internal/consumers/CancelledConsumer.scala index b9e1fff4d..0dc86d84e 100644 --- a/monix-reactive/shared/src/main/scala/monix/reactive/internal/consumers/CancelledConsumer.scala +++ b/monix-reactive/shared/src/main/scala/monix/reactive/internal/consumers/CancelledConsumer.scala @@ -28,7 +28,7 @@ import monix.reactive.observers.Subscriber private[reactive] object CancelledConsumer extends Consumer.Sync[Any, Unit] { def createSubscriber(cb: Callback[Throwable, Unit], s: Scheduler): (Subscriber.Sync[Any], AssignableCancelable) = { val out = new Subscriber.Sync[Any] { - implicit val scheduler = s + implicit val scheduler: Scheduler = s def onNext(elem: Any): Ack = Stop def onComplete(): Unit = () def onError(ex: Throwable): Unit = scheduler.reportFailure(ex) diff --git a/monix-reactive/shared/src/main/scala/monix/reactive/internal/consumers/CompleteConsumer.scala b/monix-reactive/shared/src/main/scala/monix/reactive/internal/consumers/CompleteConsumer.scala index 8450c1344..923c2b2ce 100644 --- a/monix-reactive/shared/src/main/scala/monix/reactive/internal/consumers/CompleteConsumer.scala +++ b/monix-reactive/shared/src/main/scala/monix/reactive/internal/consumers/CompleteConsumer.scala @@ -30,7 +30,7 @@ private[reactive] object CompleteConsumer extends Consumer.Sync[Any, Unit] { cb: Callback[Throwable, Unit], s: Scheduler): (Subscriber.Sync[Any], AssignableCancelable) = { val out = new Subscriber.Sync[Any] { - implicit val scheduler = s + implicit val scheduler: Scheduler = s def onNext(elem: Any): Ack = Continue def onComplete(): Unit = cb.onSuccess(()) def onError(ex: Throwable): Unit = cb.onError(ex) diff --git a/monix-reactive/shared/src/main/scala/monix/reactive/internal/consumers/ContraMapConsumer.scala b/monix-reactive/shared/src/main/scala/monix/reactive/internal/consumers/ContraMapConsumer.scala index 8466b636d..8b2122b7d 100644 --- a/monix-reactive/shared/src/main/scala/monix/reactive/internal/consumers/ContraMapConsumer.scala +++ b/monix-reactive/shared/src/main/scala/monix/reactive/internal/consumers/ContraMapConsumer.scala @@ -35,7 +35,7 @@ private[reactive] final class ContraMapConsumer[In2, -In, +R](source: Consumer[I val (out, c) = source.createSubscriber(cb, s) val out2 = new Subscriber[In2] { - implicit val scheduler = out.scheduler + override implicit val scheduler: Scheduler = out.scheduler // For protecting the contract private[this] var isDone = false diff --git a/monix-reactive/shared/src/main/scala/monix/reactive/internal/consumers/FirstNotificationConsumer.scala b/monix-reactive/shared/src/main/scala/monix/reactive/internal/consumers/FirstNotificationConsumer.scala index ebfda4e79..020de0e32 100644 --- a/monix-reactive/shared/src/main/scala/monix/reactive/internal/consumers/FirstNotificationConsumer.scala +++ b/monix-reactive/shared/src/main/scala/monix/reactive/internal/consumers/FirstNotificationConsumer.scala @@ -30,7 +30,7 @@ private[reactive] final class FirstNotificationConsumer[A] extends Consumer.Sync cb: Callback[Throwable, Notification[A]], s: Scheduler): (Subscriber.Sync[A], AssignableCancelable) = { val out = new Subscriber.Sync[A] { - implicit val scheduler = s + implicit val scheduler: Scheduler = s private[this] var isDone = false def onNext(elem: A): Ack = { diff --git a/monix-reactive/shared/src/main/scala/monix/reactive/internal/consumers/FoldLeftConsumer.scala b/monix-reactive/shared/src/main/scala/monix/reactive/internal/consumers/FoldLeftConsumer.scala index 9ee45755c..9afa8762c 100644 --- a/monix-reactive/shared/src/main/scala/monix/reactive/internal/consumers/FoldLeftConsumer.scala +++ b/monix-reactive/shared/src/main/scala/monix/reactive/internal/consumers/FoldLeftConsumer.scala @@ -30,7 +30,7 @@ private[reactive] final class FoldLeftConsumer[A, R](initial: () => R, f: (R, A) def createSubscriber(cb: Callback[Throwable, R], s: Scheduler): (Subscriber.Sync[A], AssignableCancelable) = { val out = new Subscriber.Sync[A] { - implicit val scheduler = s + implicit val scheduler: Scheduler = s private[this] var isDone = false private[this] var state = initial() diff --git a/monix-reactive/shared/src/main/scala/monix/reactive/internal/consumers/FoldLeftTaskConsumer.scala b/monix-reactive/shared/src/main/scala/monix/reactive/internal/consumers/FoldLeftTaskConsumer.scala index 10406dda5..bbab2864d 100644 --- a/monix-reactive/shared/src/main/scala/monix/reactive/internal/consumers/FoldLeftTaskConsumer.scala +++ b/monix-reactive/shared/src/main/scala/monix/reactive/internal/consumers/FoldLeftTaskConsumer.scala @@ -36,7 +36,7 @@ private[reactive] final class FoldLeftTaskConsumer[A, R](initial: () => R, f: (R var lastCancelable = Cancelable.empty val out = new Subscriber[A] { - implicit val scheduler = s + implicit val scheduler: Scheduler = s private[this] var state = initial() diff --git a/monix-reactive/shared/src/main/scala/monix/reactive/internal/consumers/ForeachAsyncConsumer.scala b/monix-reactive/shared/src/main/scala/monix/reactive/internal/consumers/ForeachAsyncConsumer.scala index 1acc33643..e87d2e47a 100644 --- a/monix-reactive/shared/src/main/scala/monix/reactive/internal/consumers/ForeachAsyncConsumer.scala +++ b/monix-reactive/shared/src/main/scala/monix/reactive/internal/consumers/ForeachAsyncConsumer.scala @@ -35,7 +35,7 @@ private[reactive] final class ForeachAsyncConsumer[A](f: A => Task[Unit]) extend var lastCancelable = Cancelable.empty val out = new Subscriber[A] { - implicit val scheduler = s + implicit val scheduler: Scheduler = s def onNext(elem: A): Future[Ack] = { try { diff --git a/monix-reactive/shared/src/main/scala/monix/reactive/internal/consumers/ForeachConsumer.scala b/monix-reactive/shared/src/main/scala/monix/reactive/internal/consumers/ForeachConsumer.scala index ccb05ef49..580ea1b2e 100644 --- a/monix-reactive/shared/src/main/scala/monix/reactive/internal/consumers/ForeachConsumer.scala +++ b/monix-reactive/shared/src/main/scala/monix/reactive/internal/consumers/ForeachConsumer.scala @@ -30,7 +30,7 @@ private[reactive] final class ForeachConsumer[A](f: A => Unit) extends Consumer. def createSubscriber(cb: Callback[Throwable, Unit], s: Scheduler): (Subscriber.Sync[A], AssignableCancelable) = { val out = new Subscriber.Sync[A] { - implicit val scheduler = s + implicit val scheduler: Scheduler = s private[this] var isDone = false def onNext(elem: A): Ack = { diff --git a/monix-reactive/shared/src/main/scala/monix/reactive/internal/consumers/FromObserverConsumer.scala b/monix-reactive/shared/src/main/scala/monix/reactive/internal/consumers/FromObserverConsumer.scala index ffea42a40..788b86c3f 100644 --- a/monix-reactive/shared/src/main/scala/monix/reactive/internal/consumers/FromObserverConsumer.scala +++ b/monix-reactive/shared/src/main/scala/monix/reactive/internal/consumers/FromObserverConsumer.scala @@ -39,7 +39,7 @@ private[reactive] final class FromObserverConsumer[In](f: Scheduler => Observer[ case Success(out) => val sub = new Subscriber[In] { self => - implicit val scheduler = s + implicit val scheduler: Scheduler = s private[this] val isDone = Atomic(false) private def signal(ex: Throwable): Unit = diff --git a/monix-reactive/shared/src/main/scala/monix/reactive/internal/consumers/HeadConsumer.scala b/monix-reactive/shared/src/main/scala/monix/reactive/internal/consumers/HeadConsumer.scala index a008c3e1e..af36402e5 100644 --- a/monix-reactive/shared/src/main/scala/monix/reactive/internal/consumers/HeadConsumer.scala +++ b/monix-reactive/shared/src/main/scala/monix/reactive/internal/consumers/HeadConsumer.scala @@ -30,7 +30,7 @@ private[reactive] final class HeadConsumer[A] extends Consumer.Sync[A, A] { cb: Callback[Throwable, A], s: Scheduler): (Subscriber.Sync[A], AssignableCancelable) = { val out = new Subscriber.Sync[A] { - implicit val scheduler = s + implicit val scheduler: Scheduler = s private[this] var isDone = false def onNext(elem: A): Ack = { diff --git a/monix-reactive/shared/src/main/scala/monix/reactive/internal/consumers/HeadOptionConsumer.scala b/monix-reactive/shared/src/main/scala/monix/reactive/internal/consumers/HeadOptionConsumer.scala index b649b9063..fdc3ade8c 100644 --- a/monix-reactive/shared/src/main/scala/monix/reactive/internal/consumers/HeadOptionConsumer.scala +++ b/monix-reactive/shared/src/main/scala/monix/reactive/internal/consumers/HeadOptionConsumer.scala @@ -30,7 +30,7 @@ private[reactive] final class HeadOptionConsumer[A] extends Consumer.Sync[A, Opt cb: Callback[Throwable, Option[A]], s: Scheduler): (Subscriber.Sync[A], AssignableCancelable) = { val out = new Subscriber.Sync[A] { - implicit val scheduler = s + implicit val scheduler: Scheduler = s private[this] var isDone = false def onNext(elem: A): Ack = { diff --git a/monix-reactive/shared/src/main/scala/monix/reactive/internal/consumers/LoadBalanceConsumer.scala b/monix-reactive/shared/src/main/scala/monix/reactive/internal/consumers/LoadBalanceConsumer.scala index 78c87af4c..16925da3b 100644 --- a/monix-reactive/shared/src/main/scala/monix/reactive/internal/consumers/LoadBalanceConsumer.scala +++ b/monix-reactive/shared/src/main/scala/monix/reactive/internal/consumers/LoadBalanceConsumer.scala @@ -48,7 +48,7 @@ private[reactive] final class LoadBalanceConsumer[-In, R](parallelism: Int, cons val mainCancelable = SingleAssignCancelable() val balanced = new Subscriber[In] { self => - implicit val scheduler = s + implicit val scheduler: Scheduler = s // Trying to prevent contract violations, once this turns // true, then no final events are allowed to happen. diff --git a/monix-reactive/shared/src/main/scala/monix/reactive/internal/consumers/MapTaskConsumer.scala b/monix-reactive/shared/src/main/scala/monix/reactive/internal/consumers/MapTaskConsumer.scala index 78731af5a..b5dbc1411 100644 --- a/monix-reactive/shared/src/main/scala/monix/reactive/internal/consumers/MapTaskConsumer.scala +++ b/monix-reactive/shared/src/main/scala/monix/reactive/internal/consumers/MapTaskConsumer.scala @@ -38,7 +38,7 @@ private[reactive] final class MapTaskConsumer[In, R, R2](source: Consumer[In, R] // Forcing async boundary, otherwise we might // end up with stack-overflows or other problems def run(): Unit = { - implicit val scheduler = s + implicit val scheduler: Scheduler = s // For protecting the contract, as if a call was already made to // `onSuccess`, then we can't call `onError` var streamErrors = true diff --git a/monix-reactive/shared/src/main/scala/monix/reactive/internal/consumers/RaiseErrorConsumer.scala b/monix-reactive/shared/src/main/scala/monix/reactive/internal/consumers/RaiseErrorConsumer.scala index 5f2f8bb5c..f2c799260 100644 --- a/monix-reactive/shared/src/main/scala/monix/reactive/internal/consumers/RaiseErrorConsumer.scala +++ b/monix-reactive/shared/src/main/scala/monix/reactive/internal/consumers/RaiseErrorConsumer.scala @@ -29,7 +29,7 @@ private[reactive] final class RaiseErrorConsumer(ex: Throwable) extends Consumer def createSubscriber(cb: Callback[Throwable, Nothing], s: Scheduler): (Subscriber.Sync[Any], AssignableCancelable) = { val out = new Subscriber.Sync[Any] { - implicit val scheduler = s + implicit val scheduler: Scheduler = s def onNext(elem: Any): Ack = Stop def onComplete(): Unit = () def onError(ex: Throwable): Unit = scheduler.reportFailure(ex) diff --git a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/BufferSlidingOperator.scala b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/BufferSlidingOperator.scala index dd8ce185e..e46bca376 100644 --- a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/BufferSlidingOperator.scala +++ b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/BufferSlidingOperator.scala @@ -17,10 +17,11 @@ package monix.reactive.internal.operators -import monix.execution.Ack +import monix.execution.{Ack, Scheduler} import monix.execution.Ack.{Continue, Stop} import monix.reactive.Observable.Operator import monix.reactive.observers.Subscriber + import scala.concurrent.Future import monix.execution.compat.internal.toSeq @@ -31,7 +32,7 @@ private[reactive] final class BufferSlidingOperator[A](count: Int, skip: Int) ex def apply(out: Subscriber[Seq[A]]): Subscriber[A] = new Subscriber[A] { - implicit val scheduler = out.scheduler + implicit val scheduler: Scheduler = out.scheduler private[this] var isDone = false private[this] var ack: Future[Ack] = _ diff --git a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/BufferTimedObservable.scala b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/BufferTimedObservable.scala index 16b6e7861..e2bee124a 100644 --- a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/BufferTimedObservable.scala +++ b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/BufferTimedObservable.scala @@ -18,10 +18,9 @@ package monix.reactive.internal.operators import java.util.concurrent.TimeUnit - import monix.execution.Ack.{Continue, Stop} import monix.execution.cancelables.{CompositeCancelable, MultiAssignCancelable} -import monix.execution.{Ack, Cancelable} +import monix.execution.{Ack, Cancelable, Scheduler} import monix.reactive.Observable import monix.reactive.observers.Subscriber @@ -39,7 +38,7 @@ private[reactive] final class BufferTimedObservable[+A](source: Observable[A], t val periodicTask = MultiAssignCancelable() val connection = source.unsafeSubscribeFn(new Subscriber[A] with Runnable { self => - implicit val scheduler = out.scheduler + implicit val scheduler: Scheduler = out.scheduler private[this] val timespanMillis = timespan.toMillis // MUST BE synchronized by `self` diff --git a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/BufferWhileOperator.scala b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/BufferWhileOperator.scala index 14c08f10f..08a4f7862 100644 --- a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/BufferWhileOperator.scala +++ b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/BufferWhileOperator.scala @@ -17,7 +17,7 @@ package monix.reactive.internal.operators -import monix.execution.Ack +import monix.execution.{Ack, Scheduler} import monix.execution.Ack.{Continue, Stop} import monix.reactive.Observable.Operator import monix.reactive.observers.Subscriber @@ -29,7 +29,7 @@ import scala.util.control.NonFatal private[reactive] final class BufferWhileOperator[A](p: A => Boolean, inclusive: Boolean) extends Operator[A, Seq[A]] { def apply(out: Subscriber[Seq[A]]): Subscriber[A] = new Subscriber[A] { - implicit val scheduler = out.scheduler + implicit val scheduler: Scheduler = out.scheduler private[this] var isDone = false private[this] var ack: Future[Ack] = Continue diff --git a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/BufferWithSelectorObservable.scala b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/BufferWithSelectorObservable.scala index 2261a09db..981db6e05 100644 --- a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/BufferWithSelectorObservable.scala +++ b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/BufferWithSelectorObservable.scala @@ -19,9 +19,10 @@ package monix.reactive.internal.operators import monix.execution.Ack.{Continue, Stop} import monix.execution.cancelables.{CompositeCancelable, SingleAssignCancelable} -import monix.execution.{Ack, Cancelable} +import monix.execution.{Ack, Cancelable, Scheduler} import monix.reactive.Observable import monix.reactive.observers.Subscriber + import scala.collection.mutable.ListBuffer import scala.concurrent.{Future, Promise} @@ -38,7 +39,7 @@ private[reactive] final class BufferWithSelectorObservable[+A, S]( val composite = CompositeCancelable(upstreamSubscription, samplerSubscription) upstreamSubscription := source.unsafeSubscribeFn(new Subscriber[A] { upstreamSubscriber => - implicit val scheduler = downstream.scheduler + implicit val scheduler: Scheduler = downstream.scheduler // MUST BE synchronized by `self` private[this] var buffer = ListBuffer.empty[A] @@ -82,7 +83,7 @@ private[reactive] final class BufferWithSelectorObservable[+A, S]( } samplerSubscription := sampler.unsafeSubscribeFn(new Subscriber[S] { - implicit val scheduler = downstream.scheduler + implicit val scheduler: Scheduler = downstream.scheduler def onNext(elem: S): Future[Ack] = upstreamSubscriber.synchronized(signalNext()) diff --git a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/CollectOperator.scala b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/CollectOperator.scala index 7d9be1573..8b1c8b1dc 100644 --- a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/CollectOperator.scala +++ b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/CollectOperator.scala @@ -17,11 +17,13 @@ package monix.reactive.internal.operators -import monix.execution.Ack +import monix.execution.{Ack, Scheduler} import monix.execution.Ack.{Continue, Stop} + import scala.util.control.NonFatal import monix.reactive.Observable.Operator import monix.reactive.observers.Subscriber + import scala.concurrent.Future private[reactive] final class CollectOperator[-A, +B](pf: PartialFunction[A, B]) extends Operator[A, B] { @@ -30,7 +32,7 @@ private[reactive] final class CollectOperator[-A, +B](pf: PartialFunction[A, B]) def apply(out: Subscriber[B]): Subscriber[A] = { new Subscriber[A] { - implicit val scheduler = out.scheduler + implicit val scheduler: Scheduler = out.scheduler private[this] var isDone = false def onNext(elem: A): Future[Ack] = { diff --git a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/CollectWhileOperator.scala b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/CollectWhileOperator.scala index 59490d6e4..a0e36a517 100644 --- a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/CollectWhileOperator.scala +++ b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/CollectWhileOperator.scala @@ -17,7 +17,7 @@ package monix.reactive.internal.operators -import monix.execution.Ack +import monix.execution.{Ack, Scheduler} import monix.execution.Ack.Stop import scala.util.control.NonFatal @@ -31,7 +31,7 @@ private[reactive] final class CollectWhileOperator[-A, +B](pf: PartialFunction[A def apply(out: Subscriber[B]): Subscriber[A] = new Subscriber[A] { - implicit val scheduler = out.scheduler + implicit val scheduler: Scheduler = out.scheduler private[this] var isActive = true def onNext(elem: A): Future[Ack] = { diff --git a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/CompletedOperator.scala b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/CompletedOperator.scala index 162f5ea1c..afb2cc932 100644 --- a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/CompletedOperator.scala +++ b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/CompletedOperator.scala @@ -18,13 +18,14 @@ package monix.reactive.internal.operators import monix.execution.Ack.Continue +import monix.execution.Scheduler import monix.reactive.Observable.Operator import monix.reactive.observers.Subscriber private[reactive] object CompletedOperator extends Operator[Any, Nothing] { def apply(out: Subscriber[Nothing]): Subscriber[Any] = new Subscriber.Sync[Any] { - implicit val scheduler = out.scheduler + implicit val scheduler: Scheduler = out.scheduler def onNext(elem: Any) = Continue def onError(ex: Throwable): Unit = out.onError(ex) def onComplete(): Unit = out.onComplete() diff --git a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/ConcatMapIterableOperator.scala b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/ConcatMapIterableOperator.scala index cfb36df26..787f8a49c 100644 --- a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/ConcatMapIterableOperator.scala +++ b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/ConcatMapIterableOperator.scala @@ -17,7 +17,7 @@ package monix.reactive.internal.operators -import monix.execution.Ack +import monix.execution.{Ack, Scheduler} import monix.execution.Ack.{Continue, Stop} import monix.reactive.Observable.Operator import monix.reactive.observers.Subscriber @@ -30,7 +30,7 @@ private[reactive] final class ConcatMapIterableOperator[-A, +B](f: A => immutabl def apply(out: Subscriber[B]): Subscriber[A] = { new Subscriber[A] { - implicit val scheduler = out.scheduler + implicit val scheduler: Scheduler = out.scheduler private[this] var isDone = false private[this] var ack: Future[Ack] = Continue diff --git a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/ConcatMapObservable.scala b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/ConcatMapObservable.scala index f269b358d..f5bf5d84c 100644 --- a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/ConcatMapObservable.scala +++ b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/ConcatMapObservable.scala @@ -24,7 +24,7 @@ import monix.execution.atomic.Atomic import monix.execution.atomic.PaddingStrategy.LeftRight128 import scala.util.control.NonFatal -import monix.execution.{Ack, Cancelable} +import monix.execution.{Ack, Cancelable, Scheduler} import monix.execution.exceptions.CompositeException import monix.reactive.Observable import monix.reactive.observers.Subscriber @@ -86,7 +86,7 @@ private[reactive] final class ConcatMapObservable[A, B]( import ConcatMapObservable.FlatMapState import ConcatMapObservable.FlatMapState._ - implicit val scheduler = out.scheduler + implicit val scheduler: Scheduler = out.scheduler // For gathering errors private[this] val errors = @@ -339,7 +339,7 @@ private[reactive] final class ConcatMapObservable[A, B]( private final class ChildSubscriber(out: Subscriber[B], asyncUpstreamAck: Promise[Ack]) extends Subscriber[B] { - implicit val scheduler = out.scheduler + implicit val scheduler: Scheduler = out.scheduler private[this] var ack: Future[Ack] = Continue // Reusable reference to stop creating function references for each `onNext` diff --git a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/ConcatObservable.scala b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/ConcatObservable.scala index e80687390..60b2a867b 100644 --- a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/ConcatObservable.scala +++ b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/ConcatObservable.scala @@ -17,7 +17,7 @@ package monix.reactive.internal.operators -import monix.execution.Ack +import monix.execution.{Ack, Scheduler} import monix.execution.Ack.Continue import monix.execution.cancelables.AssignableCancelable import monix.reactive.Observable @@ -36,7 +36,7 @@ private[reactive] final class ConcatObservable[A](lh: Observable[A], rh: Observa conn, new Subscriber[A] { private[this] var ack: Future[Ack] = Continue - implicit val scheduler = out.scheduler + implicit val scheduler: Scheduler = out.scheduler def onNext(elem: A): Future[Ack] = { ack = out.onNext(elem) diff --git a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/CountOperator.scala b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/CountOperator.scala index a245a11e2..f12c26896 100644 --- a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/CountOperator.scala +++ b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/CountOperator.scala @@ -17,16 +17,17 @@ package monix.reactive.internal.operators -import monix.execution.Ack +import monix.execution.{Ack, Scheduler} import monix.execution.Ack.Continue import monix.reactive.Observable.Operator import monix.reactive.observers.Subscriber + import scala.concurrent.Future private[reactive] object CountOperator extends Operator[Any, Long] { def apply(out: Subscriber[Long]): Subscriber[Any] = new Subscriber[Any] { - implicit val scheduler = out.scheduler + implicit val scheduler: Scheduler = out.scheduler private[this] var count = 0L def onNext(elem: Any): Future[Ack] = { diff --git a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/DebounceObservable.scala b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/DebounceObservable.scala index ebdfe5142..eade4dfc0 100644 --- a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/DebounceObservable.scala +++ b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/DebounceObservable.scala @@ -18,10 +18,9 @@ package monix.reactive.internal.operators import java.util.concurrent.TimeUnit - import monix.execution.Ack.{Continue, Stop} import monix.execution.cancelables.{CompositeCancelable, MultiAssignCancelable, SingleAssignCancelable} -import monix.execution.{Ack, Cancelable} +import monix.execution.{Ack, Cancelable, Scheduler} import monix.reactive.Observable import monix.reactive.observers.Subscriber @@ -36,7 +35,7 @@ private[reactive] final class DebounceObservable[A](source: Observable[A], timeo val composite = CompositeCancelable(mainTask, task) mainTask := source.unsafeSubscribeFn(new Subscriber.Sync[A] with Runnable { self => - implicit val scheduler = out.scheduler + implicit val scheduler: Scheduler = out.scheduler private[this] val timeoutMillis = timeout.toMillis private[this] var isDone = false diff --git a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/DefaultIfEmptyOperator.scala b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/DefaultIfEmptyOperator.scala index ccc9ec8f4..7431ba8a7 100644 --- a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/DefaultIfEmptyOperator.scala +++ b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/DefaultIfEmptyOperator.scala @@ -17,7 +17,8 @@ package monix.reactive.internal.operators -import monix.execution.Ack +import monix.execution.{Ack, Scheduler} + import scala.util.control.NonFatal import monix.reactive.Observable.Operator import monix.reactive.observers.Subscriber @@ -28,7 +29,7 @@ private[reactive] final class DefaultIfEmptyOperator[A](default: () => A) extend def apply(out: Subscriber[A]): Subscriber[A] = new Subscriber[A] { - implicit val scheduler = out.scheduler + implicit val scheduler: Scheduler = out.scheduler private[this] var isEmpty = true def onNext(elem: A): Future[Ack] = { diff --git a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/DelayBySelectorObservable.scala b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/DelayBySelectorObservable.scala index 842236e84..2153d9b82 100644 --- a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/DelayBySelectorObservable.scala +++ b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/DelayBySelectorObservable.scala @@ -19,8 +19,9 @@ package monix.reactive.internal.operators import monix.execution.Ack.{Continue, Stop} import monix.execution.cancelables.{CompositeCancelable, MultiAssignCancelable} + import scala.util.control.NonFatal -import monix.execution.{Ack, Cancelable} +import monix.execution.{Ack, Cancelable, Scheduler} import monix.reactive.Observable import monix.reactive.observers.Subscriber @@ -34,7 +35,7 @@ private[reactive] final class DelayBySelectorObservable[A, S](source: Observable val composite = CompositeCancelable(task) composite += source.unsafeSubscribeFn(new Subscriber[A] { self => - implicit val scheduler = out.scheduler + implicit val scheduler: Scheduler = out.scheduler private[this] var completeTriggered = false private[this] var isDone = false @@ -42,7 +43,7 @@ private[reactive] final class DelayBySelectorObservable[A, S](source: Observable private[this] var ack: Promise[Ack] = _ private[this] val trigger = new Subscriber.Sync[Any] { - implicit val scheduler = out.scheduler + implicit val scheduler: Scheduler = out.scheduler def onNext(elem: Any): Ack = throw new IllegalStateException def onError(ex: Throwable): Unit = self.onError(ex) def onComplete(): Unit = self.sendOnNext() diff --git a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/DelayByTimespanObservable.scala b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/DelayByTimespanObservable.scala index f1d2393a5..69cf76a89 100644 --- a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/DelayByTimespanObservable.scala +++ b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/DelayByTimespanObservable.scala @@ -18,13 +18,13 @@ package monix.reactive.internal.operators import java.util.concurrent.TimeUnit - import monix.execution.Ack.{Continue, Stop} import monix.execution.cancelables.{CompositeCancelable, MultiAssignCancelable} -import monix.execution.{Ack, Cancelable} +import monix.execution.{Ack, Cancelable, Scheduler} import monix.reactive.Observable import monix.reactive.observers.Subscriber import monix.execution.atomic.Atomic + import scala.concurrent.duration.FiniteDuration import scala.concurrent.{Future, Promise} @@ -36,7 +36,7 @@ private[reactive] final class DelayByTimespanObservable[A](source: Observable[A] val composite = CompositeCancelable(task) composite += source.unsafeSubscribeFn(new Subscriber[A] with Runnable { self => - implicit val scheduler = out.scheduler + implicit val scheduler: Scheduler = out.scheduler private[this] var hasError = false private[this] val isDone = Atomic(false) private[this] var completeTriggered = false diff --git a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/DelayExecutionWithTriggerObservable.scala b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/DelayExecutionWithTriggerObservable.scala index 97f13b3d1..5e84be659 100644 --- a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/DelayExecutionWithTriggerObservable.scala +++ b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/DelayExecutionWithTriggerObservable.scala @@ -19,9 +19,10 @@ package monix.reactive.internal.operators import monix.execution.Ack.Stop import monix.execution.cancelables.OrderedCancelable -import monix.execution.{Ack, Cancelable} +import monix.execution.{Ack, Cancelable, Scheduler} import monix.reactive.Observable import monix.reactive.observers.Subscriber + import scala.concurrent.Future private[reactive] final class DelayExecutionWithTriggerObservable[A](source: Observable[A], trigger: Observable[_]) @@ -33,7 +34,7 @@ private[reactive] final class DelayExecutionWithTriggerObservable[A](source: Obs val main = trigger .asInstanceOf[Observable[Any]] .unsafeSubscribeFn(new Subscriber[Any] { - implicit val scheduler = subscriber.scheduler + implicit val scheduler: Scheduler = subscriber.scheduler private[this] var isDone = false def onNext(elem: Any): Future[Ack] = { diff --git a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/DematerializeOperator.scala b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/DematerializeOperator.scala index 60223805b..e6d153097 100644 --- a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/DematerializeOperator.scala +++ b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/DematerializeOperator.scala @@ -17,19 +17,20 @@ package monix.reactive.internal.operators -import monix.execution.Ack +import monix.execution.{Ack, Scheduler} import monix.execution.Ack.Stop import monix.reactive.Notification import monix.reactive.Notification.{OnComplete, OnError, OnNext} import monix.reactive.Observable.Operator import monix.reactive.observers.Subscriber + import scala.concurrent.Future private[reactive] final class DematerializeOperator[A] extends Operator[Notification[A], A] { def apply(out: Subscriber[A]): Subscriber[Notification[A]] = new Subscriber[Notification[A]] { - implicit val scheduler = out.scheduler + implicit val scheduler: Scheduler = out.scheduler private[this] var isDone = false def onNext(elem: Notification[A]): Future[Ack] = { diff --git a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/DistinctUntilChangedByKeyOperator.scala b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/DistinctUntilChangedByKeyOperator.scala index d6475112a..17b598e36 100644 --- a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/DistinctUntilChangedByKeyOperator.scala +++ b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/DistinctUntilChangedByKeyOperator.scala @@ -18,7 +18,7 @@ package monix.reactive.internal.operators import cats.Eq -import monix.execution.Ack +import monix.execution.{Ack, Scheduler} import monix.execution.Ack.{Continue, Stop} import monix.reactive.Observable.Operator @@ -32,7 +32,7 @@ private[reactive] final class DistinctUntilChangedByKeyOperator[A, K](key: A => def apply(out: Subscriber[A]): Subscriber[A] = new Subscriber[A] { - implicit val scheduler = out.scheduler + implicit val scheduler: Scheduler = out.scheduler private[this] var isDone = false private[this] var isFirst = true diff --git a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/DistinctUntilChangedOperator.scala b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/DistinctUntilChangedOperator.scala index ad22f7f45..02d6761ca 100644 --- a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/DistinctUntilChangedOperator.scala +++ b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/DistinctUntilChangedOperator.scala @@ -19,6 +19,7 @@ package monix.reactive.internal.operators import cats.Eq import monix.execution.Ack.{Continue, Stop} +import monix.execution.Scheduler import scala.util.control.NonFatal import monix.reactive.Observable.Operator @@ -29,7 +30,7 @@ private[reactive] final class DistinctUntilChangedOperator[A](implicit A: Eq[A]) /** Implementation for `Observable.distinctUntilChanged`. */ def apply(out: Subscriber[A]): Subscriber[A] = new Subscriber[A] { - implicit val scheduler = out.scheduler + implicit val scheduler: Scheduler = out.scheduler private[this] var isFirst = true private[this] var lastElem: A = _ diff --git a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/DoOnCompleteOperator.scala b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/DoOnCompleteOperator.scala index 26fabb6d0..498e78546 100644 --- a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/DoOnCompleteOperator.scala +++ b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/DoOnCompleteOperator.scala @@ -18,16 +18,17 @@ package monix.reactive.internal.operators import monix.eval.Task -import monix.execution.Ack +import monix.execution.{Ack, Scheduler} import monix.reactive.Observable.Operator import monix.reactive.observers.Subscriber + import scala.concurrent.Future private[reactive] final class DoOnCompleteOperator[A](task: Task[Unit]) extends Operator[A, A] { def apply(out: Subscriber[A]): Subscriber[A] = new Subscriber[A] { - implicit val scheduler = out.scheduler + implicit val scheduler: Scheduler = out.scheduler def onNext(elem: A): Future[Ack] = out.onNext(elem) def onError(ex: Throwable): Unit = out.onError(ex) diff --git a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/DoOnEarlyStopOperator.scala b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/DoOnEarlyStopOperator.scala index 7f83ee0af..50fe3f431 100644 --- a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/DoOnEarlyStopOperator.scala +++ b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/DoOnEarlyStopOperator.scala @@ -18,9 +18,10 @@ package monix.reactive.internal.operators import monix.eval.Task -import monix.execution.Ack +import monix.execution.{Ack, Scheduler} import monix.execution.Ack.{Continue, Stop} import monix.execution.atomic.Atomic + import scala.util.control.NonFatal import monix.reactive.Observable.Operator import monix.reactive.observers.Subscriber @@ -33,7 +34,7 @@ private[reactive] final class DoOnEarlyStopOperator[A](onStop: Task[Unit]) exten def apply(out: Subscriber[A]): Subscriber[A] = new Subscriber[A] { - implicit val scheduler = out.scheduler + implicit val scheduler: Scheduler = out.scheduler private[this] val isActive = Atomic(true) def onNext(elem: A): Future[Ack] = { diff --git a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/DoOnErrorOperator.scala b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/DoOnErrorOperator.scala index 8277357a6..d72501b0a 100644 --- a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/DoOnErrorOperator.scala +++ b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/DoOnErrorOperator.scala @@ -18,17 +18,19 @@ package monix.reactive.internal.operators import monix.eval.Task -import monix.execution.Ack +import monix.execution.{Ack, Scheduler} + import scala.util.control.NonFatal import monix.reactive.Observable.Operator import monix.reactive.observers.Subscriber + import scala.concurrent.Future private[reactive] final class DoOnErrorOperator[A](cb: Throwable => Task[Unit]) extends Operator[A, A] { def apply(out: Subscriber[A]): Subscriber[A] = new Subscriber[A] { - implicit val scheduler = out.scheduler + implicit val scheduler: Scheduler = out.scheduler def onNext(elem: A): Future[Ack] = out.onNext(elem) def onComplete(): Unit = out.onComplete() diff --git a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/DoOnNextAckOperator.scala b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/DoOnNextAckOperator.scala index 47b95338c..f2a42dd0e 100644 --- a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/DoOnNextAckOperator.scala +++ b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/DoOnNextAckOperator.scala @@ -18,7 +18,7 @@ package monix.reactive.internal.operators import monix.eval.Task -import monix.execution.Ack +import monix.execution.{Ack, Scheduler} import monix.execution.Ack.Stop import monix.execution.atomic.Atomic import monix.reactive.Observable.Operator @@ -31,7 +31,7 @@ private[reactive] final class DoOnNextAckOperator[A](cb: (A, Ack) => Task[Unit]) def apply(out: Subscriber[A]): Subscriber[A] = new Subscriber[A] { self => - implicit val scheduler = out.scheduler + implicit val scheduler: Scheduler = out.scheduler private[this] val isActive = Atomic(true) def onNext(elem: A): Future[Ack] = { diff --git a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/DoOnStartOperator.scala b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/DoOnStartOperator.scala index 5c28f3928..ffe8e958b 100644 --- a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/DoOnStartOperator.scala +++ b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/DoOnStartOperator.scala @@ -18,7 +18,7 @@ package monix.reactive.internal.operators import monix.eval.Task -import monix.execution.Ack +import monix.execution.{Ack, Scheduler} import monix.execution.Ack.Stop import monix.reactive.Observable.Operator import monix.reactive.observers.Subscriber @@ -30,7 +30,7 @@ private[reactive] final class DoOnStartOperator[A](cb: A => Task[Unit]) extends def apply(out: Subscriber[A]): Subscriber[A] = new Subscriber[A] { - implicit val scheduler = out.scheduler + implicit val scheduler: Scheduler = out.scheduler private[this] var isDone = false private[this] var isStart = true diff --git a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/DoOnSubscribeObservable.scala b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/DoOnSubscribeObservable.scala index baac2494b..384581682 100644 --- a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/DoOnSubscribeObservable.scala +++ b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/DoOnSubscribeObservable.scala @@ -17,13 +17,12 @@ package monix.reactive.internal.operators -import monix.execution.Callback +import monix.execution.{Ack, Callback, Cancelable, FutureUtils, Scheduler} import monix.eval.Task import monix.execution.Ack.Stop import monix.execution.atomic.Atomic import monix.execution.cancelables.{OrderedCancelable, SingleAssignCancelable, StackedCancelable} import monix.execution.schedulers.TrampolineExecutionContext.immediate -import monix.execution.{Ack, Cancelable, FutureUtils} import monix.reactive.Observable import monix.reactive.observers.Subscriber @@ -56,12 +55,12 @@ private[reactive] object DoOnSubscribeObservable { // Implementation for doAfterSubscribe final class After[+A](source: Observable[A], task: Task[Unit]) extends Observable[A] { def unsafeSubscribeFn(out: Subscriber[A]): Cancelable = { - implicit val scheduler = out.scheduler + implicit val scheduler: Scheduler = out.scheduler val p = Promise[Unit]() val cancelable = source.unsafeSubscribeFn( new Subscriber[A] { - implicit val scheduler = out.scheduler + implicit val scheduler: Scheduler = out.scheduler private[this] val completeGuard = Atomic(true) private[this] var isActive = false diff --git a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/DoOnTerminateOperator.scala b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/DoOnTerminateOperator.scala index 314a62833..bb985698b 100644 --- a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/DoOnTerminateOperator.scala +++ b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/DoOnTerminateOperator.scala @@ -17,15 +17,16 @@ package monix.reactive.internal.operators -import monix.execution.Callback +import monix.execution.{Ack, Callback, Scheduler} import monix.eval.Task -import monix.execution.Ack import monix.execution.Ack.{Continue, Stop} import monix.execution.atomic.Atomic + import scala.util.control.NonFatal import monix.reactive.internal.util.Instances._ import monix.reactive.Observable.Operator import monix.reactive.observers.Subscriber + import scala.concurrent.Future import scala.util.Success @@ -39,7 +40,7 @@ private[reactive] final class DoOnTerminateOperator[A]( // Wrapping in a cancelable in order to protect it from // being called multiple times private[this] val active = Atomic(true) - implicit val scheduler = out.scheduler + implicit val scheduler: Scheduler = out.scheduler def onNext(elem: A): Future[Ack] = { val result = diff --git a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/DropByPredicateOperator.scala b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/DropByPredicateOperator.scala index 954f3b244..35e0fcb57 100644 --- a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/DropByPredicateOperator.scala +++ b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/DropByPredicateOperator.scala @@ -17,18 +17,20 @@ package monix.reactive.internal.operators -import monix.execution.Ack +import monix.execution.{Ack, Scheduler} import monix.execution.Ack.{Continue, Stop} + import scala.util.control.NonFatal import monix.reactive.Observable.Operator import monix.reactive.observers.Subscriber + import scala.concurrent.Future private[reactive] final class DropByPredicateOperator[A](p: A => Boolean, inclusive: Boolean) extends Operator[A, A] { def apply(out: Subscriber[A]): Subscriber[A] = new Subscriber[A] { - implicit val scheduler = out.scheduler + implicit val scheduler: Scheduler = out.scheduler private[this] var continueDropping = true private[this] var isDone = false diff --git a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/DropByPredicateWithIndexOperator.scala b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/DropByPredicateWithIndexOperator.scala index 250b5754e..5dc572b1b 100644 --- a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/DropByPredicateWithIndexOperator.scala +++ b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/DropByPredicateWithIndexOperator.scala @@ -18,6 +18,8 @@ package monix.reactive.internal.operators import monix.execution.Ack.{Continue, Stop} +import monix.execution.Scheduler + import scala.util.control.NonFatal import monix.reactive.Observable.Operator import monix.reactive.observers.Subscriber @@ -26,7 +28,7 @@ private[reactive] final class DropByPredicateWithIndexOperator[A](p: (A, Int) => def apply(out: Subscriber[A]): Subscriber[A] = new Subscriber[A] { - implicit val scheduler = out.scheduler + implicit val scheduler: Scheduler = out.scheduler private[this] var continueDropping = true private[this] var index = 0 private[this] var isDone = false diff --git a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/DropByTimespanObservable.scala b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/DropByTimespanObservable.scala index 60fc1adbc..fbfbcf38a 100644 --- a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/DropByTimespanObservable.scala +++ b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/DropByTimespanObservable.scala @@ -19,9 +19,10 @@ package monix.reactive.internal.operators import monix.execution.Ack.Continue import monix.execution.cancelables.{CompositeCancelable, SingleAssignCancelable} -import monix.execution.{Ack, Cancelable} +import monix.execution.{Ack, Cancelable, Scheduler} import monix.reactive.Observable import monix.reactive.observers.Subscriber + import scala.concurrent.Future import scala.concurrent.duration.FiniteDuration @@ -33,7 +34,7 @@ private[reactive] final class DropByTimespanObservable[A](source: Observable[A], val composite = CompositeCancelable(trigger) composite += source.unsafeSubscribeFn(new Subscriber[A] with Runnable { self => - implicit val scheduler = out.scheduler + implicit val scheduler: Scheduler = out.scheduler @volatile private[this] var shouldDrop = true locally { diff --git a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/DropFirstOperator.scala b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/DropFirstOperator.scala index ea41cdc6b..c8d1529a8 100644 --- a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/DropFirstOperator.scala +++ b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/DropFirstOperator.scala @@ -18,6 +18,7 @@ package monix.reactive.internal.operators import monix.execution.Ack.Continue +import monix.execution.Scheduler import monix.reactive.Observable.Operator import monix.reactive.observers.Subscriber @@ -25,7 +26,7 @@ private[reactive] final class DropFirstOperator[A](nr: Long) extends Operator[A, def apply(out: Subscriber[A]): Subscriber[A] = new Subscriber[A] { - implicit val scheduler = out.scheduler + implicit val scheduler: Scheduler = out.scheduler private[this] var count = 0L def onNext(elem: A) = { diff --git a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/DropLastOperator.scala b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/DropLastOperator.scala index 5ba96af44..f7e7b2b84 100644 --- a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/DropLastOperator.scala +++ b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/DropLastOperator.scala @@ -17,10 +17,11 @@ package monix.reactive.internal.operators -import monix.execution.Ack +import monix.execution.{Ack, Scheduler} import monix.execution.Ack.Continue import monix.reactive.Observable.Operator import monix.reactive.observers.Subscriber + import scala.collection.mutable import scala.concurrent.Future @@ -30,7 +31,7 @@ private[reactive] final class DropLastOperator[A](n: Int) extends Operator[A, A] def apply(out: Subscriber[A]): Subscriber[A] = new Subscriber[A] { - implicit val scheduler = out.scheduler + implicit val scheduler: Scheduler = out.scheduler private[this] var queue = mutable.Queue.empty[A] private[this] var length = 0 diff --git a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/DropUntilObservable.scala b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/DropUntilObservable.scala index fa4f8a9e2..b92304fa5 100644 --- a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/DropUntilObservable.scala +++ b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/DropUntilObservable.scala @@ -19,9 +19,10 @@ package monix.reactive.internal.operators import monix.execution.Ack.{Continue, Stop} import monix.execution.cancelables.{CompositeCancelable, SingleAssignCancelable} -import monix.execution.{Ack, Cancelable} +import monix.execution.{Ack, Cancelable, Scheduler} import monix.reactive.Observable import monix.reactive.observers.Subscriber + import scala.concurrent.Future private[reactive] final class DropUntilObservable[A](source: Observable[A], trigger: Observable[Any]) @@ -32,7 +33,7 @@ private[reactive] final class DropUntilObservable[A](source: Observable[A], trig val composite = CompositeCancelable(task) composite += source.unsafeSubscribeFn(new Subscriber[A] { - implicit val scheduler = out.scheduler + implicit val scheduler: Scheduler = out.scheduler private[this] var isActive = true private[this] var errorThrown: Throwable = null @@ -47,7 +48,7 @@ private[reactive] final class DropUntilObservable[A](source: Observable[A], trig locally { task := trigger.unsafeSubscribeFn(new Subscriber.Sync[Any] { - implicit val scheduler = out.scheduler + implicit val scheduler: Scheduler = out.scheduler def onNext(elem: Any) = interruptDropMode(null) def onComplete(): Unit = { interruptDropMode(null); () } def onError(ex: Throwable): Unit = { interruptDropMode(ex); () } diff --git a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/DumpObservable.scala b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/DumpObservable.scala index e338bc138..19d018daa 100644 --- a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/DumpObservable.scala +++ b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/DumpObservable.scala @@ -18,9 +18,8 @@ package monix.reactive.internal.operators import java.io.PrintStream - import scala.util.control.NonFatal -import monix.execution.{Ack, Cancelable} +import monix.execution.{Ack, Cancelable, Scheduler} import monix.reactive.Observable import monix.reactive.observers.Subscriber @@ -33,7 +32,7 @@ private[reactive] final class DumpObservable[A](source: Observable[A], prefix: S var pos = 0 val upstream = source.unsafeSubscribeFn(new Subscriber[A] { - implicit val scheduler = subscriber.scheduler + implicit val scheduler: Scheduler = subscriber.scheduler private[this] val downstreamActive = Cancelable { () => pos += 1 diff --git a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/EchoObservable.scala b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/EchoObservable.scala index 566b049c1..aa085d756 100644 --- a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/EchoObservable.scala +++ b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/EchoObservable.scala @@ -18,10 +18,9 @@ package monix.reactive.internal.operators import java.util.concurrent.TimeUnit - import monix.execution.Ack.{Continue, Stop} import monix.execution.cancelables.{CompositeCancelable, MultiAssignCancelable, SingleAssignCancelable} -import monix.execution.{Ack, Cancelable} +import monix.execution.{Ack, Cancelable, Scheduler} import monix.reactive.Observable import monix.reactive.observers.Subscriber @@ -40,7 +39,7 @@ private[reactive] final class EchoObservable[+A](source: Observable[A], timeout: val composite = CompositeCancelable(mainTask, task) mainTask := source.unsafeSubscribeFn(new Subscriber[A] with Runnable { self => - implicit val scheduler = out.scheduler + implicit val scheduler: Scheduler = out.scheduler private[this] var ack: Future[Ack] = Continue private[this] var lastEvent: A = _ diff --git a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/EndWithErrorOperator.scala b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/EndWithErrorOperator.scala index e8bb9e393..d01907fef 100644 --- a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/EndWithErrorOperator.scala +++ b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/EndWithErrorOperator.scala @@ -17,16 +17,17 @@ package monix.reactive.internal.operators -import monix.execution.Ack +import monix.execution.{Ack, Scheduler} import monix.reactive.Observable.Operator import monix.reactive.observers.Subscriber + import scala.concurrent.Future private[reactive] final class EndWithErrorOperator[A](error: Throwable) extends Operator[A, A] { def apply(out: Subscriber[A]): Subscriber[A] = new Subscriber[A] { - implicit val scheduler = out.scheduler + implicit val scheduler: Scheduler = out.scheduler def onNext(elem: A): Future[Ack] = out.onNext(elem) def onError(ex: Throwable): Unit = out.onError(ex) def onComplete(): Unit = out.onError(error) diff --git a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/FailedOperator.scala b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/FailedOperator.scala index 0676a8815..0dfa02898 100644 --- a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/FailedOperator.scala +++ b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/FailedOperator.scala @@ -18,13 +18,14 @@ package monix.reactive.internal.operators import monix.execution.Ack.Continue +import monix.execution.Scheduler import monix.reactive.Observable.Operator import monix.reactive.observers.Subscriber private[reactive] object FailedOperator extends Operator[Any, Throwable] { def apply(out: Subscriber[Throwable]): Subscriber[Any] = new Subscriber.Sync[Any] { - implicit val scheduler = out.scheduler + implicit val scheduler: Scheduler = out.scheduler def onNext(elem: Any) = Continue def onComplete(): Unit = out.onComplete() def onError(ex: Throwable): Unit = { diff --git a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/FilterOperator.scala b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/FilterOperator.scala index 2bdbd8c47..e7d26131d 100644 --- a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/FilterOperator.scala +++ b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/FilterOperator.scala @@ -18,6 +18,8 @@ package monix.reactive.internal.operators import monix.execution.Ack.{Continue, Stop} +import monix.execution.Scheduler + import scala.util.control.NonFatal import monix.reactive.Observable.Operator import monix.reactive.observers.Subscriber @@ -26,7 +28,7 @@ private[reactive] final class FilterOperator[A](p: A => Boolean) extends Operato def apply(out: Subscriber[A]): Subscriber[A] = new Subscriber[A] { - implicit val scheduler = out.scheduler + implicit val scheduler: Scheduler = out.scheduler private[this] var isDone = false def onNext(elem: A) = { diff --git a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/FlatScanObservable.scala b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/FlatScanObservable.scala index e7c247361..6bbdd9dc9 100644 --- a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/FlatScanObservable.scala +++ b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/FlatScanObservable.scala @@ -20,8 +20,9 @@ package monix.reactive.internal.operators import monix.execution.Ack.{Continue, Stop} import monix.execution.atomic.Atomic import monix.execution.atomic.PaddingStrategy.LeftRight128 + import scala.util.control.NonFatal -import monix.execution.{Ack, Cancelable} +import monix.execution.{Ack, Cancelable, Scheduler} import monix.execution.exceptions.CompositeException import monix.reactive.Observable import monix.reactive.observers.Subscriber @@ -71,7 +72,7 @@ private[reactive] final class FlatScanObservable[A, R]( import ConcatMapObservable.FlatMapState import ConcatMapObservable.FlatMapState._ - implicit val scheduler = out.scheduler + implicit val scheduler: Scheduler = out.scheduler // For gathering errors private[this] val errors = @@ -313,7 +314,7 @@ private[reactive] final class FlatScanObservable[A, R]( private final class ChildSubscriber(out: Subscriber[R], asyncUpstreamAck: Promise[Ack]) extends Subscriber[R] { - implicit val scheduler = out.scheduler + implicit val scheduler: Scheduler = out.scheduler private[this] var ack: Future[Ack] = Continue // Reusable reference to stop creating function references for each `onNext` diff --git a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/FoldLeftObservable.scala b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/FoldLeftObservable.scala index 271158303..f80170d10 100644 --- a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/FoldLeftObservable.scala +++ b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/FoldLeftObservable.scala @@ -18,8 +18,9 @@ package monix.reactive.internal.operators import monix.execution.Ack.{Continue, Stop} + import scala.util.control.NonFatal -import monix.execution.{Ack, Cancelable} +import monix.execution.{Ack, Cancelable, Scheduler} import monix.reactive.Observable import monix.reactive.observers.Subscriber @@ -33,7 +34,7 @@ private[reactive] final class FoldLeftObservable[A, R](source: Observable[A], in streamErrors = false source.unsafeSubscribeFn(new Subscriber.Sync[A] { - implicit val scheduler = out.scheduler + implicit val scheduler: Scheduler = out.scheduler private[this] var isDone = false private[this] var state: R = initialState diff --git a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/FoldWhileLeftObservable.scala b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/FoldWhileLeftObservable.scala index 7eddd29ee..6a85a5b50 100644 --- a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/FoldWhileLeftObservable.scala +++ b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/FoldWhileLeftObservable.scala @@ -18,8 +18,9 @@ package monix.reactive.internal.operators import monix.execution.Ack.{Continue, Stop} + import scala.util.control.NonFatal -import monix.execution.{Ack, Cancelable} +import monix.execution.{Ack, Cancelable, Scheduler} import monix.reactive.Observable import monix.reactive.observers.Subscriber @@ -38,7 +39,7 @@ private[reactive] final class FoldWhileLeftObservable[A, S]( streamErrors = false source.unsafeSubscribeFn(new Subscriber[A] { - implicit val scheduler = out.scheduler + implicit val scheduler: Scheduler = out.scheduler private[this] var isDone = false private[this] var state = initialState diff --git a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/IntersperseObservable.scala b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/IntersperseObservable.scala index 63eb1ea1b..516623633 100644 --- a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/IntersperseObservable.scala +++ b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/IntersperseObservable.scala @@ -18,7 +18,7 @@ package monix.reactive.internal.operators import monix.execution.Ack.Continue -import monix.execution.{Ack, Cancelable} +import monix.execution.{Ack, Cancelable, Scheduler} import monix.reactive.Observable import monix.reactive.observers.Subscriber @@ -33,7 +33,7 @@ private[reactive] final class IntersperseObservable[+A]( override def unsafeSubscribeFn(out: Subscriber[A]): Cancelable = { val upstream = source.unsafeSubscribeFn(new Subscriber[A] { - implicit val scheduler = out.scheduler + implicit val scheduler: Scheduler = out.scheduler private[this] var atLeastOne = false private[this] var downstreamAck = Continue: Future[Ack] diff --git a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/IsEmptyOperator.scala b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/IsEmptyOperator.scala index c128fe188..e3acf3398 100644 --- a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/IsEmptyOperator.scala +++ b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/IsEmptyOperator.scala @@ -17,7 +17,7 @@ package monix.reactive.internal.operators -import monix.execution.Ack +import monix.execution.{Ack, Scheduler} import monix.execution.Ack.Stop import monix.reactive.Observable.Operator import monix.reactive.observers.Subscriber @@ -25,7 +25,7 @@ import monix.reactive.observers.Subscriber private[reactive] object IsEmptyOperator extends Operator[Any, Boolean] { def apply(out: Subscriber[Boolean]): Subscriber[Any] = new Subscriber[Any] { - implicit val scheduler = out.scheduler + implicit val scheduler: Scheduler = out.scheduler private[this] var isDone = false private[this] var isEmpty = true diff --git a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/MapOperator.scala b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/MapOperator.scala index 73601bdbf..f5eb5f540 100644 --- a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/MapOperator.scala +++ b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/MapOperator.scala @@ -17,18 +17,20 @@ package monix.reactive.internal.operators -import monix.execution.Ack +import monix.execution.{Ack, Scheduler} import monix.execution.Ack.Stop + import scala.util.control.NonFatal import monix.reactive.Observable.Operator import monix.reactive.observers.Subscriber + import scala.concurrent.Future private[reactive] final class MapOperator[-A, +B](f: A => B) extends Operator[A, B] { def apply(out: Subscriber[B]): Subscriber[A] = { new Subscriber[A] { - implicit val scheduler = out.scheduler + implicit val scheduler: Scheduler = out.scheduler private[this] var isDone = false def onNext(elem: A): Future[Ack] = { diff --git a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/MapParallelOrderedObservable.scala b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/MapParallelOrderedObservable.scala index 3ff83d09d..ba1480d6e 100644 --- a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/MapParallelOrderedObservable.scala +++ b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/MapParallelOrderedObservable.scala @@ -18,13 +18,11 @@ package monix.reactive.internal.operators import java.util.concurrent.ConcurrentLinkedQueue - import monix.eval.Task import monix.execution.Ack.{Continue, Stop} import monix.execution.cancelables.CompositeCancelable -import monix.execution.AsyncSemaphore +import monix.execution.{Ack, AsyncSemaphore, Cancelable, CancelableFuture, Scheduler} import monix.execution.ChannelType.MultiProducer -import monix.execution.{Ack, Cancelable, CancelableFuture} import monix.reactive.observers.{BufferedSubscriber, Subscriber} import monix.reactive.{Observable, OverflowStrategy} @@ -57,7 +55,7 @@ private[reactive] final class MapParallelOrderedObservable[A, B]( private final class MapAsyncParallelSubscription(out: Subscriber[B], composite: CompositeCancelable) extends Subscriber[A] with Cancelable { self => - implicit val scheduler = out.scheduler + implicit val scheduler: Scheduler = out.scheduler // Ensures we don't execute more than a maximum number of tasks in parallel private[this] val semaphore = AsyncSemaphore(parallelism.toLong) // Buffer with the supplied overflow strategy. diff --git a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/MapParallelUnorderedObservable.scala b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/MapParallelUnorderedObservable.scala index 86d90ce68..1e7937bdb 100644 --- a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/MapParallelUnorderedObservable.scala +++ b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/MapParallelUnorderedObservable.scala @@ -17,7 +17,7 @@ package monix.reactive.internal.operators -import monix.execution.{Ack, AsyncSemaphore, Callback, Cancelable} +import monix.execution.{Ack, AsyncSemaphore, Callback, Cancelable, Scheduler} import monix.eval.Task import monix.execution.Ack.{Continue, Stop} import monix.execution.ChannelType.MultiProducer @@ -66,7 +66,7 @@ private[reactive] final class MapParallelUnorderedObservable[A, B]( private final class MapAsyncParallelSubscription(out: Subscriber[B], composite: CompositeCancelable) extends Subscriber[A] with Cancelable { self => - implicit val scheduler = out.scheduler + implicit val scheduler: Scheduler = out.scheduler // Ensures we don't execute more than a maximum number of tasks in parallel private[this] val semaphore = AsyncSemaphore(parallelism.toLong) // Buffer with the supplied overflow strategy. diff --git a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/MapTaskObservable.scala b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/MapTaskObservable.scala index 4e22d3dfd..a01a86e81 100644 --- a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/MapTaskObservable.scala +++ b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/MapTaskObservable.scala @@ -21,8 +21,9 @@ import monix.eval.Task import monix.execution.Ack.Stop import monix.execution.atomic.Atomic import monix.execution.atomic.PaddingStrategy.LeftRight128 + import scala.util.control.NonFatal -import monix.execution.{Ack, Cancelable} +import monix.execution.{Ack, Cancelable, Scheduler} import monix.reactive.Observable import monix.reactive.observers.Subscriber @@ -79,7 +80,7 @@ private[reactive] final class MapTaskObservable[A, B](source: Observable[A], f: import MapTaskObservable.MapTaskState import MapTaskObservable.MapTaskState._ - implicit val scheduler = out.scheduler + implicit val scheduler: Scheduler = out.scheduler // For synchronizing our internal state machine, padded // in order to avoid the false sharing problem diff --git a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/MaterializeOperator.scala b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/MaterializeOperator.scala index 9130897d6..396596d26 100644 --- a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/MaterializeOperator.scala +++ b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/MaterializeOperator.scala @@ -17,19 +17,20 @@ package monix.reactive.internal.operators -import monix.execution.Ack +import monix.execution.{Ack, Scheduler} import monix.execution.Ack.Continue import monix.reactive.Notification import monix.reactive.Notification.{OnComplete, OnError, OnNext} import monix.reactive.Observable.Operator import monix.reactive.observers.Subscriber + import scala.concurrent.Future private[reactive] final class MaterializeOperator[A] extends Operator[A, Notification[A]] { def apply(out: Subscriber[Notification[A]]): Subscriber[A] = new Subscriber[A] { - implicit val scheduler = out.scheduler + implicit val scheduler: Scheduler = out.scheduler private[this] var isDone = false private[this] var ack: Future[Ack] = Continue diff --git a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/MergeMapObservable.scala b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/MergeMapObservable.scala index 6bbda7d08..6ebf2cda9 100644 --- a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/MergeMapObservable.scala +++ b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/MergeMapObservable.scala @@ -19,12 +19,13 @@ package monix.reactive.internal.operators import monix.execution.Ack.{Continue, Stop} import monix.execution.ChannelType.MultiProducer -import monix.execution.{Ack, Cancelable} +import monix.execution.{Ack, Cancelable, Scheduler} import monix.execution.cancelables._ import monix.execution.exceptions.CompositeException import monix.reactive.observers.{BufferedSubscriber, Subscriber} import monix.reactive.{Observable, OverflowStrategy} import monix.execution.atomic.Atomic + import scala.util.control.NonFatal import scala.collection.mutable @@ -39,7 +40,7 @@ private[reactive] final class MergeMapObservable[A, B]( val composite = CompositeCancelable() composite += source.unsafeSubscribeFn(new Subscriber[A] { - implicit val scheduler = downstream.scheduler + implicit val scheduler: Scheduler = downstream.scheduler private[this] val subscriberB: Subscriber[B] = BufferedSubscriber(downstream, overflowStrategy, MultiProducer) @@ -83,7 +84,7 @@ private[reactive] final class MergeMapObservable[A, B]( composite += childTask childTask := fb.unsafeSubscribeFn(new Subscriber[B] { - implicit val scheduler = downstream.scheduler + implicit val scheduler: Scheduler = downstream.scheduler def onNext(elem: B) = { subscriberB.onNext(elem).syncOnStopOrFailure { _ => cancelUpstream(); () } diff --git a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/ObserveOnObservable.scala b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/ObserveOnObservable.scala index e7b927cdc..f7fa9be4d 100644 --- a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/ObserveOnObservable.scala +++ b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/ObserveOnObservable.scala @@ -33,7 +33,7 @@ private[reactive] final class ObserveOnObservable[+A](source: Observable[A], alt // will be listened on that specified `Scheduler` val buffer = { val ref: Subscriber[A] = new Subscriber[A] { - implicit val scheduler = altS + implicit val scheduler: Scheduler = altS def onNext(a: A) = out.onNext(a) def onError(ex: Throwable) = out.onError(ex) def onComplete() = out.onComplete() @@ -46,7 +46,7 @@ private[reactive] final class ObserveOnObservable[+A](source: Observable[A], alt // because we only want to listen to events on the specified Scheduler, // but we don't want to override the Observable's default Scheduler source.unsafeSubscribeFn(new Subscriber[A] { - implicit val scheduler = + implicit val scheduler: Scheduler = out.scheduler def onNext(elem: A): Future[Ack] = buffer.onNext(elem) diff --git a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/OnCancelTriggerErrorObservable.scala b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/OnCancelTriggerErrorObservable.scala index 1893b7f7a..86d31a603 100644 --- a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/OnCancelTriggerErrorObservable.scala +++ b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/OnCancelTriggerErrorObservable.scala @@ -18,9 +18,10 @@ package monix.reactive.internal.operators import monix.execution.Ack.{Continue, Stop} -import monix.execution.{Ack, Cancelable} +import monix.execution.{Ack, Cancelable, Scheduler} import monix.reactive.Observable import monix.reactive.observers.Subscriber + import scala.concurrent.Future import scala.concurrent.CancellationException @@ -28,7 +29,7 @@ private[reactive] final class OnCancelTriggerErrorObservable[A](source: Observab def unsafeSubscribeFn(downstream: Subscriber[A]): Cancelable = { val out: Subscriber[A] = new Subscriber[A] { self => - implicit val scheduler = downstream.scheduler + implicit val scheduler: Scheduler = downstream.scheduler private[this] var isDone = false def onNext(elem: A): Future[Ack] = diff --git a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/OnErrorRecoverWithObservable.scala b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/OnErrorRecoverWithObservable.scala index bd92f96be..7a2362874 100644 --- a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/OnErrorRecoverWithObservable.scala +++ b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/OnErrorRecoverWithObservable.scala @@ -19,8 +19,9 @@ package monix.reactive.internal.operators import monix.execution.Ack.Continue import monix.execution.cancelables.OrderedCancelable + import scala.util.control.NonFatal -import monix.execution.{Ack, Cancelable} +import monix.execution.{Ack, Cancelable, Scheduler} import monix.reactive.Observable import monix.reactive.observers.Subscriber @@ -33,7 +34,7 @@ private[reactive] final class OnErrorRecoverWithObservable[A](source: Observable val cancelable = OrderedCancelable() val main = source.unsafeSubscribeFn(new Subscriber[A] { - implicit val scheduler = out.scheduler + implicit val scheduler: Scheduler = out.scheduler private[this] var ack: Future[Ack] = Continue def onNext(elem: A) = { diff --git a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/PipeThroughObservable.scala b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/PipeThroughObservable.scala index b2b30e4ad..5450e431e 100644 --- a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/PipeThroughObservable.scala +++ b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/PipeThroughObservable.scala @@ -18,9 +18,10 @@ package monix.reactive.internal.operators import monix.execution.cancelables.SingleAssignCancelable -import monix.execution.{Ack, Cancelable} +import monix.execution.{Ack, Cancelable, Scheduler} import monix.reactive.observers.Subscriber import monix.reactive.{Observable, Pipe} + import scala.concurrent.Future private[reactive] final class PipeThroughObservable[A, B](source: Observable[A], pipe: Pipe[A, B]) @@ -32,7 +33,7 @@ private[reactive] final class PipeThroughObservable[A, B](source: Observable[A], val upstream = SingleAssignCancelable() val downstream = output.unsafeSubscribeFn(new Subscriber[B] { - implicit val scheduler = out.scheduler + implicit val scheduler: Scheduler = out.scheduler def onError(ex: Throwable) = out.onError(ex) def onComplete() = out.onComplete() diff --git a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/ReduceOperator.scala b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/ReduceOperator.scala index 71683ee8b..6aecb6bbf 100644 --- a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/ReduceOperator.scala +++ b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/ReduceOperator.scala @@ -17,18 +17,20 @@ package monix.reactive.internal.operators -import monix.execution.Ack +import monix.execution.{Ack, Scheduler} import monix.execution.Ack.{Continue, Stop} + import scala.util.control.NonFatal import monix.reactive.Observable.Operator import monix.reactive.observers.Subscriber + import scala.concurrent.Future private[reactive] final class ReduceOperator[A](op: (A, A) => A) extends Operator[A, A] { def apply(out: Subscriber[A]): Subscriber[A] = new Subscriber[A] { - implicit val scheduler = out.scheduler + implicit val scheduler: Scheduler = out.scheduler private[this] var isDone = false private[this] var state: A = _ diff --git a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/RepeatSourceObservable.scala b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/RepeatSourceObservable.scala index 34b8d94ac..fc750203a 100644 --- a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/RepeatSourceObservable.scala +++ b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/RepeatSourceObservable.scala @@ -19,10 +19,11 @@ package monix.reactive.internal.operators import monix.execution.Ack.Continue import monix.execution.cancelables.{CompositeCancelable, OrderedCancelable} -import monix.execution.{Ack, Cancelable} +import monix.execution.{Ack, Cancelable, Scheduler} import monix.reactive.Observable import monix.reactive.observers.Subscriber import monix.reactive.subjects.{ReplaySubject, Subject} + import scala.concurrent.Future import scala.util.Success @@ -33,7 +34,7 @@ private[reactive] final class RepeatSourceObservable[A](source: Observable[A]) e def loop(subject: Subject[A, A], out: Subscriber[A], task: OrderedCancelable, index: Long): Unit = { val cancelable = subject.unsafeSubscribeFn(new Subscriber[A] { - implicit val scheduler = out.scheduler + implicit val scheduler: Scheduler = out.scheduler private[this] var isEmpty = true private[this] var isDone = false private[this] var ack: Future[Ack] = Continue diff --git a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/ScanObservable.scala b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/ScanObservable.scala index 0741d6291..ce0460f31 100644 --- a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/ScanObservable.scala +++ b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/ScanObservable.scala @@ -18,8 +18,9 @@ package monix.reactive.internal.operators import monix.execution.Ack.Stop + import scala.util.control.NonFatal -import monix.execution.{Ack, Cancelable} +import monix.execution.{Ack, Cancelable, Scheduler} import monix.reactive.Observable import monix.reactive.observers.Subscriber @@ -36,7 +37,7 @@ private[reactive] final class ScanObservable[A, R](source: Observable[A], initia // Initial state was evaluated, subscribing to source source.unsafeSubscribeFn(new Subscriber[A] { - implicit val scheduler = out.scheduler + implicit val scheduler: Scheduler = out.scheduler private[this] var isDone = false private[this] var state = initialState diff --git a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/ScanTaskObservable.scala b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/ScanTaskObservable.scala index 7631327ae..1f40d9bcb 100644 --- a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/ScanTaskObservable.scala +++ b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/ScanTaskObservable.scala @@ -17,16 +17,17 @@ package monix.reactive.internal.operators -import monix.execution.Callback +import monix.execution.{Ack, Callback, Cancelable, Scheduler} import monix.eval.Task import monix.execution.Ack.Stop import monix.execution.atomic.Atomic import monix.execution.atomic.PaddingStrategy.LeftRight128 import monix.execution.cancelables.OrderedCancelable + import scala.util.control.NonFatal -import monix.execution.{Ack, Cancelable} import monix.reactive.Observable import monix.reactive.observers.Subscriber + import scala.annotation.tailrec import scala.concurrent.Future @@ -66,7 +67,7 @@ private[reactive] final class ScanTaskObservable[A, S](source: Observable[A], se import MapTaskObservable.MapTaskState import MapTaskObservable.MapTaskState._ - implicit val scheduler = out.scheduler + implicit val scheduler: Scheduler = out.scheduler // For synchronizing our internal state machine, padded // in order to avoid the false sharing problem diff --git a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/SearchByOrderOperator.scala b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/SearchByOrderOperator.scala index 27ba85904..8605915bf 100644 --- a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/SearchByOrderOperator.scala +++ b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/SearchByOrderOperator.scala @@ -18,7 +18,7 @@ package monix.reactive.internal.operators import cats.Order -import monix.execution.Ack +import monix.execution.{Ack, Scheduler} import monix.execution.Ack.{Continue, Stop} import scala.util.control.NonFatal @@ -34,7 +34,7 @@ private[reactive] abstract class SearchByOrderOperator[A, K](key: A => K)(implic final def apply(out: Subscriber[A]): Subscriber.Sync[A] = new Subscriber.Sync[A] { - implicit val scheduler = out.scheduler + implicit val scheduler: Scheduler = out.scheduler private[this] var isDone = false private[this] var minValue: A = _ diff --git a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/SwitchIfEmptyObservable.scala b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/SwitchIfEmptyObservable.scala index ff60e866f..d0ec0fec8 100644 --- a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/SwitchIfEmptyObservable.scala +++ b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/SwitchIfEmptyObservable.scala @@ -18,9 +18,10 @@ package monix.reactive.internal.operators import monix.execution.cancelables.OrderedCancelable -import monix.execution.{Ack, Cancelable} +import monix.execution.{Ack, Cancelable, Scheduler} import monix.reactive.Observable import monix.reactive.observers.Subscriber + import scala.concurrent.Future private[reactive] final class SwitchIfEmptyObservable[+A](source: Observable[A], backup: Observable[A]) @@ -30,7 +31,7 @@ private[reactive] final class SwitchIfEmptyObservable[+A](source: Observable[A], val cancelable = OrderedCancelable() val mainSub = source.unsafeSubscribeFn(new Subscriber[A] { - implicit val scheduler = out.scheduler + implicit val scheduler: Scheduler = out.scheduler private[this] var isEmpty = true def onNext(elem: A): Future[Ack] = { diff --git a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/SwitchMapObservable.scala b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/SwitchMapObservable.scala index e9b531033..1472bfc5d 100644 --- a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/SwitchMapObservable.scala +++ b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/SwitchMapObservable.scala @@ -19,8 +19,9 @@ package monix.reactive.internal.operators import monix.execution.Ack.{Continue, Stop} import monix.execution.cancelables.{CompositeCancelable, SerialCancelable, SingleAssignCancelable} + import scala.util.control.NonFatal -import monix.execution.{Ack, Cancelable} +import monix.execution.{Ack, Cancelable, Scheduler} import monix.reactive.observers.Subscriber import monix.reactive.{Observable, Observer} @@ -35,7 +36,7 @@ private[reactive] final class SwitchMapObservable[A, B](source: Observable[A], f val composite = CompositeCancelable(activeChild, mainTask) mainTask := source.unsafeSubscribeFn(new Subscriber.Sync[A] { self => - implicit val scheduler = out.scheduler + implicit val scheduler: Scheduler = out.scheduler // MUST BE synchronized by `self` private[this] var ack: Future[Ack] = Continue // MUST BE synchronized by `self` diff --git a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/TakeByPredicateOperator.scala b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/TakeByPredicateOperator.scala index e8e76fdb2..dd8247fa9 100644 --- a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/TakeByPredicateOperator.scala +++ b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/TakeByPredicateOperator.scala @@ -17,18 +17,20 @@ package monix.reactive.internal.operators -import monix.execution.Ack +import monix.execution.{Ack, Scheduler} import monix.execution.Ack.Stop + import scala.util.control.NonFatal import monix.reactive.Observable.Operator import monix.reactive.observers.Subscriber + import scala.concurrent.Future private[reactive] final class TakeByPredicateOperator[A](p: A => Boolean, inclusive: Boolean) extends Operator[A, A] { def apply(out: Subscriber[A]): Subscriber[A] = new Subscriber[A] { - implicit val scheduler = out.scheduler + implicit val scheduler: Scheduler = out.scheduler private[this] var isActive = true def onNext(elem: A): Future[Ack] = { diff --git a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/TakeEveryNthOperator.scala b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/TakeEveryNthOperator.scala index 58ea891e0..cb289fd0b 100644 --- a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/TakeEveryNthOperator.scala +++ b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/TakeEveryNthOperator.scala @@ -17,10 +17,11 @@ package monix.reactive.internal.operators -import monix.execution.Ack +import monix.execution.{Ack, Scheduler} import monix.execution.Ack.Continue import monix.reactive.Observable.Operator import monix.reactive.observers.Subscriber + import scala.concurrent.Future private[reactive] final class TakeEveryNthOperator[A](n: Int) extends Operator[A, A] { @@ -29,7 +30,7 @@ private[reactive] final class TakeEveryNthOperator[A](n: Int) extends Operator[A def apply(out: Subscriber[A]): Subscriber[A] = new Subscriber[A] { - implicit val scheduler = out.scheduler + implicit val scheduler: Scheduler = out.scheduler private[this] var index = n def onNext(elem: A): Future[Ack] = { diff --git a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/TakeLastObservable.scala b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/TakeLastObservable.scala index a0f37c025..e9890e5f0 100644 --- a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/TakeLastObservable.scala +++ b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/TakeLastObservable.scala @@ -17,12 +17,13 @@ package monix.reactive.internal.operators -import monix.execution.Ack +import monix.execution.{Ack, Scheduler} import monix.execution.Ack.Continue import monix.execution.cancelables.AssignableCancelable import monix.reactive.Observable import monix.reactive.observables.ChainedObservable import monix.reactive.observers.Subscriber + import scala.collection.mutable private[reactive] final class TakeLastObservable[A](source: Observable[A], n: Int) @@ -30,7 +31,7 @@ private[reactive] final class TakeLastObservable[A](source: Observable[A], n: In override def unsafeSubscribeFn(conn: AssignableCancelable.Multi, out: Subscriber[A]): Unit = { ChainedObservable.subscribe(source, conn, new Subscriber[A] { - implicit val scheduler = out.scheduler + implicit val scheduler: Scheduler = out.scheduler private[this] val queue = mutable.Queue.empty[A] private[this] var queued = 0 diff --git a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/TakeLeftByTimespanObservable.scala b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/TakeLeftByTimespanObservable.scala index e7407baf0..d7a3022c8 100644 --- a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/TakeLeftByTimespanObservable.scala +++ b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/TakeLeftByTimespanObservable.scala @@ -19,9 +19,10 @@ package monix.reactive.internal.operators import monix.execution.Ack.Stop import monix.execution.cancelables.CompositeCancelable -import monix.execution.{Ack, Cancelable} +import monix.execution.{Ack, Cancelable, Scheduler} import monix.reactive.Observable import monix.reactive.observers.Subscriber + import scala.concurrent.Future import scala.concurrent.duration.FiniteDuration @@ -32,7 +33,7 @@ private[reactive] final class TakeLeftByTimespanObservable[A](source: Observable val composite = CompositeCancelable() composite += source.unsafeSubscribeFn(new Subscriber[A] with Runnable { - implicit val scheduler = out.scheduler + implicit val scheduler: Scheduler = out.scheduler private[this] var isActive = true // triggers completion diff --git a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/TakeLeftOperator.scala b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/TakeLeftOperator.scala index 7764554a2..9ea95d597 100644 --- a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/TakeLeftOperator.scala +++ b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/TakeLeftOperator.scala @@ -18,6 +18,7 @@ package monix.reactive.internal.operators import monix.execution.Ack.Stop +import monix.execution.Scheduler import monix.reactive.Observable.Operator import monix.reactive.observers.Subscriber @@ -26,7 +27,7 @@ private[reactive] final class TakeLeftOperator[A](n: Long) extends Operator[A, A def apply(out: Subscriber[A]): Subscriber[A] = { require(n > 0, "n should be strictly positive") new Subscriber[A] { - implicit val scheduler = out.scheduler + implicit val scheduler: Scheduler = out.scheduler private[this] var counter = 0L private[this] var isActive = true diff --git a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/TakeUntilObservable.scala b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/TakeUntilObservable.scala index fd53a429d..da652215d 100644 --- a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/TakeUntilObservable.scala +++ b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/TakeUntilObservable.scala @@ -19,9 +19,10 @@ package monix.reactive.internal.operators import monix.execution.Ack.Stop import monix.execution.cancelables.{CompositeCancelable, SingleAssignCancelable} -import monix.execution.{Ack, Cancelable} +import monix.execution.{Ack, Cancelable, Scheduler} import monix.reactive.Observable import monix.reactive.observers.Subscriber + import scala.concurrent.Future /** Implementation for [[monix.reactive.Observable.takeUntil]]. */ @@ -33,7 +34,7 @@ private[reactive] final class TakeUntilObservable[+A](source: Observable[A], tri var isComplete = false val selectorConn = trigger.unsafeSubscribeFn(new Subscriber.Sync[Any] { - implicit val scheduler = out.scheduler + implicit val scheduler: Scheduler = out.scheduler def onNext(elem: Any): Ack = { signalComplete(null) @@ -57,7 +58,7 @@ private[reactive] final class TakeUntilObservable[+A](source: Observable[A], tri }) mainConn := source.unsafeSubscribeFn(new Subscriber[A] { - implicit val scheduler = out.scheduler + implicit val scheduler: Scheduler = out.scheduler def onNext(elem: A): Future[Ack] = mainConn.synchronized { diff --git a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/TakeWhileNotCanceledOperator.scala b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/TakeWhileNotCanceledOperator.scala index c3f9440e1..a620def26 100644 --- a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/TakeWhileNotCanceledOperator.scala +++ b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/TakeWhileNotCanceledOperator.scala @@ -17,19 +17,21 @@ package monix.reactive.internal.operators -import monix.execution.Ack +import monix.execution.{Ack, Scheduler} import monix.execution.Ack.Stop import monix.execution.cancelables.BooleanCancelable + import scala.util.control.NonFatal import monix.reactive.Observable.Operator import monix.reactive.observers.Subscriber + import scala.concurrent.Future private[reactive] final class TakeWhileNotCanceledOperator[A](c: BooleanCancelable) extends Operator[A, A] { def apply(out: Subscriber[A]): Subscriber[A] = new Subscriber[A] { - implicit val scheduler = out.scheduler + implicit val scheduler: Scheduler = out.scheduler private[this] var isActive = true def onNext(elem: A): Future[Ack] = diff --git a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/ThrottleFirstOperator.scala b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/ThrottleFirstOperator.scala index 89801da81..afc4c76f4 100644 --- a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/ThrottleFirstOperator.scala +++ b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/ThrottleFirstOperator.scala @@ -17,7 +17,7 @@ package monix.reactive.internal.operators -import monix.execution.Ack +import monix.execution.{Ack, Scheduler} import monix.execution.Ack.Continue import monix.reactive.Observable.Operator import monix.reactive.observers.Subscriber @@ -29,7 +29,7 @@ private[reactive] final class ThrottleFirstOperator[A](interval: FiniteDuration) def apply(out: Subscriber[A]): Subscriber[A] = new Subscriber[A] { - implicit val scheduler = out.scheduler + implicit val scheduler: Scheduler = out.scheduler private[this] val intervalMs = interval.toMillis private[this] var nextChange = 0L diff --git a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/ThrottleLastObservable.scala b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/ThrottleLastObservable.scala index 33e0ce302..86dfed1d4 100644 --- a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/ThrottleLastObservable.scala +++ b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/ThrottleLastObservable.scala @@ -19,9 +19,10 @@ package monix.reactive.internal.operators import monix.execution.Ack.{Continue, Stop} import monix.execution.cancelables.{CompositeCancelable, SingleAssignCancelable} -import monix.execution.{Ack, Cancelable} +import monix.execution.{Ack, Cancelable, Scheduler} import monix.reactive.Observable import monix.reactive.observers.Subscriber + import scala.concurrent.Future private[reactive] final class ThrottleLastObservable[+A, S]( @@ -36,7 +37,7 @@ private[reactive] final class ThrottleLastObservable[+A, S]( val composite = CompositeCancelable(upstreamSubscription, samplerSubscription) upstreamSubscription := source.unsafeSubscribeFn(new Subscriber.Sync[A] { upstreamSubscriber => - implicit val scheduler = downstream.scheduler + implicit val scheduler: Scheduler = downstream.scheduler // Value is volatile to keep write to lastValue visible // after this one is seen as being true @@ -71,7 +72,7 @@ private[reactive] final class ThrottleLastObservable[+A, S]( } samplerSubscription := sampler.unsafeSubscribeFn(new Subscriber[S] { self => - implicit val scheduler = downstream.scheduler + implicit val scheduler: Scheduler = downstream.scheduler def onNext(elem: S): Future[Ack] = upstreamSubscriber.synchronized(signalNext()) diff --git a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/ThrottleLatestObservable.scala b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/ThrottleLatestObservable.scala index 569888fa7..7607be001 100644 --- a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/ThrottleLatestObservable.scala +++ b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/ThrottleLatestObservable.scala @@ -19,13 +19,13 @@ package monix.reactive.internal.operators import monix.execution.Ack.{Continue, Stop} import monix.execution.cancelables.{CompositeCancelable, MultiAssignCancelable, SingleAssignCancelable} -import monix.execution.{Ack, Cancelable} +import monix.execution.{Ack, Cancelable, Scheduler} import monix.reactive.Observable import monix.reactive.observers.Subscriber import java.util.concurrent.TimeUnit -import scala.concurrent.{Future, Promise} -import scala.concurrent.duration.{FiniteDuration, MILLISECONDS} +import scala.concurrent.Future +import scala.concurrent.duration.FiniteDuration private[reactive] final class ThrottleLatestObservable[A]( source: Observable[A], @@ -40,7 +40,7 @@ private[reactive] final class ThrottleLatestObservable[A]( mainTask := source.unsafeSubscribeFn(new Subscriber[A] with Runnable { self => - implicit val scheduler = out.scheduler + implicit val scheduler: Scheduler = out.scheduler private[this] val durationMilis = duration.toMillis private[this] var isDone = false diff --git a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/WhileBusyAggregateEventsOperator.scala b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/WhileBusyAggregateEventsOperator.scala index 0956d4196..c50cafe3a 100644 --- a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/WhileBusyAggregateEventsOperator.scala +++ b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/WhileBusyAggregateEventsOperator.scala @@ -17,7 +17,7 @@ package monix.reactive.internal.operators -import monix.execution.Ack +import monix.execution.{Ack, Scheduler} import monix.execution.Ack.{Continue, Stop} import monix.reactive.Observable.Operator import monix.reactive.observers.Subscriber @@ -31,7 +31,7 @@ private[reactive] final class WhileBusyAggregateEventsOperator[A, S](seed: A => def apply(downstream: Subscriber[S]): Subscriber.Sync[A] = { new Subscriber.Sync[A] { upstreamSubscriber => - implicit val scheduler = downstream.scheduler + implicit val scheduler: Scheduler = downstream.scheduler private[this] var aggregated: Option[S] = None private[this] var lastAck: Future[Ack] = Continue diff --git a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/WhileBusyDropEventsAndSignalOperator.scala b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/WhileBusyDropEventsAndSignalOperator.scala index 40e750b7d..84e4b71c3 100644 --- a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/WhileBusyDropEventsAndSignalOperator.scala +++ b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/WhileBusyDropEventsAndSignalOperator.scala @@ -17,8 +17,9 @@ package monix.reactive.internal.operators -import monix.execution.Ack +import monix.execution.{Ack, Scheduler} import monix.execution.Ack.{Continue, Stop} + import scala.util.control.NonFatal import monix.reactive.Observable.Operator import monix.reactive.observers.Subscriber @@ -29,7 +30,7 @@ private[reactive] final class WhileBusyDropEventsAndSignalOperator[A](onOverflow def apply(out: Subscriber[A]): Subscriber.Sync[A] = new Subscriber.Sync[A] { - implicit val scheduler = out.scheduler + implicit val scheduler: Scheduler = out.scheduler private[this] var ack = Continue: Future[Ack] private[this] var eventsDropped = 0L diff --git a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/WhileBusyDropEventsOperator.scala b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/WhileBusyDropEventsOperator.scala index de711d524..3fb9511b7 100644 --- a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/WhileBusyDropEventsOperator.scala +++ b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/WhileBusyDropEventsOperator.scala @@ -17,17 +17,18 @@ package monix.reactive.internal.operators -import monix.execution.Ack +import monix.execution.{Ack, Scheduler} import monix.execution.Ack.{Continue, Stop} import monix.reactive.Observable.Operator import monix.reactive.observers.Subscriber + import scala.concurrent.Future private[reactive] final class WhileBusyDropEventsOperator[A] extends Operator[A, A] { def apply(out: Subscriber[A]): Subscriber.Sync[A] = new Subscriber.Sync[A] { - implicit val scheduler = out.scheduler + implicit val scheduler: Scheduler = out.scheduler private[this] var ack = Continue: Future[Ack] private[this] var isDone = false diff --git a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/WithLatestFromObservable.scala b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/WithLatestFromObservable.scala index 5ec17a864..5bbfa5271 100644 --- a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/WithLatestFromObservable.scala +++ b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/WithLatestFromObservable.scala @@ -19,8 +19,9 @@ package monix.reactive.internal.operators import monix.execution.Ack.{Continue, Stop} import monix.execution.cancelables.CompositeCancelable + import scala.util.control.NonFatal -import monix.execution.{Ack, Cancelable} +import monix.execution.{Ack, Cancelable, Scheduler} import monix.reactive.Observable import monix.reactive.observers.Subscriber @@ -36,7 +37,7 @@ private[reactive] final class WithLatestFromObservable[A, B, +R]( val connection = CompositeCancelable() connection += source.unsafeSubscribeFn(new Subscriber[A] { self => - implicit val scheduler = out.scheduler + implicit val scheduler: Scheduler = out.scheduler private[this] var isDone = false private[this] var otherStarted = false @@ -44,7 +45,7 @@ private[reactive] final class WithLatestFromObservable[A, B, +R]( private[this] val otherConnection = { val ref = other.unsafeSubscribeFn(new Subscriber.Sync[B] { - implicit val scheduler = out.scheduler + implicit val scheduler: Scheduler = out.scheduler def onNext(elem: B): Ack = self.synchronized { diff --git a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/ZipWithIndexOperator.scala b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/ZipWithIndexOperator.scala index ee0e8ff4a..4831e8e54 100644 --- a/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/ZipWithIndexOperator.scala +++ b/monix-reactive/shared/src/main/scala/monix/reactive/internal/operators/ZipWithIndexOperator.scala @@ -17,16 +17,17 @@ package monix.reactive.internal.operators -import monix.execution.Ack +import monix.execution.{Ack, Scheduler} import monix.reactive.Observable.Operator import monix.reactive.observers.Subscriber + import scala.concurrent.Future private[reactive] final class ZipWithIndexOperator[A] extends Operator[A, (A, Long)] { def apply(out: Subscriber[(A, Long)]): Subscriber[A] = new Subscriber[A] { - implicit val scheduler = out.scheduler + implicit val scheduler: Scheduler = out.scheduler private[this] var index = 0L def onNext(elem: A): Future[Ack] = { diff --git a/monix-reactive/shared/src/main/scala/monix/reactive/internal/rstreams/ReactiveSubscriberAsMonixSubscriber.scala b/monix-reactive/shared/src/main/scala/monix/reactive/internal/rstreams/ReactiveSubscriberAsMonixSubscriber.scala index 700f2bce9..68057e9d0 100644 --- a/monix-reactive/shared/src/main/scala/monix/reactive/internal/rstreams/ReactiveSubscriberAsMonixSubscriber.scala +++ b/monix-reactive/shared/src/main/scala/monix/reactive/internal/rstreams/ReactiveSubscriberAsMonixSubscriber.scala @@ -37,7 +37,7 @@ private[reactive] final class ReactiveSubscriberAsMonixSubscriber[A] private ( subscription: Cancelable)(implicit val scheduler: Scheduler) extends Subscriber[A] with Cancelable { self => - if (subscriber == null) throw null + if (subscriber == null) throw new NullPointerException("Subscriber must not be null") private[this] var isComplete = false private[this] val requests = new RequestsQueue diff --git a/monix-reactive/shared/src/main/scala/monix/reactive/internal/rstreams/SubscriberAsReactiveSubscriber.scala b/monix-reactive/shared/src/main/scala/monix/reactive/internal/rstreams/SubscriberAsReactiveSubscriber.scala index 3f75376e6..daedf776e 100644 --- a/monix-reactive/shared/src/main/scala/monix/reactive/internal/rstreams/SubscriberAsReactiveSubscriber.scala +++ b/monix-reactive/shared/src/main/scala/monix/reactive/internal/rstreams/SubscriberAsReactiveSubscriber.scala @@ -94,7 +94,7 @@ private[reactive] final class AsyncSubscriberAsReactiveSubscriber[A](target: Sub private[this] val subscription = SingleAssignSubscription() private[this] val downstream: Subscriber[A] = new Subscriber[A] { - implicit val scheduler = target.scheduler + implicit val scheduler: Scheduler = target.scheduler private[this] val isFinite = requestCount < Int.MaxValue private[this] var isActive = true diff --git a/monix-reactive/shared/src/main/scala/monix/reactive/observables/GroupedObservable.scala b/monix-reactive/shared/src/main/scala/monix/reactive/observables/GroupedObservable.scala index 792932873..5e3e9f42e 100644 --- a/monix-reactive/shared/src/main/scala/monix/reactive/observables/GroupedObservable.scala +++ b/monix-reactive/shared/src/main/scala/monix/reactive/observables/GroupedObservable.scala @@ -55,7 +55,7 @@ object GroupedObservable { private[this] var ref: Subscriber[V] = _ private[this] val underlying = { val o = new Subscriber[V] { - implicit val scheduler = self.scheduler + implicit val scheduler: Scheduler = self.scheduler private[this] var isDone = false def onNext(elem: V) = { diff --git a/monix-reactive/shared/src/main/scala/monix/reactive/observables/RefCountObservable.scala b/monix-reactive/shared/src/main/scala/monix/reactive/observables/RefCountObservable.scala index bb966cd98..206b40140 100644 --- a/monix-reactive/shared/src/main/scala/monix/reactive/observables/RefCountObservable.scala +++ b/monix-reactive/shared/src/main/scala/monix/reactive/observables/RefCountObservable.scala @@ -17,10 +17,11 @@ package monix.reactive.observables -import monix.execution.{Ack, Cancelable} +import monix.execution.{Ack, Cancelable, Scheduler} import monix.reactive.Observable import monix.reactive.observers.Subscriber import monix.execution.atomic.Atomic + import scala.annotation.tailrec import scala.concurrent.Future @@ -68,7 +69,7 @@ final class RefCountObservable[+A] private (source: ConnectableObservable[A]) ex private def wrap[U >: A](downstream: Subscriber[U], subscription: Cancelable): Subscriber[U] = new Subscriber[U] { - implicit val scheduler = downstream.scheduler + implicit val scheduler: Scheduler = downstream.scheduler def onNext(elem: U): Future[Ack] = { downstream diff --git a/monix-reactive/shared/src/main/scala/monix/reactive/observers/CacheUntilConnectSubscriber.scala b/monix-reactive/shared/src/main/scala/monix/reactive/observers/CacheUntilConnectSubscriber.scala index e03d2076d..d0469e020 100644 --- a/monix-reactive/shared/src/main/scala/monix/reactive/observers/CacheUntilConnectSubscriber.scala +++ b/monix-reactive/shared/src/main/scala/monix/reactive/observers/CacheUntilConnectSubscriber.scala @@ -18,8 +18,9 @@ package monix.reactive.observers import monix.execution.Ack.{Continue, Stop} -import monix.execution.{Ack, CancelableFuture} +import monix.execution.{Ack, CancelableFuture, Scheduler} import monix.reactive.Observable + import scala.collection.mutable import scala.concurrent.{Future, Promise} import scala.util.{Failure, Success} @@ -30,7 +31,7 @@ import scala.util.{Failure, Success} * subsequent events are pushed directly. */ final class CacheUntilConnectSubscriber[-A] private (downstream: Subscriber[A]) extends Subscriber[A] { self => - implicit val scheduler = downstream.scheduler + implicit val scheduler: Scheduler = downstream.scheduler // MUST BE synchronized by `self`, only available if isConnected == false private[this] var queue = mutable.ArrayBuffer.empty[A] // MUST BE synchronized by `self` @@ -72,7 +73,7 @@ final class CacheUntilConnectSubscriber[-A] private (downstream: Subscriber[A]) val cancelable = Observable .fromIterable(queue) .unsafeSubscribeFn(new Subscriber[A] { - implicit val scheduler = downstream.scheduler + implicit val scheduler: Scheduler = downstream.scheduler private[this] var ack: Future[Ack] = Continue bufferWasDrained.future.onComplete { diff --git a/monix-reactive/shared/src/main/scala/monix/reactive/observers/ConnectableSubscriber.scala b/monix-reactive/shared/src/main/scala/monix/reactive/observers/ConnectableSubscriber.scala index c0208483a..27eff2718 100644 --- a/monix-reactive/shared/src/main/scala/monix/reactive/observers/ConnectableSubscriber.scala +++ b/monix-reactive/shared/src/main/scala/monix/reactive/observers/ConnectableSubscriber.scala @@ -125,7 +125,7 @@ final class ConnectableSubscriber[-A] private (underlying: Subscriber[A]) extend val cancelable = Observable .fromIterable(queue) .unsafeSubscribeFn(new Subscriber[A] { - implicit val scheduler = underlying.scheduler + implicit val scheduler: Scheduler = underlying.scheduler private[this] var ack: Future[Ack] = Continue bufferWasDrained.future.onComplete { diff --git a/monix-reactive/shared/src/main/scala/monix/reactive/observers/SafeSubscriber.scala b/monix-reactive/shared/src/main/scala/monix/reactive/observers/SafeSubscriber.scala index 81a08b0f1..253e1da87 100644 --- a/monix-reactive/shared/src/main/scala/monix/reactive/observers/SafeSubscriber.scala +++ b/monix-reactive/shared/src/main/scala/monix/reactive/observers/SafeSubscriber.scala @@ -17,10 +17,10 @@ package monix.reactive.observers -import monix.execution.Ack +import monix.execution.{Ack, Scheduler} import monix.execution.Ack.{Continue, Stop} -import scala.util.control.NonFatal +import scala.util.control.NonFatal import scala.concurrent.{Future, Promise} import scala.util.Try @@ -36,7 +36,7 @@ import scala.util.Try */ final class SafeSubscriber[-A] private (subscriber: Subscriber[A]) extends Subscriber[A] { - implicit val scheduler = subscriber.scheduler + implicit val scheduler: Scheduler = subscriber.scheduler private[this] var isDone = false private[this] var ack: Future[Ack] = Continue diff --git a/monix-reactive/shared/src/main/scala/monix/reactive/observers/Subscriber.scala b/monix-reactive/shared/src/main/scala/monix/reactive/observers/Subscriber.scala index a7a32f8cb..6cba0c23a 100644 --- a/monix-reactive/shared/src/main/scala/monix/reactive/observers/Subscriber.scala +++ b/monix-reactive/shared/src/main/scala/monix/reactive/observers/Subscriber.scala @@ -73,7 +73,7 @@ object Subscriber { */ def empty[A](implicit s: Scheduler): Subscriber.Sync[A] = new Subscriber.Sync[A] { - implicit val scheduler = s + implicit val scheduler: Scheduler = s def onNext(elem: A): Ack = Continue def onError(ex: Throwable): Unit = s.reportFailure(ex) def onComplete(): Unit = () diff --git a/monix-reactive/shared/src/main/scala/monix/reactive/subjects/ReplaySubject.scala b/monix-reactive/shared/src/main/scala/monix/reactive/subjects/ReplaySubject.scala index 49b14ebb0..a72130354 100644 --- a/monix-reactive/shared/src/main/scala/monix/reactive/subjects/ReplaySubject.scala +++ b/monix-reactive/shared/src/main/scala/monix/reactive/subjects/ReplaySubject.scala @@ -18,13 +18,13 @@ package monix.reactive.subjects import monix.execution.Ack.{Continue, Stop} -import monix.execution.{Ack, Cancelable} +import monix.execution.{Ack, Cancelable, Scheduler} import monix.reactive.Observable import monix.reactive.internal.util.PromiseCounter import monix.reactive.observers.{ConnectableSubscriber, Subscriber} import monix.execution.atomic.Atomic -import scala.util.control.NonFatal +import scala.util.control.NonFatal import scala.annotation.tailrec import scala.collection.immutable.Queue import scala.concurrent.Future @@ -44,7 +44,7 @@ final class ReplaySubject[A] private (initialState: ReplaySubject.State[A]) exte Observable .fromIterable(buffer) .unsafeSubscribeFn(new Subscriber[A] { - implicit val scheduler = subscriber.scheduler + implicit val scheduler: Scheduler = subscriber.scheduler def onNext(elem: A) = subscriber.onNext(elem) diff --git a/monix-reactive/shared/src/test/scala/monix/reactive/consumers/FromObserverConsumerSuite.scala b/monix-reactive/shared/src/test/scala/monix/reactive/consumers/FromObserverConsumerSuite.scala index 2a5511198..19927bf84 100644 --- a/monix-reactive/shared/src/test/scala/monix/reactive/consumers/FromObserverConsumerSuite.scala +++ b/monix-reactive/shared/src/test/scala/monix/reactive/consumers/FromObserverConsumerSuite.scala @@ -19,8 +19,7 @@ package monix.reactive.consumers import cats.laws._ import cats.laws.discipline._ - -import monix.execution.Callback +import monix.execution.{Callback, Scheduler} import monix.eval.Task import monix.execution.Ack.Continue import monix.execution.exceptions.DummyException @@ -34,7 +33,7 @@ object FromObserverConsumerSuite extends BaseTestSuite { check1 { (source: Observable[Int]) => val lh = source.sumL val rh = Task.create[Int] { (s, cb) => - implicit val scheduler = s + implicit val scheduler: Scheduler = s var sum = 0 val consumer = Consumer.fromObserver(_ => diff --git a/monix-reactive/shared/src/test/scala/monix/reactive/consumers/LoadBalanceConsumerSuite.scala b/monix-reactive/shared/src/test/scala/monix/reactive/consumers/LoadBalanceConsumerSuite.scala index 9dda01526..c492f97d4 100644 --- a/monix-reactive/shared/src/test/scala/monix/reactive/consumers/LoadBalanceConsumerSuite.scala +++ b/monix-reactive/shared/src/test/scala/monix/reactive/consumers/LoadBalanceConsumerSuite.scala @@ -257,7 +257,7 @@ object LoadBalanceConsumerSuite extends BaseTestSuite { } val sub = new Subscriber[Int] { - implicit val scheduler = s + implicit val scheduler: Scheduler = s def onNext(elem: Int) = { sum.increment(elem + 1) Continue @@ -318,7 +318,7 @@ object LoadBalanceConsumerSuite extends BaseTestSuite { new Consumer[Int, Unit] { def createSubscriber(cb: Callback[Throwable, Unit], s: Scheduler): (Subscriber[Int], AssignableCancelable) = { val sub = new Subscriber[Int] { - implicit val scheduler = s + implicit val scheduler: Scheduler = s def onNext(elem: Int) = ack.future.map { _ => diff --git a/monix-reactive/shared/src/test/scala/monix/reactive/internal/builders/AsyncStateActionObservableSuite.scala b/monix-reactive/shared/src/test/scala/monix/reactive/internal/builders/AsyncStateActionObservableSuite.scala index 3a225f625..2849e4da9 100644 --- a/monix-reactive/shared/src/test/scala/monix/reactive/internal/builders/AsyncStateActionObservableSuite.scala +++ b/monix-reactive/shared/src/test/scala/monix/reactive/internal/builders/AsyncStateActionObservableSuite.scala @@ -23,10 +23,12 @@ import monix.eval.Task import monix.execution.Ack.Continue import monix.execution.internal.Platform import monix.execution.ExecutionModel.AlwaysAsyncExecution +import monix.execution.Scheduler import monix.execution.exceptions.DummyException import monix.execution.schedulers.TestScheduler import monix.reactive.Observable import monix.reactive.observers.Subscriber + import scala.util.Failure import scala.concurrent.duration.MILLISECONDS @@ -84,7 +86,7 @@ object AsyncStateActionObservableSuite extends TestSuite[TestScheduler] { val cancelable = Observable .fromAsyncStateAction(intNow)(s.clockMonotonic(MILLISECONDS)) .unsafeSubscribeFn(new Subscriber[Int] { - implicit val scheduler = s + implicit val scheduler: Scheduler = s def onNext(elem: Int) = { sum += 1 Continue diff --git a/monix-reactive/shared/src/test/scala/monix/reactive/internal/builders/BracketObservableSuite.scala b/monix-reactive/shared/src/test/scala/monix/reactive/internal/builders/BracketObservableSuite.scala index 4ec001512..2d6a41a8f 100644 --- a/monix-reactive/shared/src/test/scala/monix/reactive/internal/builders/BracketObservableSuite.scala +++ b/monix-reactive/shared/src/test/scala/monix/reactive/internal/builders/BracketObservableSuite.scala @@ -17,11 +17,12 @@ package monix.reactive.internal.builders -import cats.implicits._ import cats.effect.ExitCase import cats.effect.concurrent.Deferred +import cats.implicits._ import monix.eval.Task import monix.execution.Ack.Continue +import monix.execution.Scheduler import monix.reactive.observers.Subscriber import monix.reactive.{BaseTestSuite, Observable} @@ -86,7 +87,7 @@ object BracketObservableSuite extends BaseTestSuite { val cancelable = obs .flatMap(_ => Observable.never) .unsafeSubscribeFn(new Subscriber[Handle] { - implicit val scheduler = s + implicit val scheduler: Scheduler = s def onNext(elem: Handle) = Continue def onComplete() = diff --git a/monix-reactive/shared/src/test/scala/monix/reactive/internal/builders/BufferedIteratorAsObservableSuite.scala b/monix-reactive/shared/src/test/scala/monix/reactive/internal/builders/BufferedIteratorAsObservableSuite.scala index a2467d24e..c9b5f1987 100644 --- a/monix-reactive/shared/src/test/scala/monix/reactive/internal/builders/BufferedIteratorAsObservableSuite.scala +++ b/monix-reactive/shared/src/test/scala/monix/reactive/internal/builders/BufferedIteratorAsObservableSuite.scala @@ -43,7 +43,7 @@ object BufferedIteratorAsObservableSuite extends TestSuite[TestScheduler] { obs.unsafeSubscribeFn(Subscriber.empty(s)) obs.unsafeSubscribeFn(new Subscriber[Seq[Int]] { - implicit val scheduler = s + implicit val scheduler: Scheduler = s def onNext(elem: Seq[Int]): Ack = throw new IllegalStateException("onNext") diff --git a/monix-reactive/shared/src/test/scala/monix/reactive/internal/builders/CharsReaderObservableSuite.scala b/monix-reactive/shared/src/test/scala/monix/reactive/internal/builders/CharsReaderObservableSuite.scala index 6a8b352c7..35fc13a27 100644 --- a/monix-reactive/shared/src/test/scala/monix/reactive/internal/builders/CharsReaderObservableSuite.scala +++ b/monix-reactive/shared/src/test/scala/monix/reactive/internal/builders/CharsReaderObservableSuite.scala @@ -18,12 +18,11 @@ package monix.reactive.internal.builders import java.io.{Reader, StringReader} - import cats.effect.ExitCase import minitest.SimpleTestSuite import minitest.laws.Checkers import monix.eval.Task -import monix.execution.Ack +import monix.execution.{Ack, Scheduler} import monix.execution.Ack.Continue import monix.execution.ExecutionModel.{AlwaysAsyncExecution, BatchedExecution, SynchronousExecution} import monix.execution.exceptions.APIContractViolationException @@ -45,7 +44,7 @@ object CharsReaderObservableSuite extends SimpleTestSuite with Checkers { s.tick() obs.unsafeSubscribeFn(new Subscriber[Array[Char]] { - implicit val scheduler = s + implicit val scheduler: Scheduler = s def onNext(elem: Array[Char]): Ack = throw new IllegalStateException("onNext") @@ -126,7 +125,7 @@ object CharsReaderObservableSuite extends SimpleTestSuite with Checkers { .foldLeft(Array.empty[Char])(_ ++ _) obs.unsafeSubscribeFn(new Subscriber[Array[Char]] { - implicit val scheduler = s + implicit val scheduler: Scheduler = s def onError(ex: Throwable): Unit = throw new IllegalStateException("onError") diff --git a/monix-reactive/shared/src/test/scala/monix/reactive/internal/builders/InputStreamObservableSuite.scala b/monix-reactive/shared/src/test/scala/monix/reactive/internal/builders/InputStreamObservableSuite.scala index a2485fe23..51ad68643 100644 --- a/monix-reactive/shared/src/test/scala/monix/reactive/internal/builders/InputStreamObservableSuite.scala +++ b/monix-reactive/shared/src/test/scala/monix/reactive/internal/builders/InputStreamObservableSuite.scala @@ -18,11 +18,10 @@ package monix.reactive.internal.builders import java.io.{ByteArrayInputStream, InputStream} - import minitest.SimpleTestSuite import minitest.laws.Checkers import monix.eval.Task -import monix.execution.Ack +import monix.execution.{Ack, Scheduler} import monix.execution.Ack.Continue import monix.execution.ExecutionModel.{AlwaysAsyncExecution, BatchedExecution, SynchronousExecution} import monix.execution.exceptions.{APIContractViolationException, DummyException} @@ -43,7 +42,7 @@ object InputStreamObservableSuite extends SimpleTestSuite with Checkers { s.tick() obs.unsafeSubscribeFn(new Subscriber[Array[Byte]] { - implicit val scheduler = s + implicit val scheduler: Scheduler = s def onNext(elem: Array[Byte]): Ack = throw new IllegalStateException("onNext") @@ -122,7 +121,7 @@ object InputStreamObservableSuite extends SimpleTestSuite with Checkers { .foldLeft(Array.empty[Byte])(_ ++ _) obs.unsafeSubscribeFn(new Subscriber[Array[Byte]] { - implicit val scheduler = s + implicit val scheduler: Scheduler = s def onError(ex: Throwable): Unit = throw new IllegalStateException("onError") diff --git a/monix-reactive/shared/src/test/scala/monix/reactive/internal/builders/IterableAsObservableSuite.scala b/monix-reactive/shared/src/test/scala/monix/reactive/internal/builders/IterableAsObservableSuite.scala index 44c37baaf..50bd3071a 100644 --- a/monix-reactive/shared/src/test/scala/monix/reactive/internal/builders/IterableAsObservableSuite.scala +++ b/monix-reactive/shared/src/test/scala/monix/reactive/internal/builders/IterableAsObservableSuite.scala @@ -20,11 +20,13 @@ package monix.reactive.internal.builders import minitest.TestSuite import monix.execution.Ack.{Continue, Stop} import monix.execution.FutureUtils.extensions._ +import monix.execution.Scheduler import monix.execution.internal.Platform import monix.execution.schedulers.TestScheduler import monix.execution.exceptions.DummyException import monix.reactive.{Observable, Observer} import monix.reactive.observers.Subscriber + import scala.concurrent.Future import scala.concurrent.duration._ @@ -317,7 +319,7 @@ object IterableAsObservableSuite extends TestSuite[TestScheduler] { val cancelable = Observable .fromIterable(seq) .unsafeSubscribeFn(new Subscriber[Int] { - implicit val scheduler = s + implicit val scheduler: Scheduler = s def onNext(elem: Int) = { sum += 1 Continue diff --git a/monix-reactive/shared/src/test/scala/monix/reactive/internal/builders/IteratorAsObservableSuite.scala b/monix-reactive/shared/src/test/scala/monix/reactive/internal/builders/IteratorAsObservableSuite.scala index 96953e2c0..8e011abf9 100644 --- a/monix-reactive/shared/src/test/scala/monix/reactive/internal/builders/IteratorAsObservableSuite.scala +++ b/monix-reactive/shared/src/test/scala/monix/reactive/internal/builders/IteratorAsObservableSuite.scala @@ -42,7 +42,7 @@ object IteratorAsObservableSuite extends TestSuite[TestScheduler] { obs.unsafeSubscribeFn(Subscriber.empty(s)) obs.unsafeSubscribeFn(new Subscriber[Int] { - implicit val scheduler = s + implicit val scheduler: Scheduler = s def onNext(elem: Int): Ack = throw new IllegalStateException("onNext") diff --git a/monix-reactive/shared/src/test/scala/monix/reactive/internal/builders/LinesReaderObservableSuite.scala b/monix-reactive/shared/src/test/scala/monix/reactive/internal/builders/LinesReaderObservableSuite.scala index 3d9f20f3b..f7bb0db40 100644 --- a/monix-reactive/shared/src/test/scala/monix/reactive/internal/builders/LinesReaderObservableSuite.scala +++ b/monix-reactive/shared/src/test/scala/monix/reactive/internal/builders/LinesReaderObservableSuite.scala @@ -18,10 +18,9 @@ package monix.reactive.internal.builders import java.io.{BufferedReader, Reader, StringReader} - import minitest.SimpleTestSuite import monix.eval.Task -import monix.execution.Ack +import monix.execution.{Ack, Scheduler} import monix.execution.Ack.Continue import monix.execution.ExecutionModel.{AlwaysAsyncExecution, BatchedExecution, SynchronousExecution} import monix.execution.exceptions.APIContractViolationException @@ -41,7 +40,7 @@ object LinesReaderObservableSuite extends SimpleTestSuite { s.tick() obs.unsafeSubscribeFn(new Subscriber[String] { - implicit val scheduler = s + implicit val scheduler: Scheduler = s def onNext(elem: String): Ack = throw new IllegalStateException("onNext") @@ -101,7 +100,7 @@ object LinesReaderObservableSuite extends SimpleTestSuite { .map(_.trim) obs.unsafeSubscribeFn(new Subscriber[String] { - implicit val scheduler = s + implicit val scheduler: Scheduler = s def onError(ex: Throwable): Unit = throw new IllegalStateException("onError") diff --git a/monix-reactive/shared/src/test/scala/monix/reactive/internal/builders/PaginateEvalObservableSuite.scala b/monix-reactive/shared/src/test/scala/monix/reactive/internal/builders/PaginateEvalObservableSuite.scala index 51cf7aa22..76b50407d 100644 --- a/monix-reactive/shared/src/test/scala/monix/reactive/internal/builders/PaginateEvalObservableSuite.scala +++ b/monix-reactive/shared/src/test/scala/monix/reactive/internal/builders/PaginateEvalObservableSuite.scala @@ -17,13 +17,12 @@ package monix.reactive.internal.builders -import cats.effect.IO import cats.laws._ import cats.laws.discipline._ import monix.eval.Task import monix.execution.Ack.Continue +import monix.execution.Scheduler import monix.execution.exceptions.DummyException -import monix.execution.internal.Platform.recommendedBatchSize import monix.reactive.observers.Subscriber import monix.reactive.{BaseTestSuite, Observable} @@ -62,7 +61,7 @@ object PaginateEvalObservableSuite extends BaseTestSuite { val cancelable = Observable .paginateEval(s.clockMonotonic(MILLISECONDS))(intNowOption) .unsafeSubscribeFn(new Subscriber[Int] { - implicit val scheduler = s + implicit val scheduler: Scheduler = s def onNext(elem: Int) = { sum += 1 diff --git a/monix-reactive/shared/src/test/scala/monix/reactive/internal/builders/PaginateObservableSuite.scala b/monix-reactive/shared/src/test/scala/monix/reactive/internal/builders/PaginateObservableSuite.scala index ae7214423..b9e4eb33d 100644 --- a/monix-reactive/shared/src/test/scala/monix/reactive/internal/builders/PaginateObservableSuite.scala +++ b/monix-reactive/shared/src/test/scala/monix/reactive/internal/builders/PaginateObservableSuite.scala @@ -20,6 +20,7 @@ package monix.reactive.internal.builders import cats.laws._ import cats.laws.discipline._ import monix.execution.Ack.Continue +import monix.execution.Scheduler import monix.execution.internal.Platform.recommendedBatchSize import monix.reactive.observers.Subscriber import monix.reactive.{BaseTestSuite, Observable} @@ -59,7 +60,7 @@ object PaginateObservableSuite extends BaseTestSuite { val cancelable = Observable .paginate(s.clockMonotonic(MILLISECONDS))(intOption) .unsafeSubscribeFn(new Subscriber[Int] { - implicit val scheduler = s + implicit val scheduler: Scheduler = s def onNext(elem: Int) = { sum += 1 diff --git a/monix-reactive/shared/src/test/scala/monix/reactive/internal/builders/RangeObservableSuite.scala b/monix-reactive/shared/src/test/scala/monix/reactive/internal/builders/RangeObservableSuite.scala index 63a384f0d..fc49579b7 100644 --- a/monix-reactive/shared/src/test/scala/monix/reactive/internal/builders/RangeObservableSuite.scala +++ b/monix-reactive/shared/src/test/scala/monix/reactive/internal/builders/RangeObservableSuite.scala @@ -20,10 +20,12 @@ package monix.reactive.internal.builders import minitest.TestSuite import monix.execution.Ack.{Continue, Stop} import monix.execution.FutureUtils.extensions._ +import monix.execution.Scheduler import monix.execution.internal.Platform import monix.execution.schedulers.TestScheduler import monix.reactive.observers.Subscriber import monix.reactive.{Observable, Observer} + import scala.concurrent.Future import scala.concurrent.duration._ @@ -129,7 +131,7 @@ object RangeObservableSuite extends TestSuite[TestScheduler] { val source = Observable.range(0L, Platform.recommendedBatchSize.toLong * 10) val cancelable = source.unsafeSubscribeFn(new Subscriber[Long] { - implicit val scheduler = s + implicit val scheduler: Scheduler = s def onNext(elem: Long) = { received += 1 diff --git a/monix-reactive/shared/src/test/scala/monix/reactive/internal/builders/RepeatEvalObservableSuite.scala b/monix-reactive/shared/src/test/scala/monix/reactive/internal/builders/RepeatEvalObservableSuite.scala index a9a281f9d..0bcc80afd 100644 --- a/monix-reactive/shared/src/test/scala/monix/reactive/internal/builders/RepeatEvalObservableSuite.scala +++ b/monix-reactive/shared/src/test/scala/monix/reactive/internal/builders/RepeatEvalObservableSuite.scala @@ -19,6 +19,7 @@ package monix.reactive.internal.builders import minitest.TestSuite import monix.execution.Ack.Continue +import monix.execution.Scheduler import monix.execution.internal.Platform import monix.execution.schedulers.TestScheduler import monix.reactive.Observable @@ -59,7 +60,7 @@ object RepeatEvalObservableSuite extends TestSuite[TestScheduler] { val cancelable = Observable .repeatEval(1) .unsafeSubscribeFn(new Subscriber[Int] { - implicit val scheduler = s + implicit val scheduler: Scheduler = s def onNext(elem: Int) = { sum += elem Continue diff --git a/monix-reactive/shared/src/test/scala/monix/reactive/internal/builders/RepeatOneObservableSuite.scala b/monix-reactive/shared/src/test/scala/monix/reactive/internal/builders/RepeatOneObservableSuite.scala index 75d957c71..da8f9563d 100644 --- a/monix-reactive/shared/src/test/scala/monix/reactive/internal/builders/RepeatOneObservableSuite.scala +++ b/monix-reactive/shared/src/test/scala/monix/reactive/internal/builders/RepeatOneObservableSuite.scala @@ -19,6 +19,7 @@ package monix.reactive.internal.builders import minitest.TestSuite import monix.execution.Ack.Continue +import monix.execution.Scheduler import monix.execution.internal.Platform import monix.execution.schedulers.TestScheduler import monix.reactive.Observable @@ -58,7 +59,7 @@ object RepeatOneObservableSuite extends TestSuite[TestScheduler] { val cancelable = Observable .repeat(1) .unsafeSubscribeFn(new Subscriber[Int] { - implicit val scheduler = s + implicit val scheduler: Scheduler = s def onNext(elem: Int) = { sum += elem Continue diff --git a/monix-reactive/shared/src/test/scala/monix/reactive/internal/builders/ResourceCaseObservableSuite.scala b/monix-reactive/shared/src/test/scala/monix/reactive/internal/builders/ResourceCaseObservableSuite.scala index 939b9791c..52c36f031 100644 --- a/monix-reactive/shared/src/test/scala/monix/reactive/internal/builders/ResourceCaseObservableSuite.scala +++ b/monix-reactive/shared/src/test/scala/monix/reactive/internal/builders/ResourceCaseObservableSuite.scala @@ -23,6 +23,7 @@ import cats.laws._ import cats.laws.discipline._ import monix.eval.Task import monix.execution.Ack.Continue +import monix.execution.Scheduler import monix.execution.exceptions.DummyException import monix.reactive.observers.Subscriber import monix.reactive.{BaseTestSuite, Consumer, Observable} @@ -137,7 +138,7 @@ object ResourceCaseObservableSuite extends BaseTestSuite { val cancelable = obs .flatMap(_ => Observable.never) .unsafeSubscribeFn(new Subscriber[Handle] { - implicit val scheduler = s + implicit val scheduler: Scheduler = s def onNext(elem: Handle) = Continue def onComplete() = diff --git a/monix-reactive/shared/src/test/scala/monix/reactive/internal/builders/StateActionObservableSuite.scala b/monix-reactive/shared/src/test/scala/monix/reactive/internal/builders/StateActionObservableSuite.scala index 3dbeea76b..9375a2cb4 100644 --- a/monix-reactive/shared/src/test/scala/monix/reactive/internal/builders/StateActionObservableSuite.scala +++ b/monix-reactive/shared/src/test/scala/monix/reactive/internal/builders/StateActionObservableSuite.scala @@ -19,6 +19,7 @@ package monix.reactive.internal.builders import minitest.TestSuite import monix.execution.Ack.Continue +import monix.execution.Scheduler import monix.execution.internal.Platform import monix.execution.schedulers.TestScheduler import monix.reactive.Observable @@ -66,7 +67,7 @@ object StateActionObservableSuite extends TestSuite[TestScheduler] { val cancelable = Observable .fromStateAction(int)(s.clockMonotonic(MILLISECONDS)) .unsafeSubscribeFn(new Subscriber[Int] { - implicit val scheduler = s + implicit val scheduler: Scheduler = s def onNext(elem: Int) = { sum += 1 Continue diff --git a/monix-reactive/shared/src/test/scala/monix/reactive/internal/builders/UnfoldEvalObservableSuite.scala b/monix-reactive/shared/src/test/scala/monix/reactive/internal/builders/UnfoldEvalObservableSuite.scala index aef238eb7..76e054d5e 100644 --- a/monix-reactive/shared/src/test/scala/monix/reactive/internal/builders/UnfoldEvalObservableSuite.scala +++ b/monix-reactive/shared/src/test/scala/monix/reactive/internal/builders/UnfoldEvalObservableSuite.scala @@ -22,6 +22,7 @@ import cats.laws._ import cats.laws.discipline._ import monix.eval.Task import monix.execution.Ack.Continue +import monix.execution.Scheduler import monix.execution.exceptions.DummyException import monix.execution.internal.Platform.recommendedBatchSize import monix.reactive.observers.Subscriber @@ -63,7 +64,7 @@ object UnfoldEvalObservableSuite extends BaseTestSuite { val cancelable = Observable .unfoldEval(s.clockMonotonic(MILLISECONDS))(intNowOption) .unsafeSubscribeFn(new Subscriber[Int] { - implicit val scheduler = s + implicit val scheduler: Scheduler = s def onNext(elem: Int) = { sum += 1 @@ -115,7 +116,7 @@ object UnfoldEvalObservableSuite extends BaseTestSuite { val cancelable = Observable .unfoldEvalF(s.clockMonotonic(MILLISECONDS))(intOptionIO) .unsafeSubscribeFn(new Subscriber[Int] { - implicit val scheduler = s + implicit val scheduler: Scheduler = s def onNext(elem: Int) = { sum += 1 diff --git a/monix-reactive/shared/src/test/scala/monix/reactive/internal/builders/UnfoldObservableSuite.scala b/monix-reactive/shared/src/test/scala/monix/reactive/internal/builders/UnfoldObservableSuite.scala index 5537b228a..9d39ff602 100644 --- a/monix-reactive/shared/src/test/scala/monix/reactive/internal/builders/UnfoldObservableSuite.scala +++ b/monix-reactive/shared/src/test/scala/monix/reactive/internal/builders/UnfoldObservableSuite.scala @@ -20,6 +20,7 @@ package monix.reactive.internal.builders import cats.laws._ import cats.laws.discipline._ import monix.execution.Ack.Continue +import monix.execution.Scheduler import monix.execution.internal.Platform.recommendedBatchSize import monix.reactive.observers.Subscriber import monix.reactive.{BaseTestSuite, Observable} @@ -59,7 +60,7 @@ object UnfoldObservableSuite extends BaseTestSuite { val cancelable = Observable .unfold(s.clockMonotonic(MILLISECONDS))(intOption) .unsafeSubscribeFn(new Subscriber[Int] { - implicit val scheduler = s + implicit val scheduler: Scheduler = s def onNext(elem: Int) = { sum += 1 diff --git a/monix-reactive/shared/src/test/scala/monix/reactive/internal/operators/BaseOperatorSuite.scala b/monix-reactive/shared/src/test/scala/monix/reactive/internal/operators/BaseOperatorSuite.scala index dce4168c1..bb01992af 100644 --- a/monix-reactive/shared/src/test/scala/monix/reactive/internal/operators/BaseOperatorSuite.scala +++ b/monix-reactive/shared/src/test/scala/monix/reactive/internal/operators/BaseOperatorSuite.scala @@ -17,12 +17,13 @@ package monix.reactive.internal.operators -import monix.execution.Ack +import monix.execution.{Ack, Scheduler} import monix.execution.Ack.{Continue, Stop} import monix.execution.FutureUtils.extensions._ import monix.execution.exceptions.DummyException import monix.reactive.observers.Subscriber import monix.reactive.{BaseTestSuite, Observable, Observer} + import scala.concurrent.duration._ import scala.concurrent.{Future, Promise} import scala.util.Random @@ -361,7 +362,7 @@ abstract class BaseOperatorSuite extends BaseTestSuite { var received = 0L val cancelable = obs.unsafeSubscribeFn(new Subscriber[Long] { - implicit val scheduler = s + implicit val scheduler: Scheduler = s def onError(ex: Throwable) = wasCompleted += 1 def onComplete() = wasCompleted += 1 diff --git a/monix-reactive/shared/src/test/scala/monix/reactive/internal/operators/BufferIntrospectiveSuite.scala b/monix-reactive/shared/src/test/scala/monix/reactive/internal/operators/BufferIntrospectiveSuite.scala index f88dcf954..dd680a221 100644 --- a/monix-reactive/shared/src/test/scala/monix/reactive/internal/operators/BufferIntrospectiveSuite.scala +++ b/monix-reactive/shared/src/test/scala/monix/reactive/internal/operators/BufferIntrospectiveSuite.scala @@ -19,7 +19,7 @@ package monix.reactive.internal.operators import minitest.TestSuite import monix.eval.Task -import monix.execution.Ack +import monix.execution.{Ack, Scheduler} import monix.execution.Ack.Continue import monix.execution.schedulers.TestScheduler import monix.reactive.observers.Subscriber @@ -46,7 +46,7 @@ object BufferIntrospectiveSuite extends TestSuite[TestScheduler] { subject .bufferIntrospective(maxSize = 10) .unsafeSubscribeFn(new Subscriber[List[Long]] { - implicit val scheduler = s + implicit val scheduler: Scheduler = s def onNext(elem: List[Long]): Future[Ack] = { sum += elem.sum diff --git a/monix-reactive/shared/src/test/scala/monix/reactive/internal/operators/BufferTimedSuite.scala b/monix-reactive/shared/src/test/scala/monix/reactive/internal/operators/BufferTimedSuite.scala index 3e3561aeb..0df0a8c4a 100644 --- a/monix-reactive/shared/src/test/scala/monix/reactive/internal/operators/BufferTimedSuite.scala +++ b/monix-reactive/shared/src/test/scala/monix/reactive/internal/operators/BufferTimedSuite.scala @@ -17,7 +17,7 @@ package monix.reactive.internal.operators -import monix.execution.Ack +import monix.execution.{Ack, Scheduler} import monix.execution.Ack.Continue import monix.execution.internal.Platform import monix.reactive.observers.Subscriber @@ -167,7 +167,7 @@ object BufferTimedSuite extends BaseOperatorSuite { .map(_.sum) obs.unsafeSubscribeFn(new Subscriber[Long] { - implicit val scheduler = s + implicit val scheduler: Scheduler = s def onNext(elem: Long): Future[Ack] = { received += elem diff --git a/monix-reactive/shared/src/test/scala/monix/reactive/observers/SubscriberFeedSuite.scala b/monix-reactive/shared/src/test/scala/monix/reactive/observers/SubscriberFeedSuite.scala index 006133c84..7759f1f5d 100644 --- a/monix-reactive/shared/src/test/scala/monix/reactive/observers/SubscriberFeedSuite.scala +++ b/monix-reactive/shared/src/test/scala/monix/reactive/observers/SubscriberFeedSuite.scala @@ -18,9 +18,11 @@ package monix.reactive.observers import monix.execution.Ack.{Continue, Stop} +import monix.execution.Scheduler import monix.execution.cancelables.BooleanCancelable import monix.execution.compat.internal.toIterator import monix.reactive.BaseTestSuite + import scala.concurrent.Future object SubscriberFeedSuite extends BaseTestSuite { @@ -28,7 +30,7 @@ object SubscriberFeedSuite extends BaseTestSuite { check1 { (xs: List[Int]) => var sum = 0 val downstream = new Subscriber.Sync[Int] { - implicit val scheduler = s + implicit val scheduler: Scheduler = s def onError(ex: Throwable): Unit = () def onComplete(): Unit = sum += 100 def onNext(elem: Int) = { @@ -48,7 +50,7 @@ object SubscriberFeedSuite extends BaseTestSuite { check1 { (xs: List[Int]) => var sum = 0 val downstream = new Subscriber[Int] { - implicit val scheduler = s + implicit val scheduler: Scheduler = s def onError(ex: Throwable): Unit = () def onComplete(): Unit = sum += 100 def onNext(elem: Int) = Future { @@ -68,7 +70,7 @@ object SubscriberFeedSuite extends BaseTestSuite { check1 { (xs: List[Int]) => var sum = 0 val downstream = new Subscriber.Sync[Int] { - implicit val scheduler = s + implicit val scheduler: Scheduler = s def onError(ex: Throwable): Unit = () def onComplete(): Unit = sum += 100 def onNext(elem: Int) = { @@ -88,7 +90,7 @@ object SubscriberFeedSuite extends BaseTestSuite { check1 { (xs: List[Int]) => var sum = 0 val downstream = new Subscriber[Int] { - implicit val scheduler = s + implicit val scheduler: Scheduler = s def onError(ex: Throwable): Unit = () def onComplete(): Unit = sum += 100 def onNext(elem: Int) = Future { @@ -108,7 +110,7 @@ object SubscriberFeedSuite extends BaseTestSuite { check1 { (xs: List[Int]) => var sum = 0 val downstream = new Subscriber.Sync[Int] { - implicit val scheduler = s + implicit val scheduler: Scheduler = s def onError(ex: Throwable): Unit = () def onComplete(): Unit = sum += 100 def onNext(elem: Int) = { @@ -126,7 +128,7 @@ object SubscriberFeedSuite extends BaseTestSuite { check1 { (xs: List[Int]) => var sum = 0 val downstream = new Subscriber[Int] { - implicit val scheduler = s + implicit val scheduler: Scheduler = s def onError(ex: Throwable): Unit = () def onComplete(): Unit = sum += 100 def onNext(elem: Int) = Future { @@ -144,7 +146,7 @@ object SubscriberFeedSuite extends BaseTestSuite { check1 { (xs: List[Int]) => var sum = 0 val downstream = new Subscriber[Int] { - implicit val scheduler = s + implicit val scheduler: Scheduler = s def onError(ex: Throwable): Unit = () def onComplete(): Unit = sum += 100 def onNext(elem: Int) = Future { diff --git a/monix-tail/shared/src/main/scala/monix/tail/internal/IterantToReactivePublisher.scala b/monix-tail/shared/src/main/scala/monix/tail/internal/IterantToReactivePublisher.scala index 3ae4f4f65..34b471181 100644 --- a/monix-tail/shared/src/main/scala/monix/tail/internal/IterantToReactivePublisher.scala +++ b/monix-tail/shared/src/main/scala/monix/tail/internal/IterantToReactivePublisher.scala @@ -47,7 +47,7 @@ private[tail] object IterantToReactivePublisher { def subscribe(out: Subscriber[_ >: A]): Unit = { // Reactive Streams requirement - if (out == null) throw null + if (out == null) throw new NullPointerException("Subscriber must not be null") source match { case Halt(e) => diff --git a/project/build.properties b/project/build.properties index 08e68ae69..757db63d2 100644 --- a/project/build.properties +++ b/project/build.properties @@ -15,4 +15,4 @@ # limitations under the License. # -sbt.version=1.5.2 +sbt.version=1.12.6 diff --git a/project/plugins.sbt b/project/plugins.sbt index 87a949525..cc1d1c1ba 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -1,15 +1,15 @@ -addSbtPlugin("org.scala-js" % "sbt-scalajs" % "1.10.0") -addSbtPlugin("com.eed3si9n" % "sbt-unidoc" % "0.4.3") -addSbtPlugin("pl.project13.scala" % "sbt-jmh" % "0.4.3") -addSbtPlugin("com.typesafe" % "sbt-mima-plugin" % "1.1.0") -addSbtPlugin("de.heikoseeberger" % "sbt-header" % "5.7.0") -addSbtPlugin("org.scalameta" % "sbt-scalafmt" % "2.4.6") -addSbtPlugin("com.github.tkawachi" % "sbt-doctest" % "0.10.0") -addSbtPlugin("org.scoverage" % "sbt-scoverage" % "1.9.3") -addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "1.2.0") -addSbtPlugin("net.bzzt" % "sbt-reproducible-builds" % "0.30") -addSbtPlugin("io.github.davidgregory084" % "sbt-tpolecat" % "0.3.1") -addSbtPlugin("com.dwijnand" % "sbt-dynver" % "4.1.1") -addSbtPlugin("com.typesafe.sbt" % "sbt-git" % "1.0.2") -addSbtPlugin("org.xerial.sbt" % "sbt-sonatype" % "3.9.12") -addSbtPlugin("com.github.sbt" % "sbt-pgp" % "2.1.2") +addSbtPlugin("org.scala-js" % "sbt-scalajs" % "1.20.2") +addSbtPlugin("com.github.sbt" % "sbt-unidoc" % "0.5.0") +addSbtPlugin("pl.project13.scala" % "sbt-jmh" % "0.4.7") +addSbtPlugin("com.typesafe" % "sbt-mima-plugin" % "1.1.4") +addSbtPlugin("de.heikoseeberger" % "sbt-header" % "5.10.0") +addSbtPlugin("org.scalameta" % "sbt-scalafmt" % "2.5.6") +addSbtPlugin("io.github.sbt-doctest" % "sbt-doctest" % "0.12.4") +addSbtPlugin("org.scoverage" % "sbt-scoverage" % "2.3.1") +addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "1.2.0") +addSbtPlugin("net.bzzt" % "sbt-reproducible-builds" % "0.32") +addSbtPlugin("org.typelevel" % "sbt-tpolecat" % "0.5.3") +addSbtPlugin("com.github.sbt" % "sbt-dynver" % "5.1.0") +addSbtPlugin("com.github.sbt" % "sbt-git" % "2.1.0") +addSbtPlugin("org.xerial.sbt" % "sbt-sonatype" % "3.12.2") +addSbtPlugin("com.github.sbt" % "sbt-pgp" % "2.3.1")