Skip to content

Commit

Permalink
Fix a few issues related to bin-compat traits (#3010)
Browse files Browse the repository at this point in the history
* 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)
  • Loading branch information
travisbrown authored and kailuowang committed Aug 26, 2019
1 parent a7373fe commit 14e525a
Show file tree
Hide file tree
Showing 8 changed files with 63 additions and 42 deletions.
24 changes: 17 additions & 7 deletions core/src/main/scala-2.12-/cats/instances/all.scala
Original file line number Diff line number Diff line change
@@ -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
Expand Down Expand Up @@ -33,22 +43,22 @@ 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
with StreamInstancesBinCompat0
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
10 changes: 1 addition & 9 deletions core/src/main/scala-2.12-/cats/instances/package.scala
Original file line number Diff line number Diff line change
@@ -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
Expand Down
24 changes: 17 additions & 7 deletions core/src/main/scala-2.13+/cats/instances/all.scala
Original file line number Diff line number Diff line change
@@ -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
Expand Down Expand Up @@ -34,22 +44,22 @@ 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
with StreamInstancesBinCompat0
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
10 changes: 1 addition & 9 deletions core/src/main/scala-2.13+/cats/instances/package.scala
Original file line number Diff line number Diff line change
@@ -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
Expand Down
3 changes: 3 additions & 0 deletions core/src/main/scala/cats/implicits.scala
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,13 @@ 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
with instances.AllInstancesBinCompat2
with instances.AllInstancesBinCompat3
with instances.AllInstancesBinCompat4
with instances.AllInstancesBinCompat5
with instances.AllInstancesBinCompat6
16 changes: 8 additions & 8 deletions core/src/main/scala/cats/syntax/all.scala
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package cats
package syntax

abstract private[cats] class AllSyntaxBinCompat
abstract class AllSyntaxBinCompat
extends AllSyntax
with AllSyntaxBinCompat0
with AllSyntaxBinCompat1
Expand Down Expand Up @@ -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
Expand All @@ -71,17 +71,17 @@ private[cats] trait AllSyntaxBinCompat1
with ValidatedExtensionSyntax
with RepresentableSyntax

private[cats] trait AllSyntaxBinCompat2
trait AllSyntaxBinCompat2
extends ParallelTraverseSyntax
with TraverseFilterSyntax
with FunctorFilterSyntax
with EitherSyntaxBinCompat0
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
Expand All @@ -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
1 change: 1 addition & 0 deletions tests/src/test/scala/cats/tests/CatsSuite.scala
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@ trait CatsSuite
with AllSyntaxBinCompat3
with AllSyntaxBinCompat4
with AllSyntaxBinCompat5
with AllSyntaxBinCompat6
with StrictCatsEquality {

implicit override val generatorDrivenConfig: PropertyCheckConfiguration =
Expand Down
17 changes: 15 additions & 2 deletions tests/src/test/scala/cats/tests/SyntaxSuite.scala
Original file line number Diff line number Diff line change
Expand Up @@ -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

/**
Expand All @@ -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 = ???
Expand Down

0 comments on commit 14e525a

Please sign in to comment.