Skip to content

Commit 4829ecc

Browse files
authored
Merge pull request #2231 from satorg/make-derived-final
Mark `class Derived` as `final`
2 parents 27ff076 + 359f05b commit 4829ecc

File tree

4 files changed

+25
-12
lines changed

4 files changed

+25
-12
lines changed

modules/core/src/main/scala/doobie/util/Derived.scala renamed to modules/core/src/main/scala-2/doobie/util/Derived.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,4 @@
44

55
package doobie.util
66

7-
class Derived[+I](val instance: I) extends AnyVal
7+
final class Derived[+I](val instance: I) extends AnyVal
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
// Copyright (c) 2013-2020 Rob Norris and Contributors
2+
// This software is licensed under the MIT License (MIT).
3+
// For more information see LICENSE or https://opensource.org/licenses/MIT
4+
5+
package doobie.util
6+
7+
opaque type Derived[+I] = I
8+
9+
object Derived:
10+
def apply[I](i: I): Derived[I] = i
11+
12+
extension [I](d: Derived[I])
13+
def instance: I = d

modules/core/src/main/scala-3/doobie/util/MkReadPlatform.scala

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,16 +20,16 @@ trait MkReadPlatform:
2020
): Derived[MkRead[P]] = {
2121
val _ = isNotCaseObj
2222
val read = r.fold(identity, _.instance).map(a => m.fromProduct(i(a)))
23-
new Derived(new MkRead(read))
23+
Derived(new MkRead(read))
2424
}
2525

2626
// Derivation base case for tuple (1-element)
2727
implicit def productBase[H](
2828
implicit H: Read[H] `OrElse` Derived[MkRead[H]]
2929
): Derived[MkRead[H *: EmptyTuple]] = {
3030
val headInstance = H.fold(identity, _.instance)
31-
new Derived(
32-
new MkRead(
31+
Derived(
32+
MkRead(
3333
Read.Transform(
3434
headInstance,
3535
h => h *: EmptyTuple
@@ -46,8 +46,8 @@ trait MkReadPlatform:
4646
val headInstance = H.fold(identity, _.instance)
4747
val tailInstance = T.fold(identity, _.instance)
4848

49-
new Derived(
50-
new MkRead(
49+
Derived(
50+
MkRead(
5151
Read.Composite(
5252
headInstance,
5353
tailInstance,

modules/core/src/main/scala-3/doobie/util/MkWritePlatform.scala

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -20,17 +20,17 @@ trait MkWritePlatform:
2020
): Derived[MkWrite[P]] =
2121
val _ = isNotCaseObj
2222
val write: Write[P] = w.fold(identity, _.instance).contramap(p => i(Tuple.fromProductTyped(p)))
23-
new Derived(
24-
new MkWrite(write)
23+
Derived(
24+
MkWrite(write)
2525
)
2626

2727
// Derivation base case for tuple (1-element)
2828
implicit def productBase[H](
2929
implicit H: Write[H] `OrElse` Derived[MkWrite[H]]
3030
): Derived[MkWrite[H *: EmptyTuple]] = {
3131
val headInstance = H.fold(identity, _.instance)
32-
new Derived(
33-
new MkWrite(Write.Composite(
32+
Derived(
33+
MkWrite(Write.Composite(
3434
List(headInstance),
3535
{ case h *: EmptyTuple =>
3636
List(h)
@@ -48,8 +48,8 @@ trait MkWritePlatform:
4848
val headWrite = H.fold(identity, _.instance)
4949
val tailWrite = T.fold(identity, _.instance)
5050

51-
new Derived(
52-
new MkWrite(Write.Composite(
51+
Derived(
52+
MkWrite(Write.Composite(
5353
List(headWrite, tailWrite),
5454
{ case h *: t =>
5555
List(h, t)

0 commit comments

Comments
 (0)