From 14e525a73e00cbe98620c0375ba79a90a7fe0612 Mon Sep 17 00:00:00 2001 From: Travis Brown Date: Mon, 26 Aug 2019 16:30:14 +0200 Subject: [PATCH] Fix a few issues related to bin-compat traits (#3010) * Add AllInstancesBinCompat to match AllSyntaxBinCompat * Add bin-compat traits to implicits import, fixing #3007 * Bring test object and trait up to date on BinCompat levels * Make AllXBinCompat traits public again (#3008) --- .../main/scala-2.12-/cats/instances/all.scala | 24 +++++++++++++------ .../scala-2.12-/cats/instances/package.scala | 10 +------- .../main/scala-2.13+/cats/instances/all.scala | 24 +++++++++++++------ .../scala-2.13+/cats/instances/package.scala | 10 +------- core/src/main/scala/cats/implicits.scala | 3 +++ core/src/main/scala/cats/syntax/all.scala | 16 ++++++------- .../src/test/scala/cats/tests/CatsSuite.scala | 1 + .../test/scala/cats/tests/SyntaxSuite.scala | 17 +++++++++++-- 8 files changed, 63 insertions(+), 42 deletions(-) diff --git a/core/src/main/scala-2.12-/cats/instances/all.scala b/core/src/main/scala-2.12-/cats/instances/all.scala index b67a56c8ac..001e20ccf0 100644 --- a/core/src/main/scala-2.12-/cats/instances/all.scala +++ b/core/src/main/scala-2.12-/cats/instances/all.scala @@ -1,6 +1,16 @@ package cats package instances +abstract class AllInstancesBinCompat + extends AllInstances + with AllInstancesBinCompat0 + with AllInstancesBinCompat1 + with AllInstancesBinCompat2 + with AllInstancesBinCompat3 + with AllInstancesBinCompat4 + with AllInstancesBinCompat5 + with AllInstancesBinCompat6 + trait AllInstances extends AnyValInstances with BigIntInstances @@ -33,9 +43,9 @@ trait AllInstances with UUIDInstances with VectorInstances -private[cats] trait AllInstancesBinCompat0 extends FunctionInstancesBinCompat0 with Tuple2InstancesBinCompat0 +trait AllInstancesBinCompat0 extends FunctionInstancesBinCompat0 with Tuple2InstancesBinCompat0 -private[cats] trait AllInstancesBinCompat1 +trait AllInstancesBinCompat1 extends OptionInstancesBinCompat0 with ListInstancesBinCompat0 with VectorInstancesBinCompat0 @@ -43,12 +53,12 @@ private[cats] trait AllInstancesBinCompat1 with MapInstancesBinCompat0 with SortedMapInstancesBinCompat0 -private[cats] trait AllInstancesBinCompat2 extends DurationInstances with FiniteDurationInstances +trait AllInstancesBinCompat2 extends DurationInstances with FiniteDurationInstances -private[cats] trait AllInstancesBinCompat3 extends AllCoreDurationInstances +trait AllInstancesBinCompat3 extends AllCoreDurationInstances -private[cats] trait AllInstancesBinCompat4 extends SortedMapInstancesBinCompat1 with MapInstancesBinCompat1 +trait AllInstancesBinCompat4 extends SortedMapInstancesBinCompat1 with MapInstancesBinCompat1 -private[cats] trait AllInstancesBinCompat5 extends SortedSetInstancesBinCompat0 +trait AllInstancesBinCompat5 extends SortedSetInstancesBinCompat0 -private[cats] trait AllInstancesBinCompat6 extends SortedSetInstancesBinCompat1 with SortedMapInstancesBinCompat2 +trait AllInstancesBinCompat6 extends SortedSetInstancesBinCompat1 with SortedMapInstancesBinCompat2 diff --git a/core/src/main/scala-2.12-/cats/instances/package.scala b/core/src/main/scala-2.12-/cats/instances/package.scala index 0805b3ad56..d905f919e7 100644 --- a/core/src/main/scala-2.12-/cats/instances/package.scala +++ b/core/src/main/scala-2.12-/cats/instances/package.scala @@ -1,15 +1,7 @@ package cats package object instances { - object all - extends AllInstances - with AllInstancesBinCompat0 - with AllInstancesBinCompat1 - with AllInstancesBinCompat2 - with AllInstancesBinCompat3 - with AllInstancesBinCompat4 - with AllInstancesBinCompat5 - with AllInstancesBinCompat6 + object all extends AllInstancesBinCompat object bigInt extends BigIntInstances object bigDecimal extends BigDecimalInstances object bitSet extends BitSetInstances diff --git a/core/src/main/scala-2.13+/cats/instances/all.scala b/core/src/main/scala-2.13+/cats/instances/all.scala index 9524d80617..315b99eefd 100644 --- a/core/src/main/scala-2.13+/cats/instances/all.scala +++ b/core/src/main/scala-2.13+/cats/instances/all.scala @@ -1,6 +1,16 @@ package cats package instances +abstract class AllInstancesBinCompat + extends AllInstances + with AllInstancesBinCompat0 + with AllInstancesBinCompat1 + with AllInstancesBinCompat2 + with AllInstancesBinCompat3 + with AllInstancesBinCompat4 + with AllInstancesBinCompat5 + with AllInstancesBinCompat6 + trait AllInstances extends AnyValInstances with BigIntInstances @@ -34,9 +44,9 @@ trait AllInstances with UUIDInstances with VectorInstances -private[cats] trait AllInstancesBinCompat0 extends FunctionInstancesBinCompat0 with Tuple2InstancesBinCompat0 +trait AllInstancesBinCompat0 extends FunctionInstancesBinCompat0 with Tuple2InstancesBinCompat0 -private[cats] trait AllInstancesBinCompat1 +trait AllInstancesBinCompat1 extends OptionInstancesBinCompat0 with ListInstancesBinCompat0 with VectorInstancesBinCompat0 @@ -44,12 +54,12 @@ private[cats] trait AllInstancesBinCompat1 with MapInstancesBinCompat0 with SortedMapInstancesBinCompat0 -private[cats] trait AllInstancesBinCompat2 extends DurationInstances with FiniteDurationInstances +trait AllInstancesBinCompat2 extends DurationInstances with FiniteDurationInstances -private[cats] trait AllInstancesBinCompat3 extends AllCoreDurationInstances +trait AllInstancesBinCompat3 extends AllCoreDurationInstances -private[cats] trait AllInstancesBinCompat4 extends SortedMapInstancesBinCompat1 with MapInstancesBinCompat1 +trait AllInstancesBinCompat4 extends SortedMapInstancesBinCompat1 with MapInstancesBinCompat1 -private[cats] trait AllInstancesBinCompat5 extends SortedSetInstancesBinCompat0 +trait AllInstancesBinCompat5 extends SortedSetInstancesBinCompat0 -private[cats] trait AllInstancesBinCompat6 extends SortedSetInstancesBinCompat1 with SortedMapInstancesBinCompat2 +trait AllInstancesBinCompat6 extends SortedSetInstancesBinCompat1 with SortedMapInstancesBinCompat2 diff --git a/core/src/main/scala-2.13+/cats/instances/package.scala b/core/src/main/scala-2.13+/cats/instances/package.scala index 6cbfb733a8..6081280fb5 100644 --- a/core/src/main/scala-2.13+/cats/instances/package.scala +++ b/core/src/main/scala-2.13+/cats/instances/package.scala @@ -1,15 +1,7 @@ package cats package object instances { - object all - extends AllInstances - with AllInstancesBinCompat0 - with AllInstancesBinCompat1 - with AllInstancesBinCompat2 - with AllInstancesBinCompat3 - with AllInstancesBinCompat4 - with AllInstancesBinCompat5 - with AllInstancesBinCompat6 + object all extends AllInstancesBinCompat object bigInt extends BigIntInstances object bigDecimal extends BigDecimalInstances object bitSet extends BitSetInstances diff --git a/core/src/main/scala/cats/implicits.scala b/core/src/main/scala/cats/implicits.scala index aa24614cae..5c2f3202b9 100644 --- a/core/src/main/scala/cats/implicits.scala +++ b/core/src/main/scala/cats/implicits.scala @@ -7,6 +7,8 @@ object implicits with syntax.AllSyntaxBinCompat2 with syntax.AllSyntaxBinCompat3 with syntax.AllSyntaxBinCompat4 + with syntax.AllSyntaxBinCompat5 + with syntax.AllSyntaxBinCompat6 with instances.AllInstances with instances.AllInstancesBinCompat0 with instances.AllInstancesBinCompat1 @@ -14,3 +16,4 @@ object implicits with instances.AllInstancesBinCompat3 with instances.AllInstancesBinCompat4 with instances.AllInstancesBinCompat5 + with instances.AllInstancesBinCompat6 diff --git a/core/src/main/scala/cats/syntax/all.scala b/core/src/main/scala/cats/syntax/all.scala index 25f4686136..2b19d210e9 100644 --- a/core/src/main/scala/cats/syntax/all.scala +++ b/core/src/main/scala/cats/syntax/all.scala @@ -1,7 +1,7 @@ package cats package syntax -abstract private[cats] class AllSyntaxBinCompat +abstract class AllSyntaxBinCompat extends AllSyntax with AllSyntaxBinCompat0 with AllSyntaxBinCompat1 @@ -59,9 +59,9 @@ trait AllSyntax with VectorSyntax with WriterSyntax -private[cats] trait AllSyntaxBinCompat0 extends UnorderedTraverseSyntax with ApplicativeErrorExtension with TrySyntax +trait AllSyntaxBinCompat0 extends UnorderedTraverseSyntax with ApplicativeErrorExtension with TrySyntax -private[cats] trait AllSyntaxBinCompat1 +trait AllSyntaxBinCompat1 extends FlatMapOptionSyntax with ChoiceSyntax with NestedSyntax @@ -71,7 +71,7 @@ private[cats] trait AllSyntaxBinCompat1 with ValidatedExtensionSyntax with RepresentableSyntax -private[cats] trait AllSyntaxBinCompat2 +trait AllSyntaxBinCompat2 extends ParallelTraverseSyntax with TraverseFilterSyntax with FunctorFilterSyntax @@ -79,9 +79,9 @@ private[cats] trait AllSyntaxBinCompat2 with ListSyntaxBinCompat0 with ValidatedSyntaxBincompat0 -private[cats] trait AllSyntaxBinCompat3 extends UnorderedFoldableSyntax with Function1Syntax +trait AllSyntaxBinCompat3 extends UnorderedFoldableSyntax with Function1Syntax -private[cats] trait AllSyntaxBinCompat4 +trait AllSyntaxBinCompat4 extends TraverseFilterSyntaxBinCompat0 with ApplySyntaxBinCompat0 with ParallelApplySyntax @@ -90,6 +90,6 @@ private[cats] trait AllSyntaxBinCompat4 with FoldableSyntaxBinCompat1 with BitraverseSyntaxBinCompat0 -private[cats] trait AllSyntaxBinCompat5 extends ParallelBitraverseSyntax +trait AllSyntaxBinCompat5 extends ParallelBitraverseSyntax -private[cats] trait AllSyntaxBinCompat6 extends ParallelUnorderedTraverseSyntax +trait AllSyntaxBinCompat6 extends ParallelUnorderedTraverseSyntax diff --git a/tests/src/test/scala/cats/tests/CatsSuite.scala b/tests/src/test/scala/cats/tests/CatsSuite.scala index d98191ba7f..9467b92d6b 100644 --- a/tests/src/test/scala/cats/tests/CatsSuite.scala +++ b/tests/src/test/scala/cats/tests/CatsSuite.scala @@ -52,6 +52,7 @@ trait CatsSuite with AllSyntaxBinCompat3 with AllSyntaxBinCompat4 with AllSyntaxBinCompat5 + with AllSyntaxBinCompat6 with StrictCatsEquality { implicit override val generatorDrivenConfig: PropertyCheckConfiguration = diff --git a/tests/src/test/scala/cats/tests/SyntaxSuite.scala b/tests/src/test/scala/cats/tests/SyntaxSuite.scala index cba4cfc17a..a346adb52b 100644 --- a/tests/src/test/scala/cats/tests/SyntaxSuite.scala +++ b/tests/src/test/scala/cats/tests/SyntaxSuite.scala @@ -5,7 +5,16 @@ import scala.collection.immutable.SortedSet import scala.collection.immutable.SortedMap import cats.arrow.Compose import cats.data.{Binested, Nested, NonEmptyChain, NonEmptyList, NonEmptySet} -import cats.instances.{AllInstances, AllInstancesBinCompat0, AllInstancesBinCompat1, AllInstancesBinCompat2} +import cats.instances.{ + AllInstances, + AllInstancesBinCompat0, + AllInstancesBinCompat1, + AllInstancesBinCompat2, + AllInstancesBinCompat3, + AllInstancesBinCompat4, + AllInstancesBinCompat5, + AllInstancesBinCompat6 +} import cats.syntax.AllSyntaxBinCompat /** @@ -31,7 +40,11 @@ object SyntaxSuite with AllInstances with AllInstancesBinCompat0 with AllInstancesBinCompat1 - with AllInstancesBinCompat2 { + with AllInstancesBinCompat2 + with AllInstancesBinCompat3 + with AllInstancesBinCompat4 + with AllInstancesBinCompat5 + with AllInstancesBinCompat6 { // pretend we have a value of type A def mock[A]: A = ???