Skip to content

Commit a4fc34d

Browse files
authored
ZLayer Resurrection (zio#6061)
* zlayer cannot be zlayed * comment out example (dotty macro issue) * undo renaming of ZLayer * more changes
1 parent 0966901 commit a4fc34d

File tree

148 files changed

+3933
-4788
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

148 files changed

+3933
-4788
lines changed

.scalafmt.conf

+2
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@ newlines.alwaysBeforeMultilineDef = false
1414
runner.dialect = scala213
1515
rewrite.rules = [RedundantBraces]
1616

17+
project.excludePaths = ["glob:**/scalafix/input/**", "glob:**/scalafix/output/**"]
18+
1719
rewrite.redundantBraces.generalExpressions = false
1820
rewriteTokens = {
1921
"⇒": "=>"

core-tests/shared/src/test/scala-2.x/zio.internal/CleanCodePrinterSpec.scala

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ object CleanCodePrinterSpec extends ZIOBaseSpec {
1414
Assertion.assertion("containsStringWithoutAnsi")(param(element))(_.removingAnsiCodes.contains(element))
1515

1616
def spec: ZSpec[Environment, Failure] =
17-
suite("AutoServiceBuilderSpec")(
17+
suite("AutoLayerSpec")(
1818
suite(".showTree") {
1919
test("prints trees for expressions") {
2020
import nested.{Service => Nested}

core-tests/shared/src/test/scala/zio/RandomSpec.scala

+2-2
Original file line numberDiff line numberDiff line change
@@ -50,8 +50,8 @@ object RandomSpec extends ZIOBaseSpec {
5050
}
5151
},
5252
test("scalaRandom") {
53-
val serviceBuilder = ZServiceBuilder.fromZIO(ZIO.succeed(new scala.util.Random)) >>> Random.scalaRandom
54-
val sample = ZIO.replicateZIO(5)((Random.setSeed(91) *> Random.nextInt).provideSome(serviceBuilder.fresh))
53+
val layer = ZLayer.fromZIO(ZIO.succeed(new scala.util.Random)) >>> Random.scalaRandom
54+
val sample = ZIO.replicateZIO(5)((Random.setSeed(91) *> Random.nextInt).provideSome(layer.fresh))
5555
for {
5656
values <- ZIO.collectAllPar(ZIO.replicate(5)(sample))
5757
} yield assertTrue(values.toSet.size == 1)

core-tests/shared/src/test/scala/zio/ScheduleSpec.scala

+1-1
Original file line numberDiff line numberDiff line change
@@ -722,6 +722,6 @@ object ScheduleSpec extends ZIOBaseSpec {
722722

723723
object Logging {
724724
trait Service
725-
val live: ZServiceBuilder[Any, Nothing, Logging] = ZServiceBuilder.succeed(new Logging.Service {})
725+
val live: ZLayer[Any, Nothing, Logging] = ZLayer.succeed(new Logging.Service {})
726726
}
727727
}

core-tests/shared/src/test/scala/zio/TagCorrectnessSpec.scala

+12-12
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ object TagCorrectnessSpec extends DefaultRunnableSpec {
1010
test("Issue #4802") {
1111
ZIO
1212
.serviceWithZIO[Ref[Int]](_.get)
13-
.inject(Ref.make(10).toServiceBuilder)
13+
.inject(Ref.make(10).toLayer)
1414
.map { int =>
1515
assertTrue(int == 10)
1616
}
@@ -39,8 +39,8 @@ object TagCorrectnessSpec extends DefaultRunnableSpec {
3939
}
4040

4141
object Service {
42-
val live: UServiceBuilder[Service[Int]] =
43-
ZServiceBuilder.succeed {
42+
val live: ULayer[Service[Int]] =
43+
ZLayer.succeed {
4444
new Service[Int] {
4545
def foo(t: Int) =
4646
ZIO.succeed(t)
@@ -58,10 +58,10 @@ object TagCorrectnessSpec extends DefaultRunnableSpec {
5858
// https://github.com/zio/zio/issues/4564
5959
test("Issue #4564") {
6060
trait Svc[A]
61-
def testBaseLayer[R, A: Tag]: ZServiceBuilder[R, Nothing, Svc[A]] =
62-
ZIO.environmentWith[R](_ => new Svc[A] {}).toServiceBuilder[Svc[A]]
63-
def testSecondLayer[A: Tag]: ZServiceBuilder[Svc[A], Nothing, Svc[A]] =
64-
ZServiceBuilder.fromFunction[Svc[A], Svc[A]] { environment =>
61+
def testBaseLayer[R, A: Tag]: ZLayer[R, Nothing, Svc[A]] =
62+
ZIO.environmentWith[R](_ => new Svc[A] {}).toLayer[Svc[A]]
63+
def testSecondLayer[A: Tag]: ZLayer[Svc[A], Nothing, Svc[A]] =
64+
ZLayer.fromFunction[Svc[A], Svc[A]] { environment =>
6565
environment.get
6666
}
6767

@@ -79,8 +79,8 @@ object TagCorrectnessSpec extends DefaultRunnableSpec {
7979
def provide: IO[Throwable, D]
8080
}
8181

82-
def layer[A: Tag, D <: Container[A]: Tag](container: D): UServiceBuilder[ContainerProvider[A, D]] =
83-
ZServiceBuilder.succeed {
82+
def layer[A: Tag, D <: Container[A]: Tag](container: D): ULayer[ContainerProvider[A, D]] =
83+
ZLayer.succeed {
8484
new Service[A, D] {
8585
def provide: IO[Throwable, D] = IO.succeed(container)
8686
}
@@ -116,8 +116,8 @@ object HigherKindedTagCorrectness extends DefaultRunnableSpec {
116116
object Cache {
117117
def live[F[_], K, V](
118118
f: Option[V] => F[V]
119-
)(implicit tag: Tag[Cache[F, K, V]]): ZServiceBuilder[Any, Nothing, Cache[F, K, V]] =
120-
ZServiceBuilder {
119+
)(implicit tag: Tag[Cache[F, K, V]]): ZLayer[Any, Nothing, Cache[F, K, V]] =
120+
ZLayer {
121121
for {
122122
cache <- Ref.make(Map.empty[K, V])
123123
} yield new Cache[F, K, V] {
@@ -136,7 +136,7 @@ object HigherKindedTagCorrectness extends DefaultRunnableSpec {
136136
ZIO.serviceWithZIO(_.put(key, value))
137137
}
138138

139-
val myCache: ZServiceBuilder[Any, Nothing, Cache[Option, Int, String]] =
139+
val myCache: ZLayer[Any, Nothing, Cache[Option, Int, String]] =
140140
Cache.live[Option, Int, String](identity)
141141

142142
def spec =

core-tests/shared/src/test/scala/zio/ZEnvironmentIssuesSpec.scala

+2-2
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@ object ZEnvironmentIssuesSpec extends DefaultRunnableSpec {
1414
val zio: URIO[Animal, Animal] = ZIO.service[Animal]
1515

1616
// Provides a Dog
17-
val dog: Dog = new Dog {}
18-
val dogService: UServiceBuilder[Dog] = ZServiceBuilder.succeed(dog)
17+
val dog: Dog = new Dog {}
18+
val dogService: ULayer[Dog] = ZLayer.succeed(dog)
1919

2020
zio.provide(dogService).map { result =>
2121
assertTrue(result == dog)

core-tests/shared/src/test/scala/zio/ZIOSpec.scala

+9-9
Original file line numberDiff line numberDiff line change
@@ -1835,17 +1835,17 @@ object ZIOSpec extends ZIOBaseSpec {
18351835
),
18361836
suite("provideCustom")(
18371837
test("provides the part of the environment that is not part of the `ZEnv`") {
1838-
val loggingServiceBuilder: ZServiceBuilder[Any, Nothing, Logging] = Logging.live
1839-
val zio: ZIO[ZEnv with Logging, Nothing, Unit] = ZIO.unit
1840-
val zio2: URIO[ZEnv, Unit] = zio.provideCustom(loggingServiceBuilder)
1838+
val loggingLayer: ZLayer[Any, Nothing, Logging] = Logging.live
1839+
val zio: ZIO[ZEnv with Logging, Nothing, Unit] = ZIO.unit
1840+
val zio2: URIO[ZEnv, Unit] = zio.provideCustom(loggingLayer)
18411841
assertM(zio2)(anything)
18421842
}
18431843
),
18441844
suite("provideSome")(
18451845
test("can split environment into two parts") {
1846-
val clockServiceBuilder: ZServiceBuilder[Any, Nothing, Clock] = Clock.live
1847-
val zio: ZIO[Clock with Random, Nothing, Unit] = ZIO.unit
1848-
val zio2: URIO[Random, Unit] = zio.provideSome[Random](clockServiceBuilder)
1846+
val clockLayer: ZLayer[Any, Nothing, Clock] = Clock.live
1847+
val zio: ZIO[Clock with Random, Nothing, Unit] = ZIO.unit
1848+
val zio2: URIO[Random, Unit] = zio.provideSome[Random](clockLayer)
18491849
assertM(zio2)(anything)
18501850
}
18511851
),
@@ -3302,7 +3302,7 @@ object ZIOSpec extends ZIOBaseSpec {
33023302
suite("serviceWith")(
33033303
test("effectfully accesses a service in the environment") {
33043304
val zio = ZIO.serviceWithZIO[Int](int => UIO(int + 3))
3305-
assertM(zio.inject(ZServiceBuilder.succeed(0)))(equalTo(3))
3305+
assertM(zio.inject(ZLayer.succeed(0)))(equalTo(3))
33063306
}
33073307
),
33083308
suite("schedule")(
@@ -3600,7 +3600,7 @@ object ZIOSpec extends ZIOBaseSpec {
36003600
a <- ZIO.service[Int].updateService[Int](_ + 1)
36013601
b <- ZIO.service[Int]
36023602
} yield (a, b)
3603-
assertM(zio.provide(ZServiceBuilder.succeed(0)))(equalTo((1, 0)))
3603+
assertM(zio.provide(ZLayer.succeed(0)))(equalTo((1, 0)))
36043604
}
36053605
),
36063606
suite("validate")(
@@ -4054,7 +4054,7 @@ object ZIOSpec extends ZIOBaseSpec {
40544054

40554055
object Logging {
40564056
trait Service
4057-
val live: ZServiceBuilder[Any, Nothing, Logging] = ZServiceBuilder.succeed(new Logging.Service {})
4057+
val live: ZLayer[Any, Nothing, Logging] = ZLayer.succeed(new Logging.Service {})
40584058
}
40594059

40604060
}

0 commit comments

Comments
 (0)