Skip to content

Commit ae9fe4a

Browse files
committed
replace generic companion summon helper with specific methods
1 parent 60de259 commit ae9fe4a

File tree

26 files changed

+79
-78
lines changed

26 files changed

+79
-78
lines changed

Modules/Microbenchmarks/src/main/scala/benchmarks/encrdt/deltabased/DecryptedDeltaGroup.scala

+1-1
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ object DecryptedDeltaGroup {
2323
tLattice: Lattice[T]
2424
): Lattice[DecryptedDeltaGroup[T]] = (l, r) =>
2525
DecryptedDeltaGroup(
26-
Lattice[T].merge(l.deltaGroup, r.deltaGroup),
26+
Lattice.merge(l.deltaGroup, r.deltaGroup),
2727
l.dottedVersionVector.union(r.dottedVersionVector)
2828
)
2929
}

Modules/Microbenchmarks/src/main/scala/benchmarks/encrdt/statebased/EncryptedCrdt.scala

+3-3
Original file line numberDiff line numberDiff line change
@@ -30,15 +30,15 @@ class EncryptedCrdt(initialState: MultiValueRegister[EncryptedState] = MultiValu
3030
} reduce ((leftTry: Try[DecryptedState[T]], rightTry: Try[DecryptedState[T]]) => {
3131
(leftTry, rightTry) match {
3232
case (Success(left), Success(right)) => Success(
33-
DecryptedState(Lattice[T].merge(left.state, right.state), left.versionVector.merge(right.versionVector))
33+
DecryptedState(Lattice.merge(left.state, right.state), left.versionVector.merge(right.versionVector))
3434
)
3535
case (Failure(e), _) => Failure(e)
3636
case (_, Failure(e)) => Failure(e)
3737
}
3838
})
3939

4040
def merge(other: MultiValueRegister[EncryptedState]): Unit = {
41-
_state = Lattice[MultiValueRegister[EncryptedState]].merge(_state, other)
41+
_state = Lattice.merge(_state, other)
4242
}
4343
}
4444

@@ -72,6 +72,6 @@ object DecryptedState {
7272
given vectorClockJsonCodec: JsonValueCodec[VectorClock] = JsonCodecMaker.make
7373

7474
given lattice[T](using tLattice: Lattice[T]): Lattice[DecryptedState[T]] = (left, right) => {
75-
DecryptedState(Lattice[T].merge(left.state, right.state), left.versionVector.merge(right.versionVector))
75+
DecryptedState(Lattice.merge(left.state, right.state), left.versionVector.merge(right.versionVector))
7676
}
7777
}

Modules/Microbenchmarks/src/main/scala/benchmarks/encrdt/statebased/UntrustedReplica.scala

+1-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ abstract class UntrustedReplica(initialStates: Set[EncryptedState]) extends Repl
1717
def decrypt[T: Lattice](aead: Aead)(using tCodec: JsonValueCodec[T]): DecryptedState[T] = {
1818
stateStore
1919
.map(encState => encState.decrypt[T](aead))
20-
.reduce((l, r) => Lattice[DecryptedState[T]].merge(l, r))
20+
.reduce((l, r) => Lattice.merge(l, r))
2121
}
2222

