diff --git a/build.sbt b/build.sbt index 85631e914..516fc9a43 100644 --- a/build.sbt +++ b/build.sbt @@ -193,32 +193,21 @@ lazy val sharedSettings = pgpSettings ++ Seq( "-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 scalacOptions ++= { if (isDotty.value) - Seq.empty + Seq("-Wconf:msg=method getId in class Thread is deprecated:s") else Seq("-P:silencer:pathFilters=.*[/]src_managed[/].*") }, - scalacOptions --= { + // Disable unused locals check in Test for Scala 3 (generated doctest files trigger false positives) + Test / scalacOptions ++= { if (isDotty.value) - // 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") + Seq("-Wconf:msg=unused local definition:s") else - Seq() + Seq.empty }, // Syntax improvements, linting, etc. libraryDependencies ++= { diff --git a/monix-eval/shared/src/main/scala/monix/eval/Task.scala b/monix-eval/shared/src/main/scala/monix/eval/Task.scala index 4965f5111..6bf25be0d 100644 --- a/monix-eval/shared/src/main/scala/monix/eval/Task.scala +++ b/monix-eval/shared/src/main/scala/monix/eval/Task.scala @@ -1603,7 +1603,7 @@ sealed abstract class Task[+A] extends Serializable with TaskDeprecated.BinCompa * var line: String = "" * while (line != null) { * line = in.readLine() - * if (line != null) buffer.append(line) + * if (line != null) buffer.append(line): Unit * } * * buffer.toString diff --git a/monix-eval/shared/src/main/scala/monix/eval/internal/TaskConversions.scala b/monix-eval/shared/src/main/scala/monix/eval/internal/TaskConversions.scala index 1776618b0..3f9a84c38 100644 --- a/monix-eval/shared/src/main/scala/monix/eval/internal/TaskConversions.scala +++ b/monix-eval/shared/src/main/scala/monix/eval/internal/TaskConversions.scala @@ -184,7 +184,7 @@ private[eval] object TaskConversions { def run(): Unit = { if (canCall) { canCall = false - if (conn ne null) conn.pop() + if (conn ne null) conn.pop(): Unit cb(value) value = null } diff --git a/monix-eval/shared/src/main/scala/monix/eval/internal/TaskCreate.scala b/monix-eval/shared/src/main/scala/monix/eval/internal/TaskCreate.scala index 0fe10a715..b623a754a 100644 --- a/monix-eval/shared/src/main/scala/monix/eval/internal/TaskCreate.scala +++ b/monix-eval/shared/src/main/scala/monix/eval/internal/TaskCreate.scala @@ -219,7 +219,7 @@ private[eval] object TaskCreate { private def startExecution(): Unit = { // Cleanup of the current finalizer - if (shouldPop) ctx.connection.pop() + if (shouldPop) ctx.connection.pop(): Unit // Optimization — if the callback was called on the same thread // where it was created, then we are not going to fork // This is not safe to do when localContextPropagation enabled diff --git a/monix-eval/shared/src/main/scala/monix/eval/internal/TaskFromFuture.scala b/monix-eval/shared/src/main/scala/monix/eval/internal/TaskFromFuture.scala index ac1437775..c4ed47535 100644 --- a/monix-eval/shared/src/main/scala/monix/eval/internal/TaskFromFuture.scala +++ b/monix-eval/shared/src/main/scala/monix/eval/internal/TaskFromFuture.scala @@ -145,7 +145,7 @@ private[eval] object TaskFromFuture { } def run(): Unit = { - if (conn ne null) conn.pop() + if (conn ne null) conn.pop(): Unit val v = value value = null cb(v) diff --git a/monix-eval/shared/src/test/scala/monix/eval/TaskExecuteWithOptionsSuite.scala b/monix-eval/shared/src/test/scala/monix/eval/TaskExecuteWithOptionsSuite.scala index 4e5cad600..9fadb9004 100644 --- a/monix-eval/shared/src/test/scala/monix/eval/TaskExecuteWithOptionsSuite.scala +++ b/monix-eval/shared/src/test/scala/monix/eval/TaskExecuteWithOptionsSuite.scala @@ -31,7 +31,7 @@ object TaskExecuteWithOptionsSuite extends BaseTestSuite { val f = task.runToFuture s.tick() - val Some(Success((opt1, opt2))) = f.value + val Some(Success((opt1, opt2))) = f.value: @unchecked assert(opt1.localContextPropagation, "opt1.localContextPropagation") assert(!opt2.localContextPropagation, "!opt2.localContextPropagation") } diff --git a/monix-eval/shared/src/test/scala/monix/eval/TaskFlatMapSuite.scala b/monix-eval/shared/src/test/scala/monix/eval/TaskFlatMapSuite.scala index 111c79817..2bc43ab92 100644 --- a/monix-eval/shared/src/test/scala/monix/eval/TaskFlatMapSuite.scala +++ b/monix-eval/shared/src/test/scala/monix/eval/TaskFlatMapSuite.scala @@ -23,11 +23,13 @@ import monix.execution.Callback import monix.execution.atomic.{Atomic, AtomicInt} import monix.execution.exceptions.DummyException import monix.execution.internal.Platform + +import scala.annotation.unused import scala.util.{Failure, Random, Success, Try} object TaskFlatMapSuite extends BaseTestSuite { test("runAsync flatMap loop is not cancelable if autoCancelableRunLoops=false") { implicit s => - implicit val opts = Task.defaultOptions.disableAutoCancelableRunLoops + implicit val opts: Task.Options = Task.defaultOptions.disableAutoCancelableRunLoops val maxCount = Platform.recommendedBatchSize * 4 def loop(count: AtomicInt): Task[Unit] = @@ -77,7 +79,7 @@ object TaskFlatMapSuite extends BaseTestSuite { Task.unit.flatMap(_ => loop(count)) val atomic = Atomic(0) - var result = Option.empty[Try[Unit]] + @unused var result = Option.empty[Try[Unit]] val c = loop(atomic) .executeWithOptions(_.enableAutoCancelableRunLoops) diff --git a/monix-eval/shared/src/test/scala/monix/eval/TaskMemoizeOnSuccessSuite.scala b/monix-eval/shared/src/test/scala/monix/eval/TaskMemoizeOnSuccessSuite.scala index 4f1ade877..f89852389 100644 --- a/monix-eval/shared/src/test/scala/monix/eval/TaskMemoizeOnSuccessSuite.scala +++ b/monix-eval/shared/src/test/scala/monix/eval/TaskMemoizeOnSuccessSuite.scala @@ -56,7 +56,7 @@ object TaskMemoizeOnSuccessSuite extends BaseTestSuite { test("Task.memoizeOnSuccess should be stack safe") { implicit s => val count = if (Platform.isJVM) 50000 else 5000 var task = Task.evalAsync(1) - for (i <- 0 until count) task = task.memoizeOnSuccess + for (_ <- 0 until count) task = task.memoizeOnSuccess val f = task.runToFuture assertEquals(f.value, None) @@ -68,7 +68,7 @@ object TaskMemoizeOnSuccessSuite extends BaseTestSuite { val count = if (Platform.isJVM) 50000 else 5000 var task = Task.evalAsync(1) - for (i <- 0 until count) { + for (_ <- 0 until count) { task = task.memoizeOnSuccess.flatMap(x => Task.now(x)) } @@ -81,7 +81,7 @@ object TaskMemoizeOnSuccessSuite extends BaseTestSuite { test("Task.flatMap.memoizeOnSuccess should be stack safe, test 2") { implicit s => val count = if (Platform.isJVM) 50000 else 5000 var task = Task.evalAsync(1) - for (i <- 0 until count) { + for (_ <- 0 until count) { task = task.memoizeOnSuccess.flatMap(x => Task.evalAsync(x)) } @@ -171,7 +171,7 @@ object TaskMemoizeOnSuccessSuite extends BaseTestSuite { test("Task.eval.memoizeOnSuccess should be stack safe") { implicit s => val count = if (Platform.isJVM) 50000 else 5000 var task = Task.eval(1) - for (i <- 0 until count) + for (_ <- 0 until count) task = task.memoizeOnSuccess val f = task.runToFuture; s.tick() @@ -181,7 +181,7 @@ object TaskMemoizeOnSuccessSuite extends BaseTestSuite { test("Task.eval.flatMap.memoizeOnSuccess should be stack safe") { implicit s => val count = if (Platform.isJVM) 50000 else 5000 var task = Task.eval(1) - for (i <- 0 until count) { + for (_ <- 0 until count) { task = task.memoizeOnSuccess.flatMap(x => Task.eval(x)) } @@ -242,7 +242,7 @@ object TaskMemoizeOnSuccessSuite extends BaseTestSuite { test("Task.evalOnce.memoizeOnSuccess should be stack safe") { implicit s => val count = if (Platform.isJVM) 50000 else 5000 var task = Task.eval(1) - for (i <- 0 until count) { + for (_ <- 0 until count) { task = task.memoizeOnSuccess } @@ -253,7 +253,7 @@ object TaskMemoizeOnSuccessSuite extends BaseTestSuite { test("Task.evalOnce.flatMap.memoizeOnSuccess should be stack safe") { implicit s => val count = if (Platform.isJVM) 50000 else 5000 var task = Task.eval(1) - for (i <- 0 until count) { + for (_ <- 0 until count) { task = task.memoizeOnSuccess.flatMap(x => Task.evalOnce(x)) } @@ -297,7 +297,7 @@ object TaskMemoizeOnSuccessSuite extends BaseTestSuite { test("Task.now.memoizeOnSuccess should be stack safe") { implicit s => val count = if (Platform.isJVM) 50000 else 5000 var task = Task.now(1) - for (i <- 0 until count) { + for (_ <- 0 until count) { task = task.memoizeOnSuccess } @@ -308,7 +308,7 @@ object TaskMemoizeOnSuccessSuite extends BaseTestSuite { test("Task.now.flatMap.memoizeOnSuccess should be stack safe") { implicit s => val count = if (Platform.isJVM) 50000 else 5000 var task = Task.now(1) - for (i <- 0 until count) { + for (_ <- 0 until count) { task = task.memoizeOnSuccess.flatMap(x => Task.now(x)) } @@ -321,7 +321,7 @@ object TaskMemoizeOnSuccessSuite extends BaseTestSuite { test("Task.suspend.memoizeOnSuccess should be stack safe") { implicit s => val count = if (Platform.isJVM) 50000 else 5000 var task = Task.defer(Task.now(1)) - for (i <- 0 until count) { + for (_ <- 0 until count) { task = task.memoizeOnSuccess.map(x => x) } diff --git a/monix-execution/jvm/src/main/scala/monix/execution/schedulers/AdaptedThreadPoolExecutor.scala b/monix-execution/jvm/src/main/scala/monix/execution/schedulers/AdaptedThreadPoolExecutor.scala index 7bde71c5a..4c8eefc40 100644 --- a/monix-execution/jvm/src/main/scala/monix/execution/schedulers/AdaptedThreadPoolExecutor.scala +++ b/monix-execution/jvm/src/main/scala/monix/execution/schedulers/AdaptedThreadPoolExecutor.scala @@ -33,7 +33,7 @@ private[schedulers] abstract class AdaptedThreadPoolExecutor(corePoolSize: Int, if ((exception eq null) && r.isInstanceOf[Future[_]]) { try { val future = r.asInstanceOf[Future[_]] - if (future.isDone) future.get() + if (future.isDone) future.get(): Unit } catch { case ex: ExecutionException => exception = ex.getCause diff --git a/monix-execution/jvm/src/test/scala/monix/execution/FutureUtilsJVMSuite.scala b/monix-execution/jvm/src/test/scala/monix/execution/FutureUtilsJVMSuite.scala index 49835893f..d40b700ae 100644 --- a/monix-execution/jvm/src/test/scala/monix/execution/FutureUtilsJVMSuite.scala +++ b/monix-execution/jvm/src/test/scala/monix/execution/FutureUtilsJVMSuite.scala @@ -19,13 +19,13 @@ package monix.execution import java.util.concurrent.Executors import java.util.concurrent.atomic.AtomicLong - import minitest.TestSuite import monix.execution.FutureUtils.extensions._ import monix.execution.schedulers.TestScheduler import scala.concurrent.Future import scala.concurrent.duration._ +import scala.reflect.ClassTag object FutureUtilsJVMSuite extends TestSuite[TestScheduler] { @@ -40,6 +40,10 @@ object FutureUtilsJVMSuite extends TestSuite[TestScheduler] { case class TestException() extends RuntimeException + object TestException { + val ct: ClassTag[TestException] = implicitly[ClassTag[TestException]] + } + val total = new AtomicLong(0) val sideEffect = new AtomicLong(0) val error = new AtomicLong(0) @@ -64,7 +68,7 @@ object FutureUtilsJVMSuite extends TestSuite[TestScheduler] { success.incrementAndGet() () }.recover { - case _: TestException => + case TestException.ct(_) => error.incrementAndGet() () } diff --git a/monix-execution/jvm/src/test/scala/monix/execution/atomic/ConcurrentAtomicNumberSuite.scala b/monix-execution/jvm/src/test/scala/monix/execution/atomic/ConcurrentAtomicNumberSuite.scala index 0129a6822..cf8f622fb 100644 --- a/monix-execution/jvm/src/test/scala/monix/execution/atomic/ConcurrentAtomicNumberSuite.scala +++ b/monix-execution/jvm/src/test/scala/monix/execution/atomic/ConcurrentAtomicNumberSuite.scala @@ -39,8 +39,8 @@ abstract class ConcurrentAtomicNumberSuite[A, R <: AtomicNumber[A]]( test("should perform concurrent compareAndSet") { val r = Atomic(ev.zero) - val futures = for (i <- 0 until 5) yield Future { - for (j <- 0 until 100) + val futures = for (_ <- 0 until 5) yield Future { + for (_ <- 0 until 100) r.increment() } @@ -51,7 +51,7 @@ abstract class ConcurrentAtomicNumberSuite[A, R <: AtomicNumber[A]]( test("should perform concurrent getAndSet") { val r = Atomic(ev.zero) - val futures = for (i <- 0 until 5) yield Future { + val futures = for (_ <- 0 until 5) yield Future { for (j <- 0 until 100) r.getAndSet(ev.fromInt(j + 1)) } @@ -63,8 +63,8 @@ abstract class ConcurrentAtomicNumberSuite[A, R <: AtomicNumber[A]]( test("should perform concurrent increment") { val r = Atomic(ev.zero) - val futures = for (i <- 0 until 5) yield Future { - for (j <- 0 until 100) + val futures = for (_ <- 0 until 5) yield Future { + for (_ <- 0 until 100) r.increment() } @@ -75,8 +75,8 @@ abstract class ConcurrentAtomicNumberSuite[A, R <: AtomicNumber[A]]( test("should perform concurrent incrementAndGet") { val r = Atomic(ev.zero) - val futures = for (i <- 0 until 5) yield Future { - for (j <- 0 until 100) + val futures = for (_ <- 0 until 5) yield Future { + for (_ <- 0 until 100) r.incrementAndGet() } @@ -87,8 +87,8 @@ abstract class ConcurrentAtomicNumberSuite[A, R <: AtomicNumber[A]]( test("should perform concurrent getAndIncrement") { val r = Atomic(ev.zero) - val futures = for (i <- 0 until 5) yield Future { - for (j <- 0 until 100) + val futures = for (_ <- 0 until 5) yield Future { + for (_ <- 0 until 100) r.getAndIncrement() } diff --git a/monix-execution/jvm/src/test/scala/monix/execution/atomic/ConcurrentAtomicSuite.scala b/monix-execution/jvm/src/test/scala/monix/execution/atomic/ConcurrentAtomicSuite.scala index 2df5b8ef7..3952d260e 100644 --- a/monix-execution/jvm/src/test/scala/monix/execution/atomic/ConcurrentAtomicSuite.scala +++ b/monix-execution/jvm/src/test/scala/monix/execution/atomic/ConcurrentAtomicSuite.scala @@ -38,8 +38,8 @@ abstract class ConcurrentAtomicSuite[A, R <: Atomic[A]]( test("should perform concurrent compareAndSet") { val r = Atomic(zero) - val futures = for (i <- 0 until 5) yield Future { - for (j <- 0 until 100) + val futures = for (_ <- 0 until 5) yield Future { + for (_ <- 0 until 100) r.transform(x => valueFromInt(valueToInt(x) + 1)) } @@ -50,7 +50,7 @@ abstract class ConcurrentAtomicSuite[A, R <: Atomic[A]]( test("should perform concurrent getAndSet") { val r = Atomic(zero) - val futures = for (i <- 0 until 5) yield Future { + val futures = for (_ <- 0 until 5) yield Future { for (j <- 0 until 100) r.getAndSet(valueFromInt(j)) } diff --git a/monix-execution/shared/src/main/scala/monix/execution/Ack.scala b/monix-execution/shared/src/main/scala/monix/execution/Ack.scala index d4a401d4d..ed477a79f 100644 --- a/monix-execution/shared/src/main/scala/monix/execution/Ack.scala +++ b/monix-execution/shared/src/main/scala/monix/execution/Ack.scala @@ -213,11 +213,11 @@ object Ack { */ def syncOnContinueFollow[A](p: Promise[A], value: A): Self = { if (source eq Continue) - p.trySuccess(value) + p.trySuccess(value): Unit else if (source ne Stop) source.onComplete { r => if (r.isSuccess && (r.get eq Continue)) - p.trySuccess(value) + p.trySuccess(value): Unit }(immediate) source } @@ -227,11 +227,11 @@ object Ack { */ def syncOnStopFollow[A](p: Promise[A], value: A): Self = { if (source eq Stop) - p.trySuccess(value) + p.trySuccess(value): Unit else if (source ne Continue) source.onComplete { r => if (r.isSuccess && (r.get eq Stop)) - p.trySuccess(value) + p.trySuccess(value): Unit }(immediate) source } diff --git a/monix-execution/shared/src/main/scala/monix/execution/CancelableFuture.scala b/monix-execution/shared/src/main/scala/monix/execution/CancelableFuture.scala index 0c08a360c..e06a1f5cc 100644 --- a/monix-execution/shared/src/main/scala/monix/execution/CancelableFuture.scala +++ b/monix-execution/shared/src/main/scala/monix/execution/CancelableFuture.scala @@ -128,7 +128,7 @@ sealed abstract class CancelableFuture[+A] extends Future[A] with Cancelable { s override final def andThen[U](pf: PartialFunction[Try[A], U])(implicit executor: ExecutionContext): CancelableFuture[A] = transformWith { r => - if (pf.isDefinedAt(r)) pf(r) + if (pf.isDefinedAt(r)) pf(r): Unit this } diff --git a/monix-execution/shared/src/main/scala/monix/execution/CancelablePromise.scala b/monix-execution/shared/src/main/scala/monix/execution/CancelablePromise.scala index fc00e7895..f60512961 100644 --- a/monix-execution/shared/src/main/scala/monix/execution/CancelablePromise.scala +++ b/monix-execution/shared/src/main/scala/monix/execution/CancelablePromise.scala @@ -242,7 +242,7 @@ object CancelablePromise { } if (errors ne null) { // Throws all errors as a composite - val x :: xs = errors.toList + val x :: xs = errors.toList: @unchecked throw Platform.composeErrors(x, xs: _*) } true diff --git a/monix-execution/shared/src/test/scala/monix/execution/CancelableSuite.scala b/monix-execution/shared/src/test/scala/monix/execution/CancelableSuite.scala index 7a390a0a2..36acad52b 100644 --- a/monix-execution/shared/src/test/scala/monix/execution/CancelableSuite.scala +++ b/monix-execution/shared/src/test/scala/monix/execution/CancelableSuite.scala @@ -79,7 +79,7 @@ object CancelableSuite extends SimpleTestSuite { assertEquals(e, dummy1) assertEquals(e.getSuppressed.toList, List(dummy2)) } else { - val CompositeException(errors) = e + val CompositeException(errors) = e: @unchecked assertEquals(errors.toList, List(dummy1, dummy2)) } } @@ -121,7 +121,7 @@ object CancelableSuite extends SimpleTestSuite { assertEquals(e, dummy1) assertEquals(e.getSuppressed.toList, List(dummy2)) } else { - val CompositeException(errors) = sc.state.lastReportedError + val CompositeException(errors) = sc.state.lastReportedError: @unchecked assertEquals(errors.toList, List(dummy1, dummy2)) } } diff --git a/monix-execution/shared/src/test/scala/monix/execution/cancelables/OrderedCancelableSuite.scala b/monix-execution/shared/src/test/scala/monix/execution/cancelables/OrderedCancelableSuite.scala index 623a164c4..f6bab7d11 100644 --- a/monix-execution/shared/src/test/scala/monix/execution/cancelables/OrderedCancelableSuite.scala +++ b/monix-execution/shared/src/test/scala/monix/execution/cancelables/OrderedCancelableSuite.scala @@ -107,11 +107,11 @@ object OrderedCancelableSuite extends SimpleTestSuite { val c2 = Cancelable { () => effect = 2 } - mc.orderedUpdate(c2, Long.MaxValue + 1) + mc.orderedUpdate(c2, Long.MinValue) val c3 = Cancelable { () => effect = 3 } - mc.orderedUpdate(c3, Long.MaxValue + 2) + mc.orderedUpdate(c3, Long.MinValue + 1) val c4 = Cancelable { () => effect = 4 } diff --git a/monix-execution/shared/src/test/scala/monix/execution/schedulers/ExecutionModelSuite.scala b/monix-execution/shared/src/test/scala/monix/execution/schedulers/ExecutionModelSuite.scala index 786069d17..3c9476e5c 100644 --- a/monix-execution/shared/src/test/scala/monix/execution/schedulers/ExecutionModelSuite.scala +++ b/monix-execution/shared/src/test/scala/monix/execution/schedulers/ExecutionModelSuite.scala @@ -59,7 +59,7 @@ object ExecutionModelSuite extends SimpleTestSuite { assert(em.recommendedBatchSize >= i) var index = 1 - for (j <- 1 until em.recommendedBatchSize * 3) { + for (_ <- 1 until em.recommendedBatchSize * 3) { index = em.nextFrameIndex(index) assert(index >= 0 && index < em.recommendedBatchSize) } diff --git a/monix-reactive/shared/src/main/scala/monix/reactive/internal/builders/IntervalFixedDelayObservable.scala b/monix-reactive/shared/src/main/scala/monix/reactive/internal/builders/IntervalFixedDelayObservable.scala index 767bdee76..af286fb28 100644 --- a/monix-reactive/shared/src/main/scala/monix/reactive/internal/builders/IntervalFixedDelayObservable.scala +++ b/monix-reactive/shared/src/main/scala/monix/reactive/internal/builders/IntervalFixedDelayObservable.scala @@ -48,7 +48,7 @@ private[reactive] final class IntervalFixedDelayObservable(initialDelay: FiniteD def asyncScheduleNext(r: Future[Ack]): Unit = r.onComplete { case Success(ack) => - if (ack == Continue) scheduleNext() + if (ack == Continue) scheduleNext(): Unit case Failure(ex) => s.reportFailure(ex) } 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 e2bee124a..944a29a45 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 @@ -69,7 +69,7 @@ private[reactive] final class BufferTimedObservable[+A](source: Observable[A], t sendNextAndReset(now).syncOnContinue( // Schedule the next tick, but only after we are done // sending the bundle - run()) + run()): Unit } () } 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 eade4dfc0..e07eb0a3e 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 @@ -87,7 +87,7 @@ private[reactive] final class DebounceObservable[A](source: Observable[A], timeo mainTask.cancel() } Stop - } + }: Unit } else { val remainingTime = timeoutMillis - sinceLastOnNext scheduleNext(remainingTime) 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 69cf76a89..72c960d8c 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 @@ -73,7 +73,7 @@ private[reactive] final class DelayByTimespanObservable[A](source: Observable[A] hasError = true try out.onError(ex) finally { - if (ack != null) ack.trySuccess(Stop) + if (ack != null) ack.trySuccess(Stop): Unit task.cancel() } } 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 516623633..0ace9a497 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 @@ -61,7 +61,7 @@ private[reactive] final class IntersperseObservable[+A]( def onComplete() = { downstreamAck.syncOnContinue { - if (atLeastOne && end.nonEmpty) out.onNext(end.get) + if (atLeastOne && end.nonEmpty) out.onNext(end.get): Unit 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 6aecb6bbf..70454d113 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 @@ -56,7 +56,7 @@ private[reactive] final class ReduceOperator[A](op: (A, A) => A) extends Operato def onComplete(): Unit = if (!isDone) { isDone = true - if (!isFirst) out.onNext(state) + if (!isFirst) out.onNext(state): Unit out.onComplete() } 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 dd8247fa9..828a5bdac 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 @@ -47,7 +47,7 @@ private[reactive] final class TakeByPredicateOperator[A](p: A => Boolean, inclus } else { isActive = false if (inclusive) { - out.onNext(elem) + out.onNext(elem): Unit } out.onComplete() Stop 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 7607be001..89ad69e3c 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 @@ -114,7 +114,7 @@ private[reactive] final class ThrottleLatestObservable[A]( override def onComplete(): Unit = self.synchronized { if (!isDone) { val lastAck = if(ack == null) Continue else ack - lastAck.syncTryFlatten.syncOnContinue{signalOnComplete()} + lastAck.syncTryFlatten.syncOnContinue{signalOnComplete()}: Unit } () } diff --git a/monix-reactive/shared/src/main/scala/monix/reactive/observables/CachedObservable.scala b/monix-reactive/shared/src/main/scala/monix/reactive/observables/CachedObservable.scala index 9a548c9ba..b359f619a 100644 --- a/monix-reactive/shared/src/main/scala/monix/reactive/observables/CachedObservable.scala +++ b/monix-reactive/shared/src/main/scala/monix/reactive/observables/CachedObservable.scala @@ -46,7 +46,7 @@ final class CachedObservable[+A] private (source: Observable[A], maxCapacity: In def unsafeSubscribeFn(subscriber: Subscriber[A]): Cancelable = { import subscriber.scheduler if (isStarted.compareAndSet(expect = false, update = true)) - source.unsafeSubscribeFn(Subscriber(subject, scheduler)) + source.unsafeSubscribeFn(Subscriber(subject, scheduler)): Unit subject.unsafeSubscribeFn(subscriber) } } 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 206b40140..fba246617 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 @@ -58,7 +58,7 @@ final class RefCountObservable[+A] private (source: ConnectableObservable[A]) ex val countdown = Cancelable(() => countDownToConnectionCancel()) // Subscribing and triggering connect() if this is the first subscription val ret = source.unsafeSubscribeFn(wrap(subscriber, countdown)) - if (current == -1) connection // triggers connect() + if (current == -1) connection: Unit // triggers connect() // A composite that both cancels this subscription and does the countdown Cancelable { () => try ret.cancel() 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 27eff2718..e61943f26 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 @@ -169,7 +169,7 @@ final class ConnectableSubscriber[-A] private (underlying: Subscriber[A]) extend def onComplete(): Unit = { if (!scheduledDone) { - ack.syncOnContinue { bufferWasDrained.trySuccess(Continue); () } + ack.syncOnContinue { bufferWasDrained.trySuccess(Continue); () }: Unit } else if (scheduledError ne null) { if (bufferWasDrained.trySuccess(Stop)) underlying.onError(scheduledError) diff --git a/monix-reactive/shared/src/main/scala/monix/reactive/subjects/PublishSubject.scala b/monix-reactive/shared/src/main/scala/monix/reactive/subjects/PublishSubject.scala index ed372134f..edc45f23b 100644 --- a/monix-reactive/shared/src/main/scala/monix/reactive/subjects/PublishSubject.scala +++ b/monix-reactive/shared/src/main/scala/monix/reactive/subjects/PublishSubject.scala @@ -126,7 +126,7 @@ final class PublishSubject[A] private () extends Subject[A, A] { self => if (ack.isCompleted) { // subscriber canceled or triggered an error? Then remove! if (ack != Continue && ack.value.get != Continue.AsSuccess) - unsubscribe(subscriber) + unsubscribe(subscriber): Unit } else { // going async, so we've got to count active futures for final Ack // the counter starts from 1 because zero implies isCompleted diff --git a/monix-reactive/shared/src/test/scala/monix/reactive/consumers/ForeachAsyncConsumerSuite.scala b/monix-reactive/shared/src/test/scala/monix/reactive/consumers/ForeachAsyncConsumerSuite.scala index 4ce4f098a..e310b6b5c 100644 --- a/monix-reactive/shared/src/test/scala/monix/reactive/consumers/ForeachAsyncConsumerSuite.scala +++ b/monix-reactive/shared/src/test/scala/monix/reactive/consumers/ForeachAsyncConsumerSuite.scala @@ -24,6 +24,7 @@ import monix.execution.exceptions.DummyException import monix.execution.schedulers.TestScheduler import monix.reactive.{Consumer, Observable} +import scala.annotation.unused import scala.concurrent.Future import scala.util.{Failure, Success} @@ -66,7 +67,7 @@ object ForeachAsyncConsumerSuite extends TestSuite[TestScheduler] { test("should interrupt with error") { implicit s => val ex = DummyException("dummy") val obs = Observable.range(0, 10000).endWithError(ex) - var sum = 0L + @unused var sum = 0L val f = obs .consumeWith( Consumer diff --git a/monix-reactive/shared/src/test/scala/monix/reactive/consumers/ForeachConsumerSuite.scala b/monix-reactive/shared/src/test/scala/monix/reactive/consumers/ForeachConsumerSuite.scala index d58ea687f..a613c15b8 100644 --- a/monix-reactive/shared/src/test/scala/monix/reactive/consumers/ForeachConsumerSuite.scala +++ b/monix-reactive/shared/src/test/scala/monix/reactive/consumers/ForeachConsumerSuite.scala @@ -21,6 +21,8 @@ import minitest.TestSuite import monix.execution.exceptions.DummyException import monix.execution.schedulers.TestScheduler import monix.reactive.{Consumer, Observable} + +import scala.annotation.unused import scala.util.{Failure, Success} object ForeachConsumerSuite extends TestSuite[TestScheduler] { @@ -43,7 +45,7 @@ object ForeachConsumerSuite extends TestSuite[TestScheduler] { test("should interrupt with error") { implicit s => val ex = DummyException("dummy") val obs = Observable.range(0, 10000).endWithError(ex) - var sum = 0L + @unused var sum = 0L val f = obs.consumeWith(Consumer.foreach(x => sum += x)).runToFuture s.tick() 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 51ad68643..2acef1e00 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 @@ -30,6 +30,7 @@ import monix.reactive.Observable import monix.reactive.observers.Subscriber import org.scalacheck.{Gen, Prop} +import scala.annotation.unused import scala.collection.mutable.ListBuffer import scala.util.{Failure, Random, Success} @@ -109,9 +110,9 @@ object InputStreamObservableSuite extends SimpleTestSuite with Checkers { } test("fromInputStreamUnsafe works for SynchronousExecution") { - implicit val s = TestScheduler(SynchronousExecution) + implicit val s: TestScheduler = TestScheduler(SynchronousExecution) - var wasCompleted = 0 + @unused var wasCompleted = 0 val received = ListBuffer.empty[Byte] val array = randomByteArray() val in = new ByteArrayInputStream(array) 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 f7bb0db40..5e19fd92b 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 @@ -29,6 +29,7 @@ import monix.reactive.Observable import monix.execution.exceptions.DummyException import monix.reactive.observers.Subscriber +import scala.annotation.unused import scala.util.{Failure, Random, Success} object LinesReaderObservableSuite extends SimpleTestSuite { @@ -87,9 +88,9 @@ object LinesReaderObservableSuite extends SimpleTestSuite { } test("fromLinesReaderUnsafe works for SynchronousExecution") { - implicit val s = TestScheduler(SynchronousExecution) + implicit val s: TestScheduler = TestScheduler(SynchronousExecution) - var wasCompleted = 0 + @unused var wasCompleted = 0 var received = "" val string = randomString() val in = new BufferedReader(new StringReader(string)) 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 dd680a221..7810ed175 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 @@ -72,7 +72,7 @@ object BufferIntrospectiveSuite extends TestSuite[TestScheduler] { s.tick() assertEquals(sum, 6) - for (i <- 0 until 10) subject.onNext(1) + for (_ <- 0 until 10) subject.onNext(1) s.tick() assertEquals(sum, 6) diff --git a/monix-reactive/shared/src/test/scala/monix/reactive/internal/operators/GroupBySuite.scala b/monix-reactive/shared/src/test/scala/monix/reactive/internal/operators/GroupBySuite.scala index 5dcb76d63..acffa81da 100644 --- a/monix-reactive/shared/src/test/scala/monix/reactive/internal/operators/GroupBySuite.scala +++ b/monix-reactive/shared/src/test/scala/monix/reactive/internal/operators/GroupBySuite.scala @@ -22,6 +22,8 @@ import monix.execution.Ack import monix.execution.Ack.{Continue, Stop} import monix.reactive.subjects.PublishSubject import monix.reactive.{Observable, Observer} + +import scala.annotation.unused import scala.concurrent.Future import scala.concurrent.duration.Duration.Zero import scala.concurrent.duration._ @@ -59,7 +61,7 @@ object GroupBySuite extends BaseOperatorSuite { test("on complete the key should get recycled") { implicit s => var received = 0 - var wasCompleted = 0 + @unused var wasCompleted = 0 var fallbackTick = 0 var nextShouldCancel = false diff --git a/monix-reactive/shared/src/test/scala/monix/reactive/internal/operators/MapParallelOrderedSuite.scala b/monix-reactive/shared/src/test/scala/monix/reactive/internal/operators/MapParallelOrderedSuite.scala index 81557d88c..45d4de2c9 100644 --- a/monix-reactive/shared/src/test/scala/monix/reactive/internal/operators/MapParallelOrderedSuite.scala +++ b/monix-reactive/shared/src/test/scala/monix/reactive/internal/operators/MapParallelOrderedSuite.scala @@ -26,6 +26,7 @@ import monix.execution.exceptions.DummyException import monix.execution.internal.Platform import monix.reactive.{Observable, Observer, OverflowStrategy} +import scala.annotation.unused import scala.concurrent.{Future, Promise} import scala.concurrent.duration._ import scala.util.{Failure, Random} @@ -198,7 +199,7 @@ object MapParallelOrderedSuite extends BaseOperatorSuite { val dummy = DummyException("dummy") var isComplete = false var wasThrown: Throwable = null - var received = 0L + @unused var received = 0L val task1 = Task(1L) val task2 = Task.raiseError[Long](dummy) @@ -234,8 +235,8 @@ object MapParallelOrderedSuite extends BaseOperatorSuite { test("should interrupt the streaming on error, test #2") { implicit s => val dummy = DummyException("dummy") var isComplete = false - var wasThrown: Throwable = null - var received = 0L + @unused var wasThrown: Throwable = null + @unused var received = 0L val task1 = Task(1L) val tasks = List.fill(8)(task1) @@ -270,8 +271,8 @@ object MapParallelOrderedSuite extends BaseOperatorSuite { test("should protect against user error") { implicit s => val dummy = DummyException("dummy") var isComplete = false - var wasThrown: Throwable = null - var received = 0L + @unused var wasThrown: Throwable = null + @unused var received = 0L Observable .range(0, 100) diff --git a/monix-reactive/shared/src/test/scala/monix/reactive/internal/operators/MapParallelUnorderedSuite.scala b/monix-reactive/shared/src/test/scala/monix/reactive/internal/operators/MapParallelUnorderedSuite.scala index 77e64e38c..112ab71d2 100644 --- a/monix-reactive/shared/src/test/scala/monix/reactive/internal/operators/MapParallelUnorderedSuite.scala +++ b/monix-reactive/shared/src/test/scala/monix/reactive/internal/operators/MapParallelUnorderedSuite.scala @@ -19,13 +19,13 @@ package monix.reactive.internal.operators import cats.laws._ import cats.laws.discipline._ - import monix.eval.Task import monix.execution.Ack.Continue import monix.execution.internal.Platform import monix.execution.exceptions.DummyException import monix.reactive.{Observable, Observer, OverflowStrategy} +import scala.annotation.unused import scala.concurrent.Promise import scala.concurrent.duration._ import scala.util.{Failure, Random} @@ -155,7 +155,7 @@ object MapParallelUnorderedSuite extends BaseOperatorSuite { val dummy = DummyException("dummy") var isComplete = false var wasThrown: Throwable = null - var received = 0L + @unused var received = 0L val task1 = Task.evalAsync(1L) val task2 = Task.raiseError[Long](dummy) @@ -192,7 +192,7 @@ object MapParallelUnorderedSuite extends BaseOperatorSuite { val dummy = DummyException("dummy") var isComplete = false var wasThrown: Throwable = null - var received = 0L + @unused var received = 0L val task1 = Task.evalAsync(1L) val tasks = List.fill(8)(task1) @@ -228,7 +228,7 @@ object MapParallelUnorderedSuite extends BaseOperatorSuite { val dummy = DummyException("dummy") var isComplete = false var wasThrown: Throwable = null - var received = 0L + @unused var received = 0L Observable .range(0, 100) diff --git a/monix-reactive/shared/src/test/scala/monix/reactive/internal/operators/WhileBusyDropEventsAndSignalOverflowSuite.scala b/monix-reactive/shared/src/test/scala/monix/reactive/internal/operators/WhileBusyDropEventsAndSignalOverflowSuite.scala index d763abb22..77f974a88 100644 --- a/monix-reactive/shared/src/test/scala/monix/reactive/internal/operators/WhileBusyDropEventsAndSignalOverflowSuite.scala +++ b/monix-reactive/shared/src/test/scala/monix/reactive/internal/operators/WhileBusyDropEventsAndSignalOverflowSuite.scala @@ -22,6 +22,8 @@ import monix.execution.Ack.Continue import monix.execution.schedulers.TestScheduler import monix.reactive.subjects.PublishSubject import monix.reactive.{Observable, Observer} + +import scala.annotation.unused import scala.concurrent.Promise import scala.util.Success @@ -47,7 +49,7 @@ object WhileBusyDropEventsAndSignalOverflowSuite extends TestSuite[TestScheduler val source = PublishSubject[Long]() val p = Promise[Continue.type]() var received = 0L - var wasCompleted = false + @unused var wasCompleted = false source .whileBusyDropEventsAndSignal(x => x) diff --git a/monix-reactive/shared/src/test/scala/monix/reactive/internal/operators/WhileBusyDropEventsSuite.scala b/monix-reactive/shared/src/test/scala/monix/reactive/internal/operators/WhileBusyDropEventsSuite.scala index 96e542f4f..a2e2c877f 100644 --- a/monix-reactive/shared/src/test/scala/monix/reactive/internal/operators/WhileBusyDropEventsSuite.scala +++ b/monix-reactive/shared/src/test/scala/monix/reactive/internal/operators/WhileBusyDropEventsSuite.scala @@ -23,6 +23,8 @@ import monix.execution.schedulers.TestScheduler import monix.execution.exceptions.DummyException import monix.reactive.subjects.PublishSubject import monix.reactive.{Observable, Observer} + +import scala.annotation.unused import scala.concurrent.Promise import scala.util.Success @@ -43,7 +45,7 @@ object WhileBusyDropEventsSuite extends TestSuite[TestScheduler] { val source = PublishSubject[Long]() val p = Promise[Continue.type]() var received = 0L - var wasCompleted = false + @unused var wasCompleted = false source.whileBusyDropEvents.unsafeSubscribeFn(new Observer[Long] { def onNext(elem: Long) = { diff --git a/monix-reactive/shared/src/test/scala/monix/reactive/internal/rstreams/MonixSubscriberAsReactiveSuite.scala b/monix-reactive/shared/src/test/scala/monix/reactive/internal/rstreams/MonixSubscriberAsReactiveSuite.scala index 4badfdff6..7ff1b1d5d 100644 --- a/monix-reactive/shared/src/test/scala/monix/reactive/internal/rstreams/MonixSubscriberAsReactiveSuite.scala +++ b/monix-reactive/shared/src/test/scala/monix/reactive/internal/rstreams/MonixSubscriberAsReactiveSuite.scala @@ -22,6 +22,7 @@ import monix.execution.Ack.{Continue, Stop} import monix.execution.schedulers.TestScheduler import monix.reactive.{Observable, Observer} +import scala.annotation.unused import scala.concurrent.Future object MonixSubscriberAsReactiveSuite extends TestSuite[TestScheduler] { @@ -37,7 +38,7 @@ object MonixSubscriberAsReactiveSuite extends TestSuite[TestScheduler] { test("should work with synchronous batched requests") { implicit scheduler => var sum = 0L - var completed = false + @unused var completed = false val observer = new Observer[Long] { def onNext(elem: Long) = { @@ -145,7 +146,7 @@ object MonixSubscriberAsReactiveSuite extends TestSuite[TestScheduler] { } test("should work synchronously and with requests of size 1") { implicit s => - var completed = false + @unused var completed = false var sum = 0L val observer = new Observer[Long] { @@ -174,7 +175,7 @@ object MonixSubscriberAsReactiveSuite extends TestSuite[TestScheduler] { } test("should work with asynchronous boundaries and batched requests") { implicit s => - var completed = false + @unused var completed = false var sum = 0L val observer = new Observer[Long] { @@ -203,7 +204,7 @@ object MonixSubscriberAsReactiveSuite extends TestSuite[TestScheduler] { } test("should work with asynchronous boundaries and requests of size 1") { implicit scheduler => - var completed = false + @unused var completed = false var sum = 0L val observer = new Observer[Long] { @@ -273,7 +274,7 @@ object MonixSubscriberAsReactiveSuite extends TestSuite[TestScheduler] { } test("should cancel precisely with requests of size 1") { implicit s => - for (i <- 0 until 100) { + for (_ <- 0 until 100) { var completed = 0 var sum = 0L diff --git a/monix-reactive/shared/src/test/scala/monix/reactive/internal/rstreams/ObservableIsPublisherSuite.scala b/monix-reactive/shared/src/test/scala/monix/reactive/internal/rstreams/ObservableIsPublisherSuite.scala index b49704589..e614b2f21 100644 --- a/monix-reactive/shared/src/test/scala/monix/reactive/internal/rstreams/ObservableIsPublisherSuite.scala +++ b/monix-reactive/shared/src/test/scala/monix/reactive/internal/rstreams/ObservableIsPublisherSuite.scala @@ -26,6 +26,7 @@ import monix.reactive.Observable import monix.reactive.subjects.PublishSubject import org.reactivestreams.{Subscriber, Subscription} +import scala.annotation.unused import scala.util.Success object ObservableIsPublisherSuite extends TestSuite[TestScheduler] { @@ -40,7 +41,7 @@ object ObservableIsPublisherSuite extends TestSuite[TestScheduler] { } test("should work with stop-and-wait back-pressure, test 1") { implicit scheduler => - var wasCompleted = false + @unused var wasCompleted = false var sum = 0L Observable diff --git a/monix-reactive/shared/src/test/scala/monix/reactive/observers/ObserverFeedSuite.scala b/monix-reactive/shared/src/test/scala/monix/reactive/observers/ObserverFeedSuite.scala index 7933f22f1..f0ef12dca 100644 --- a/monix-reactive/shared/src/test/scala/monix/reactive/observers/ObserverFeedSuite.scala +++ b/monix-reactive/shared/src/test/scala/monix/reactive/observers/ObserverFeedSuite.scala @@ -20,6 +20,8 @@ package monix.reactive.observers import monix.execution.Ack.{Continue, Stop} import monix.execution.cancelables.BooleanCancelable import monix.reactive.{BaseTestSuite, Observer} + +import scala.annotation.unused import scala.concurrent.Future import scala.util.Success @@ -98,7 +100,7 @@ object ObserverFeedSuite extends BaseTestSuite { test("should be cancelable") { implicit s => check1 { (xs: List[Int]) => - var sum = 0 + @unused var sum = 0 val downstream = new Observer[Int] { def onError(ex: Throwable): Unit = () def onComplete(): Unit = sum += 100 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 7759f1f5d..998b525b2 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 @@ -23,6 +23,7 @@ import monix.execution.cancelables.BooleanCancelable import monix.execution.compat.internal.toIterator import monix.reactive.BaseTestSuite +import scala.annotation.unused import scala.concurrent.Future object SubscriberFeedSuite extends BaseTestSuite { @@ -144,7 +145,7 @@ object SubscriberFeedSuite extends BaseTestSuite { test("should be cancelable") { s => check1 { (xs: List[Int]) => - var sum = 0 + @unused var sum = 0 val downstream = new Subscriber[Int] { implicit val scheduler: Scheduler = s def onError(ex: Throwable): Unit = () diff --git a/monix-reactive/shared/src/test/scala/monix/reactive/subjects/BehaviorSubjectSuite.scala b/monix-reactive/shared/src/test/scala/monix/reactive/subjects/BehaviorSubjectSuite.scala index 0b05bc2e9..14287d0f6 100644 --- a/monix-reactive/shared/src/test/scala/monix/reactive/subjects/BehaviorSubjectSuite.scala +++ b/monix-reactive/shared/src/test/scala/monix/reactive/subjects/BehaviorSubjectSuite.scala @@ -41,7 +41,7 @@ object BehaviorSubjectSuite extends BaseSubjectSuite { var received = 0 var wasCompleted = 0 - for (i <- 0 until 10) + for (_ <- 0 until 10) subject.unsafeSubscribeFn(new Observer[Int] { def onNext(elem: Int): Future[Ack] = { received += elem @@ -67,7 +67,7 @@ object BehaviorSubjectSuite extends BaseSubjectSuite { var received = 0 var wasCompleted = 0 - for (i <- 0 until 10) + for (_ <- 0 until 10) subject.unsafeSubscribeFn(new Observer[Int] { def onNext(elem: Int) = Future { received += elem diff --git a/monix-reactive/shared/src/test/scala/monix/reactive/subjects/ProfunctorSubjectSuite.scala b/monix-reactive/shared/src/test/scala/monix/reactive/subjects/ProfunctorSubjectSuite.scala index b70ac332b..9a0136061 100644 --- a/monix-reactive/shared/src/test/scala/monix/reactive/subjects/ProfunctorSubjectSuite.scala +++ b/monix-reactive/shared/src/test/scala/monix/reactive/subjects/ProfunctorSubjectSuite.scala @@ -44,7 +44,7 @@ object ProfunctorSubjectSuite extends BaseSubjectSuite { var wasCompleted = 0 var errorThrown: Throwable = null - for (i <- 0 until 10) + for (_ <- 0 until 10) subject.unsafeSubscribeFn(new Observer[Int] { def onNext(elem: Int): Future[Ack] = { received += elem @@ -71,7 +71,7 @@ object ProfunctorSubjectSuite extends BaseSubjectSuite { var wasCompleted = 0 var errorThrown: Throwable = null - for (i <- 0 until 10) + for (_ <- 0 until 10) subject.unsafeSubscribeFn(new Observer[Int] { def onNext(elem: Int): Future[Ack] = { received += elem @@ -98,7 +98,7 @@ object ProfunctorSubjectSuite extends BaseSubjectSuite { var received = 0 var wasCompleted = 0 - for (i <- 0 until 10) + for (_ <- 0 until 10) subject.unsafeSubscribeFn(new Observer[Int] { def onNext(elem: Int): Future[Ack] = { received += elem @@ -124,7 +124,7 @@ object ProfunctorSubjectSuite extends BaseSubjectSuite { var received = 0 var wasCompleted = 0 - for (i <- 0 until 10) + for (_ <- 0 until 10) subject.unsafeSubscribeFn(new Observer[Int] { def onNext(elem: Int) = Future { received += elem diff --git a/monix-reactive/shared/src/test/scala/monix/reactive/subjects/PublishSubjectSuite.scala b/monix-reactive/shared/src/test/scala/monix/reactive/subjects/PublishSubjectSuite.scala index 67f8810fa..411cc488f 100644 --- a/monix-reactive/shared/src/test/scala/monix/reactive/subjects/PublishSubjectSuite.scala +++ b/monix-reactive/shared/src/test/scala/monix/reactive/subjects/PublishSubjectSuite.scala @@ -94,7 +94,7 @@ object PublishSubjectSuite extends BaseSubjectSuite { var received = 0 var wasCompleted = 0 - for (i <- 0 until 10) + for (_ <- 0 until 10) subject.unsafeSubscribeFn(new Observer[Int] { def onNext(elem: Int): Future[Ack] = { received += elem @@ -119,7 +119,7 @@ object PublishSubjectSuite extends BaseSubjectSuite { var received = 0 var wasCompleted = 0 - for (i <- 0 until 10) + for (_ <- 0 until 10) subject.unsafeSubscribeFn(new Observer[Int] { def onNext(elem: Int) = Future { received += elem diff --git a/monix-reactive/shared/src/test/scala/monix/reactive/subjects/ReplaySubjectSuite.scala b/monix-reactive/shared/src/test/scala/monix/reactive/subjects/ReplaySubjectSuite.scala index 8a4bda2f6..401d49c2f 100644 --- a/monix-reactive/shared/src/test/scala/monix/reactive/subjects/ReplaySubjectSuite.scala +++ b/monix-reactive/shared/src/test/scala/monix/reactive/subjects/ReplaySubjectSuite.scala @@ -77,7 +77,7 @@ object ReplaySubjectSuite extends BaseSubjectSuite { var received = 0 var wasCompleted = 0 - for (i <- 0 until 10) + for (_ <- 0 until 10) subject.unsafeSubscribeFn(new Observer[Int] { def onNext(elem: Int): Future[Ack] = { received += elem @@ -104,7 +104,7 @@ object ReplaySubjectSuite extends BaseSubjectSuite { var received = 0 var wasCompleted = 0 - for (i <- 0 until 10) + for (_ <- 0 until 10) subject.unsafeSubscribeFn(new Observer[Int] { def onNext(elem: Int) = Future { received += elem diff --git a/monix-tail/shared/src/main/scala/monix/tail/internal/IterantCompleteL.scala b/monix-tail/shared/src/main/scala/monix/tail/internal/IterantCompleteL.scala index 9cd64a870..de043c4a7 100644 --- a/monix-tail/shared/src/main/scala/monix/tail/internal/IterantCompleteL.scala +++ b/monix-tail/shared/src/main/scala/monix/tail/internal/IterantCompleteL.scala @@ -90,7 +90,7 @@ private[tail] object IterantCompleteL { F.raiseError(e) private def processCursor(cursor: BatchCursor[A], rest: F[Iterant[F, A]]) = { - while (cursor.hasNext()) cursor.next() + while (cursor.hasNext()) cursor.next(): Unit rest.flatMap(this) } } diff --git a/monix-tail/shared/src/main/scala/monix/tail/internal/IterantTakeLast.scala b/monix-tail/shared/src/main/scala/monix/tail/internal/IterantTakeLast.scala index f53f7d75d..ae9fa9f89 100644 --- a/monix-tail/shared/src/main/scala/monix/tail/internal/IterantTakeLast.scala +++ b/monix-tail/shared/src/main/scala/monix/tail/internal/IterantTakeLast.scala @@ -57,13 +57,13 @@ private[tail] object IterantTakeLast { def visit(ref: NextBatch[F, A]): Iterant[F, A] = { val cursor = ref.batch.cursor() - while (cursor.hasNext()) buffer.offer(cursor.next()) + while (cursor.hasNext()) buffer.offer(cursor.next()): Unit Suspend(ref.rest.map(loop)) } def visit(ref: NextCursor[F, A]): Iterant[F, A] = { val cursor = ref.cursor - while (cursor.hasNext()) buffer.offer(cursor.next()) + while (cursor.hasNext()) buffer.offer(cursor.next()): Unit Suspend(ref.rest.map(loop)) }