@@ -377,11 +377,13 @@ final class ZQuery[-R, +E, +A] private (private val step: ZIO[R, Nothing, Result
377
377
*/
378
378
final def provideLayer [E1 >: E , R0 ](
379
379
layer : => Described [ZLayer [R0 , E1 , R ]]
380
- )(implicit ev : NeedsEnv [ R ], trace : ZTraceElement ): ZQuery [R0 , E1 , A ] =
380
+ )(implicit trace : ZTraceElement ): ZQuery [R0 , E1 , A ] =
381
381
ZQuery {
382
- layer.value.build.exit.use {
383
- case Exit .Failure (e) => ZIO .succeedNow(Result .fail(e))
384
- case Exit .Success (r) => self.provideEnvironment(Described (r, layer.description)).step
382
+ ZIO .scoped[R0 ] {
383
+ layer.value.build.exit.flatMap {
384
+ case Exit .Failure (e) => ZIO .succeedNow(Result .fail(e))
385
+ case Exit .Success (r) => self.provideEnvironment(Described (r, layer.description)).step
386
+ }
385
387
}
386
388
}
387
389
@@ -399,7 +401,7 @@ final class ZQuery[-R, +E, +A] private (private val step: ZIO[R, Nothing, Result
399
401
*/
400
402
final def provideEnvironment (
401
403
r : => Described [ZEnvironment [R ]]
402
- )(implicit ev : NeedsEnv [ R ], trace : ZTraceElement ): ZQuery [Any , E , A ] =
404
+ )(implicit trace : ZTraceElement ): ZQuery [Any , E , A ] =
403
405
provideSomeEnvironment(Described (_ => r.value, s " _ => ${r.description}" ))
404
406
405
407
/**
@@ -414,7 +416,7 @@ final class ZQuery[-R, +E, +A] private (private val step: ZIO[R, Nothing, Result
414
416
*/
415
417
final def provideSomeEnvironment [R0 ](
416
418
f : => Described [ZEnvironment [R0 ] => ZEnvironment [R ]]
417
- )(implicit ev : NeedsEnv [ R ], trace : ZTraceElement ): ZQuery [R0 , E , A ] =
419
+ )(implicit trace : ZTraceElement ): ZQuery [R0 , E , A ] =
418
420
ZQuery (step.map(_.provideSomeEnvironment(f)).provideSomeEnvironment((r => (f.value(r)))))
419
421
420
422
/**
@@ -1502,7 +1504,7 @@ object ZQuery {
1502
1504
final class ProvideSomeLayer [R0 , - R , + E , + A ](private val self : ZQuery [R , E , A ]) extends AnyVal {
1503
1505
def apply [E1 >: E , R1 ](
1504
1506
layer : => Described [ZLayer [R0 , E1 , R1 ]]
1505
- )(implicit ev1 : R0 with R1 <:< R , ev2 : NeedsEnv [ R ] , tag : Tag [R1 ], trace : ZTraceElement ): ZQuery [R0 , E1 , A ] =
1507
+ )(implicit ev : R0 with R1 <:< R , tag : Tag [R1 ], trace : ZTraceElement ): ZQuery [R0 , E1 , A ] =
1506
1508
self
1507
1509
.asInstanceOf [ZQuery [R0 with R1 , E , A ]]
1508
1510
.provideLayer(Described (ZLayer .environment[R0 ] ++ layer.value, layer.description))
0 commit comments