2323
def receive(newState: EncryptedState): Unit = {

Modules/Microbenchmarks/src/main/scala/benchmarks/lattices/MapMerge.scala

+1-1
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ object MergeImpl {
3030
right.foreach { case (k, r) =>
3131
aggregate.updateWith(k) {
3232
case None => Some(r)
33-
case Some(l) => Some(Lattice[V].merge(l, r))
33+
case Some(l) => Some(Lattice.merge(l, r))
3434
}
3535
}
3636
aggregate.toMap

Modules/Microbenchmarks/src/main/scala/benchmarks/lattices/delta/AWSetDeltaMergeBench.scala

+3-3
Original file line numberDiff line numberDiff line change
@@ -36,15 +36,15 @@ class AWSetDeltaMergeBench {
3636
val baseState = Dotted(ReplicatedSet.empty[Long])
3737

3838
val deltaState = baseState.mod(_.addAll(using "".asId)(0L to size))
39-
fullState = Lattice[Dotted[ReplicatedSet[Long]]].merge(baseState, deltaState)
39+
fullState = Lattice.merge(baseState, deltaState)
4040

4141
plusOneDeltaState = fullState.mod(_.add(using "".asId)(size))
42-
plusOneState = Lattice[Dotted[ReplicatedSet[Long]]].merge(fullState, plusOneDeltaState)
42+
plusOneState = Lattice.merge(fullState, plusOneDeltaState)
4343
}
4444

4545
@Benchmark
4646
def fullMerge: Dotted[ReplicatedSet[Long]] = {
47-
Lattice[Dotted[ReplicatedSet[Long]]].merge(fullState, plusOneState)
47+
Lattice.merge(fullState, plusOneState)
4848
}
4949

5050
@Benchmark

Modules/Microbenchmarks/src/main/scala/benchmarks/lattices/delta/crdt/AWSetComparisonBench.scala

+6-6
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ class AWSetComparisonBench {
3030
private def createSet(replicaID: String): State = {
3131
(0 until setSize).foldLeft(Dotted(ReplicatedSet.empty[String])) { (s, i) =>
3232
val delta = s.mod(_.add(using replicaID.asId)(s"${i.toString}$replicaID"))
33-
Lattice[State].merge(s, delta)
33+
Lattice.merge(s, delta)
3434
}
3535
}
3636

@@ -40,7 +40,7 @@ class AWSetComparisonBench {
4040
setBState = createSet("b")
4141

4242
plusOneDelta = setBState.mod(_.add(using "b".asId)("hallo welt"))
43-
setAStatePlusOne = Lattice[State].merge(setAState, setBState)
43+
setAStatePlusOne = Lattice.merge(setAState, setBState)
4444
}
4545

4646
@Benchmark
@@ -50,14 +50,14 @@ class AWSetComparisonBench {
5050
def addOne(): State = setAState.mod(_.add(using "a".asId)("Hallo Welt"))
5151

5252
@Benchmark
53-
def merge(): State = Lattice[State].merge(setAState, setBState)
53+
def merge(): State = Lattice.merge(setAState, setBState)
5454

5555
@Benchmark
56-
def mergeSelf(): State = Lattice[State].merge(setAState, setBState)
56+
def mergeSelf(): State = Lattice.merge(setAState, setBState)
5757

5858
@Benchmark
59-
def mergeSelfPlusOne(): State = Lattice[State].merge(setAState, setAStatePlusOne)
59+
def mergeSelfPlusOne(): State = Lattice.merge(setAState, setAStatePlusOne)
6060

6161
@Benchmark
62-
def mergeDelta(): State = Lattice[State].merge(setAState, plusOneDelta)
62+
def mergeDelta(): State = Lattice.merge(setAState, plusOneDelta)
6363
}

Modules/Microbenchmarks/src/main/scala/benchmarks/lattices/delta/crdt/NamedDeltaBuffer.scala

+1-1
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ case class NamedDeltaBuffer[State](
2424
def applyDelta(source: Uid, delta: State)(using Lattice[State], Decompose[State]): NamedDeltaBuffer[State] =
2525
Lattice.diff(state, delta) match {
2626
case Some(stateDiff) =>
27-
val stateMerged = Lattice[State].merge(state, stateDiff)
27+
val stateMerged = Lattice.merge(state, stateDiff)
2828
new NamedDeltaBuffer(replicaID, stateMerged, Named(source, stateDiff) :: deltaBuffer)
2929
case None => this
3030
}

Modules/RDTs/.jvm/src/test/scala/ConsensusPropertySpec.scala

+4-4
Original file line numberDiff line numberDiff line change
@@ -44,8 +44,8 @@ class ConsensusPropertySpec[A: Arbitrary, C[_]: Consensus](
4444

4545
def nextLocalState(states: Map[LocalUid, C[A]]) =
4646
given Participants = Participants(states.keySet.map(_.uid))
47-
val written = Lattice[C[A]].merge(states(writer), states(writer).propose(value)(using writer))
48-
Lattice[C[A]].merge(written, written.upkeep()(using writer))
47+
val written = Lattice.merge(states(writer), states(writer).propose(value)(using writer))
48+
Lattice.merge(written, written.upkeep()(using writer))
4949

5050
override def postCondition(state: Map[LocalUid, C[A]], result: Try[Map[LocalUid, C[A]]]) =
5151
given Participants = Participants(state.keySet.map(_.uid))
@@ -57,8 +57,8 @@ class ConsensusPropertySpec[A: Arbitrary, C[_]: Consensus](
5757

5858
def nextLocalState(states: Map[LocalUid, C[A]]) =
5959
given Participants = Participants(states.keySet.map(_.uid))
60-
val merged: C[A] = Lattice[C[A]].merge(states(left), states(right))
61-
Lattice[C[A]].merge(merged, merged.upkeep()(using left))
60+
val merged: C[A] = Lattice.merge(states(left), states(right))
61+
Lattice.merge(merged, merged.upkeep()(using left))
6262

6363
override def postCondition(state: Map[LocalUid, C[A]], result: Try[Map[LocalUid, C[A]]]): Prop =
6464
given Participants = Participants(state.keySet.map(_.uid))

Modules/RDTs/src/main/scala/rdts/base/Lattice.scala

+2-1
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,8 @@ trait Lattice[A] {
4242
}
4343

4444
object Lattice {
45-
def apply[A](using ev: Lattice[A]): Lattice[A] = ev
45+
46+
def subsumption[A: Lattice as A](left: A, right: A): Boolean = A.subsumption(left, right)
4647

4748
// forwarder for better syntax/type inference
4849
def merge[A: Lattice as A](left: A, right: A): A = A.merge(left, right)

Modules/RDTs/src/main/scala/rdts/datatypes/Epoch.scala

+3-3
Original file line numberDiff line numberDiff line change
@@ -33,19 +33,19 @@ object Epoch {
3333
given decomposeInstance[E: Decompose]: Decompose[Epoch[E]] =
3434
case Epoch(c, v) => Decompose.decompose(v).map(Epoch(c, _))
3535

36-
given latticeInstance[E: Lattice]: Lattice[Epoch[E]] = new Lattice[Epoch[E]] {
36+
given latticeInstance[E: Lattice as E]: Lattice[Epoch[E]] = new Lattice[Epoch[E]] {
3737

3838
override def subsumption(left: Epoch[E], right: Epoch[E]): Boolean = (left, right) match {
3939
case (Epoch(cLeft, vLeft), Epoch(cRight, vRight)) =>
40-
cLeft < cRight || (cLeft == cRight && Lattice[E].subsumption(vLeft, vRight))
40+
cLeft < cRight || (cLeft == cRight && E.subsumption(vLeft, vRight))
4141
}
4242

4343
/** By assumption: associative, commutative, idempotent. */
4444
override def merge(left: Epoch[E], right: Epoch[E]): Epoch[E] = (left, right) match {
4545
case (Epoch(cLeft, vLeft), Epoch(cRight, vRight)) =>
4646
if cLeft > cRight then left
4747
else if cRight > cLeft then right
48-
else Epoch(cLeft, Lattice[E].merge(vLeft, vRight))
48+
else Epoch(cLeft, E.merge(vLeft, vRight))
4949
}
5050
}
5151
}

Modules/RDTs/src/main/scala/rdts/datatypes/experiments/AuctionInterface.scala

+3-3
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ object AuctionInterface {
4646
given AuctionDataAsUIJDLattice: Lattice[AuctionData] with Decompose[AuctionData] with {
4747
override def subsumption(left: AuctionData, right: AuctionData): Boolean = (left, right) match {
4848
case (AuctionData(lb, ls, _), AuctionData(rb, rs, _)) =>
49-
Lattice[Set[Bid]].subsumption(lb, rb) && Lattice[Status].subsumption(ls, rs)
49+
summon[Lattice[Set[Bid]]].subsumption(lb, rb) && Lattice.subsumption(ls, rs)
5050
}
5151

5252
extension (a: AuctionData)
@@ -62,8 +62,8 @@ object AuctionInterface {
6262

6363
override def merge(left: AuctionData, right: AuctionData): AuctionData = (left, right) match {
6464
case (AuctionData(lb, ls, _), AuctionData(rb, rs, _)) =>
65-
val bidsMerged = Lattice[Set[Bid]].merge(lb, rb)
66-
val statusMerged = Lattice[Status].merge(ls, rs)
65+
val bidsMerged = Lattice.merge(lb, rb)
66+
val statusMerged = Lattice.merge(ls, rs)
6767
val winnerMerged = statusMerged match {
6868
case Open => None
6969
case Closed => bidsMerged.maxByOption(_.bid).map(_.userId)

Modules/RDTs/src/main/scala/rdts/datatypes/experiments/protocols/Paxos.scala

+1-1
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ object Paxos:
111111
override def propose(value: A)(using LocalUid, Participants): Paxos[A] =
112112
// check if I can propose a value
113113
val afterProposal = c.phase2a
114-
if Lattice[Paxos[A]].subsumption(afterProposal, c) then
114+
if Lattice.subsumption(afterProposal, c) then
115115
// proposing did not work, try to become leader
116116
c.phase1a(value)
117117
else

Modules/RDTs/src/main/scala/rdts/datatypes/experiments/protocols/old/Paxos.scala

+1-1
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,7 @@ object Paxos {
155155
given lattice[A]: Lattice[Paxos[A]] with
156156
override def merge(left: Paxos[A], right: Paxos[A]): Paxos[A] =
157157
require(
158-
Lattice[Set[Uid]].merge(left.members, right.members) == left.members,
158+
Lattice.merge(left.members, right.members) == left.members,
159159
"cannot merge two Paxos instances with differing members"
160160
) // members should remain fixed
161161

Modules/RDTs/src/main/scala/rdts/datatypes/experiments/protocols/old/simplified/GeneralizedPaxos.scala

+1-1
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ object GeneralizedPaxos:
9797
override def propose(value: A)(using LocalUid, Participants): GeneralizedPaxos[A] =
9898
// check if I can propose a value
9999
val afterProposal = c.phase2a
100-
if Lattice[GeneralizedPaxos[A]].subsumption(afterProposal, c) then
100+
if Lattice.subsumption(afterProposal, c) then
101101
// proposing did not work, try to become leader
102102
c.phase1a.copy(myValue = Map(replicaId -> LastWriterWins.now(value)))
103103
else

Modules/RDTs/src/main/scala/rdts/datatypes/experiments/protocols/old/simplified/Paxos.scala

+3-3
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,7 @@ object Paxos:
137137
case Some(proposal) =>
138138
// check if proposing does anything (i.e. I am the leader)
139139
val proposed = c.phase2a(proposal, value)
140-
if Lattice[Paxos[A]].subsumption(proposed, c) then
140+
if Lattice.subsumption(proposed, c) then
141141
// proposing did not work, try to become leader
142142
becomeLeader
143143
else
@@ -170,7 +170,7 @@ object Paxos:
170170
// we are in phase 1
171171
// start by promising
172172
val promise = c.promise(proposal)
173-
val newState = Lattice[Paxos[A]].merge(c, c.promise(proposal))
173+
val newState = Lattice.merge(c, c.promise(proposal))
174174

175175
// check if we have become the leader and can start phase 2 by proposing a value
176176
if {
@@ -179,7 +179,7 @@ object Paxos:
179179
newState.members(proposal.proposer).nonEmpty // we know what value to propose
180180
} then
181181
// combine deltas for promise and propose
182-
Lattice[Paxos[A]].merge(
182+
Lattice.merge(
183183
promise,
184184
newState.phase2a(proposal, newState.members(proposal.proposer).get.value)
185185
)

Modules/RDTs/src/test/scala/test/rdts/baseproperties/DecomposePropertyChecks.scala

+1-1
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ abstract class DecomposePropertyChecks[A](
7979
s"naive order broken:\n ${d}\n $theValue\n${decomposed.mkString(" ", "\n ", "\n")}"
8080
)
8181
assert(
82-
Lattice[A].subsumption(d, normalized),
82+
Lattice.subsumption(d, normalized),
8383
s"decompose not smaller: »$d« <= »$theValue«\nmerge: ${d `merge` normalized}"
8484
)
8585
if decomposed.sizeIs > 1

Modules/RDTs/src/test/scala/test/rdts/bespoke/DecomposeManualTests.scala

+8-8
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ class DecomposeManualTests extends munit.ScalaCheckSuite {
2525
val delta_2: GrowOnlyCounter = empty.inc()(using r2)
2626
assertEquals(delta_2.value, 1)
2727

28-
val merged: GrowOnlyCounter = Lattice[GrowOnlyCounter].merge(delta_1, delta_2)
28+
val merged: GrowOnlyCounter = Lattice.merge(delta_1, delta_2)
2929
assertEquals(merged.value, 2)
3030

3131
val decomposed: Seq[GrowOnlyCounter] = Decompose.decompose(merged).toSeq
@@ -46,7 +46,7 @@ class DecomposeManualTests extends munit.ScalaCheckSuite {
4646
val delta_2: PosNegCounter = empty.dec()(using r2)
4747
assertEquals(delta_2.value, -1)
4848

49-
val merged: PosNegCounter = Lattice[PosNegCounter].merge(delta_1, delta_2)
49+
val merged: PosNegCounter = Lattice.merge(delta_1, delta_2)
5050
assertEquals(merged.value, 0)
5151

5252
val decomposed: Seq[PosNegCounter] = Decompose.decompose(merged).toSeq.sortBy(_.value)
@@ -71,7 +71,7 @@ class DecomposeManualTests extends munit.ScalaCheckSuite {
7171
assertEquals(delta_2.context.internal, Map.empty)
7272
assertEquals(delta_2.data.read, false)
7373

74-
val merged: Dotted[EnableWinsFlag] = Lattice[Dotted[EnableWinsFlag]].merge(delta_1, delta_2)
74+
val merged: Dotted[EnableWinsFlag] = Lattice.merge(delta_1, delta_2)
7575
assertEquals(merged.context.internal.size, 1)
7676
assertEquals(merged.context.max(r1.uid), Some(Dot(r1.uid, 0)))
7777
assertEquals(merged.data.read, true)
@@ -147,7 +147,7 @@ class DecomposeManualTests extends munit.ScalaCheckSuite {
147147
val delta_2: Dotted[MultiVersionRegister[Int]] = empty.mod(_.write(using r2)(2))
148148
assertEquals(delta_2.data.read, Set(2))
149149

150-
val merged: Dotted[MultiVersionRegister[Int]] = Lattice[Dotted[MultiVersionRegister[Int]]].merge(delta_1, delta_2)
150+
val merged: Dotted[MultiVersionRegister[Int]] = Lattice.merge(delta_1, delta_2)
151151
assertEquals(merged.data.read, Set(1, 2))
152152

153153
val decomposed: Seq[Dotted[MultiVersionRegister[Int]]] =
@@ -173,7 +173,7 @@ class DecomposeManualTests extends munit.ScalaCheckSuite {
173173
val delta_2: Dotted[LastWriterWins[Int]] = empty.write(2)
174174
assertEquals(delta_2.read, 2)
175175

176-
val merged: Dotted[LastWriterWins[Int]] = Lattice[Dotted[LastWriterWins[Int]]].merge(delta_1, delta_2)
176+
val merged: Dotted[LastWriterWins[Int]] = Lattice.merge(delta_1, delta_2)
177177
assertEquals(merged.read, 2)
178178

179179
val decomposed: Seq[Dotted[LastWriterWins[Int]]] =
@@ -197,7 +197,7 @@ class DecomposeManualTests extends munit.ScalaCheckSuite {
197197
val delta_2: GrowOnlySet[Int] = empty.insert(2)
198198
assertEquals(delta_2.elements, Set(2))
199199

200-
val merged: GrowOnlySet[Int] = Lattice[GrowOnlySet[Int]].merge(delta_1, delta_2)
200+
val merged: GrowOnlySet[Int] = Lattice.merge(delta_1, delta_2)
201201
assertEquals(merged.elements, Set(1, 2))
202202

203203
val decomposed: Seq[GrowOnlySet[Int]] =
@@ -246,7 +246,7 @@ class DecomposeManualTests extends munit.ScalaCheckSuite {
246246
assertEquals(delta_2.data.get(2).map(_.payload), Some("two"))
247247

248248
val merged: Dotted[GrowOnlyMap[Int, LastWriterWins[String]]] =
249-
Lattice[Dotted[GrowOnlyMap[Int, LastWriterWins[String]]]].merge(delta_1, delta_2)
249+
Lattice.merge(delta_1, delta_2)
250250
assertEquals(merged.context.internal, Map.empty)
251251
assertEquals(merged.data.keySet, Set(1, 2))
252252
assertEquals(merged.data.get(1).map(_.payload), Some("one"))
@@ -293,7 +293,7 @@ class DecomposeManualTests extends munit.ScalaCheckSuite {
293293
assertEquals(delta_2.data.get(2).map(_.read), Some(true))
294294

295295
val merged: Dotted[GrowOnlyMap[Int, EnableWinsFlag]] =
296-
Lattice[Dotted[GrowOnlyMap[Int, EnableWinsFlag]]].merge(delta_1, delta_2)
296+
Lattice.merge(delta_1, delta_2)
297297
assertEquals(merged.context.internal.size, 2)
298298
assertEquals(merged.context.max(r1.uid), Some(Dot(r1.uid, 0)))
299299
assertEquals(merged.context.max(r2.uid), Some(Dot(r2.uid, 0)))

Modules/RDTs/src/test/scala/test/rdts/bespoke/DiffManualTests.scala

+8-8
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ class DiffManualTests extends munit.ScalaCheckSuite {
2525
val delta_2: GrowOnlyCounter = empty.inc()(using r2)
2626
assertEquals(delta_2.value, 1)
2727

28-
val merged: GrowOnlyCounter = Lattice[GrowOnlyCounter].merge(delta_1, delta_2)
28+
val merged: GrowOnlyCounter = Lattice.merge(delta_1, delta_2)
2929
assertEquals(merged.value, 2)
3030

3131
val delta_1_diff_delta_2: Option[GrowOnlyCounter] = Lattice.diff(delta_1, delta_2)
@@ -52,7 +52,7 @@ class DiffManualTests extends munit.ScalaCheckSuite {
5252
val delta_2: PosNegCounter = empty.dec()(using r2)
5353
assertEquals(delta_2.value, -1)
5454

55-
val merged: PosNegCounter = Lattice[PosNegCounter].merge(delta_1, delta_2)
55+
val merged: PosNegCounter = Lattice.merge(delta_1, delta_2)
5656
assertEquals(merged.value, 0)
5757

5858
val delta_1_diff_delta_2: Option[PosNegCounter] = Lattice.diff(delta_1, delta_2)
@@ -83,7 +83,7 @@ class DiffManualTests extends munit.ScalaCheckSuite {
8383
assertEquals(delta_2.context.internal, Map.empty)
8484
assertEquals(delta_2.data.read, false)
8585

86-
val merged: Dotted[EnableWinsFlag] = Lattice[Dotted[EnableWinsFlag]].merge(delta_1, delta_2)
86+
val merged: Dotted[EnableWinsFlag] = Lattice.merge(delta_1, delta_2)
8787
assertEquals(merged.context.internal.size, 1)
8888
assertEquals(merged.context.max(r1.uid), Some(Dot(r1.uid, 0)))
8989
assertEquals(merged.data.read, true)
@@ -113,7 +113,7 @@ class DiffManualTests extends munit.ScalaCheckSuite {
113113
val delta_2: Dotted[MultiVersionRegister[Int]] = empty.mod(_.write(using r2)(2))
114114
assertEquals(delta_2.data.read, Set(2))
115115

116-
val merged: Dotted[MultiVersionRegister[Int]] = Lattice[Dotted[MultiVersionRegister[Int]]].merge(delta_1, delta_2)
116+
val merged: Dotted[MultiVersionRegister[Int]] = Lattice.merge(delta_1, delta_2)
117117
assertEquals(merged.data.read, Set(1, 2))
118118

119119
val delta_1_diff_delta_2: Option[Dotted[MultiVersionRegister[Int]]] =
@@ -148,7 +148,7 @@ class DiffManualTests extends munit.ScalaCheckSuite {
148148
val delta_2: Dotted[LastWriterWins[Int]] = empty.write(2)
149149
assertEquals(delta_2.data.read, 2)
150150

151-
val merged: Dotted[LastWriterWins[Int]] = Lattice[Dotted[LastWriterWins[Int]]].merge(delta_1, delta_2)
151+
val merged: Dotted[LastWriterWins[Int]] = Lattice.merge(delta_1, delta_2)
152152
assertEquals(merged.data.read, 2)
153153

154154
given Decompose[LastWriterWins[Int]] = Decompose.atomic
@@ -183,7 +183,7 @@ class DiffManualTests extends munit.ScalaCheckSuite {
183183
val delta_2: GrowOnlySet[Int] = empty.insert(2)
184184
assertEquals(delta_2.elements, Set(2))
185185

186-
val merged: GrowOnlySet[Int] = Lattice[GrowOnlySet[Int]].merge(delta_1, delta_2)
186+
val merged: GrowOnlySet[Int] = Lattice.merge(delta_1, delta_2)
187187
assertEquals(merged.elements, Set(1, 2))
188188

189189
val delta_1_diff_delta_2: Option[GrowOnlySet[Int]] = Lattice.diff(delta_1, delta_2)
@@ -237,7 +237,7 @@ class DiffManualTests extends munit.ScalaCheckSuite {
237237
assertEquals(delta_2.data.get(2).map(_.payload), Some("two"))
238238

239239
val merged: Dotted[GrowOnlyMap[Int, LastWriterWins[String]]] =
240-
Lattice[Dotted[GrowOnlyMap[Int, LastWriterWins[String]]]].merge(delta_1, delta_2)
240+
Lattice.merge(delta_1, delta_2)
241241
assertEquals(merged.context.internal, Map.empty)
242242
assertEquals(merged.data.keySet, Set(1, 2))
243243
assertEquals(merged.data.get(1).map(_.payload), Some("one"))
@@ -287,7 +287,7 @@ class DiffManualTests extends munit.ScalaCheckSuite {
287287
assertEquals(delta_2.data.get(2).map(_.read), Some(true))
288288

289289
val merged: Dotted[GrowOnlyMap[Int, EnableWinsFlag]] =
290-
Lattice[Dotted[GrowOnlyMap[Int, EnableWinsFlag]]].merge(delta_1, delta_2)
290+
Lattice.merge(delta_1, delta_2)
291291
assertEquals(merged.context.internal.size, 2)
292292
assertEquals(merged.context.max(r1.uid), Some(Dot(r1.uid, 0)))
293293
assertEquals(merged.context.max(r2.uid), Some(Dot(r2.uid, 0)))

0 commit comments

Comments
 (0)