com.rojoma.simplearm.v2.package.scala Maven / Gradle / Ivy
The newest version!
package com.rojoma.simplearm
import scala.util.control.ControlThrowable
package object v2 {
def managed[A: Resource](resource: =>A): Managed[A] = new Managed[A] {
def run[B](f: A => B): B = using(resource)(f)
}
def unmanaged[A](a: A): Managed[A] = new Managed[A] {
def run[B](f: A => B): B = f(a)
}
private def handleEx[A](resource: Resource[A], value: A, ex: Throwable): Nothing = ex match {
case control: ControlThrowable =>
// A non-local return is normal; just close the thing and propagate the
// control change. If the close throws, that's great, we'll go there
// instead.
resource.close(value)
throw control
case e: Throwable =>
try {
resource.closeAbnormally(value, e)
} catch {
case control: ControlThrowable =>
// this is kinda icky. What we have here is a non-local return that
// was used to exit from closeAbnormally. We'll interpret this as
// "stop exception propagation and switch to the new control path"
throw control
case secondaryException: Throwable =>
if(e ne secondaryException) e.addSuppressed(secondaryException)
}
throw e
}
//
@inline def using[A, RR](r1: =>A)(f: (A) => RR)(implicit ev1: Resource[A]): RR = {
val fr1 = r1
ev1.openBeforeTry(fr1)
val res1 = try {
ev1.openAfterTry(fr1)
f(fr1)
} catch {
case e: Throwable => handleEx(ev1, fr1, e)
}
ev1.close(fr1)
res1
}
def using[A, B, RR](r1: =>A, r2: =>B)(f: (A, B) => RR)(implicit ev1: Resource[A], ev2: Resource[B]): RR = {
val fr1 = r1
ev1.openBeforeTry(fr1)
val res1 = try {
ev1.openAfterTry(fr1)
val fr2 = r2
ev2.openBeforeTry(fr2)
val res2 = try {
ev2.openAfterTry(fr2)
f(fr1, fr2)
} catch {
case e: Throwable => handleEx(ev2, fr2, e)
}
ev2.close(fr2)
res2
} catch {
case e: Throwable => handleEx(ev1, fr1, e)
}
ev1.close(fr1)
res1
}
def using[A, B, C, RR](r1: =>A, r2: =>B, r3: =>C)(f: (A, B, C) => RR)(implicit ev1: Resource[A], ev2: Resource[B], ev3: Resource[C]): RR = {
val fr1 = r1
ev1.openBeforeTry(fr1)
val res1 = try {
ev1.openAfterTry(fr1)
val fr2 = r2
ev2.openBeforeTry(fr2)
val res2 = try {
ev2.openAfterTry(fr2)
val fr3 = r3
ev3.openBeforeTry(fr3)
val res3 = try {
ev3.openAfterTry(fr3)
f(fr1, fr2, fr3)
} catch {
case e: Throwable => handleEx(ev3, fr3, e)
}
ev3.close(fr3)
res3
} catch {
case e: Throwable => handleEx(ev2, fr2, e)
}
ev2.close(fr2)
res2
} catch {
case e: Throwable => handleEx(ev1, fr1, e)
}
ev1.close(fr1)
res1
}
def using[A, B, C, D, RR](r1: =>A, r2: =>B, r3: =>C, r4: =>D)(f: (A, B, C, D) => RR)(implicit ev1: Resource[A], ev2: Resource[B], ev3: Resource[C], ev4: Resource[D]): RR = {
val fr1 = r1
ev1.openBeforeTry(fr1)
val res1 = try {
ev1.openAfterTry(fr1)
val fr2 = r2
ev2.openBeforeTry(fr2)
val res2 = try {
ev2.openAfterTry(fr2)
val fr3 = r3
ev3.openBeforeTry(fr3)
val res3 = try {
ev3.openAfterTry(fr3)
val fr4 = r4
ev4.openBeforeTry(fr4)
val res4 = try {
ev4.openAfterTry(fr4)
f(fr1, fr2, fr3, fr4)
} catch {
case e: Throwable => handleEx(ev4, fr4, e)
}
ev4.close(fr4)
res4
} catch {
case e: Throwable => handleEx(ev3, fr3, e)
}
ev3.close(fr3)
res3
} catch {
case e: Throwable => handleEx(ev2, fr2, e)
}
ev2.close(fr2)
res2
} catch {
case e: Throwable => handleEx(ev1, fr1, e)
}
ev1.close(fr1)
res1
}
def using[A, B, C, D, E, RR](r1: =>A, r2: =>B, r3: =>C, r4: =>D, r5: =>E)(f: (A, B, C, D, E) => RR)(implicit ev1: Resource[A], ev2: Resource[B], ev3: Resource[C], ev4: Resource[D], ev5: Resource[E]): RR = {
val fr1 = r1
ev1.openBeforeTry(fr1)
val res1 = try {
ev1.openAfterTry(fr1)
val fr2 = r2
ev2.openBeforeTry(fr2)
val res2 = try {
ev2.openAfterTry(fr2)
val fr3 = r3
ev3.openBeforeTry(fr3)
val res3 = try {
ev3.openAfterTry(fr3)
val fr4 = r4
ev4.openBeforeTry(fr4)
val res4 = try {
ev4.openAfterTry(fr4)
val fr5 = r5
ev5.openBeforeTry(fr5)
val res5 = try {
ev5.openAfterTry(fr5)
f(fr1, fr2, fr3, fr4, fr5)
} catch {
case e: Throwable => handleEx(ev5, fr5, e)
}
ev5.close(fr5)
res5
} catch {
case e: Throwable => handleEx(ev4, fr4, e)
}
ev4.close(fr4)
res4
} catch {
case e: Throwable => handleEx(ev3, fr3, e)
}
ev3.close(fr3)
res3
} catch {
case e: Throwable => handleEx(ev2, fr2, e)
}
ev2.close(fr2)
res2
} catch {
case e: Throwable => handleEx(ev1, fr1, e)
}
ev1.close(fr1)
res1
}
def using[A, B, C, D, E, F, RR](r1: =>A, r2: =>B, r3: =>C, r4: =>D, r5: =>E, r6: =>F)(f: (A, B, C, D, E, F) => RR)(implicit ev1: Resource[A], ev2: Resource[B], ev3: Resource[C], ev4: Resource[D], ev5: Resource[E], ev6: Resource[F]): RR = {
val fr1 = r1
ev1.openBeforeTry(fr1)
val res1 = try {
ev1.openAfterTry(fr1)
val fr2 = r2
ev2.openBeforeTry(fr2)
val res2 = try {
ev2.openAfterTry(fr2)
val fr3 = r3
ev3.openBeforeTry(fr3)
val res3 = try {
ev3.openAfterTry(fr3)
val fr4 = r4
ev4.openBeforeTry(fr4)
val res4 = try {
ev4.openAfterTry(fr4)
val fr5 = r5
ev5.openBeforeTry(fr5)
val res5 = try {
ev5.openAfterTry(fr5)
val fr6 = r6
ev6.openBeforeTry(fr6)
val res6 = try {
ev6.openAfterTry(fr6)
f(fr1, fr2, fr3, fr4, fr5, fr6)
} catch {
case e: Throwable => handleEx(ev6, fr6, e)
}
ev6.close(fr6)
res6
} catch {
case e: Throwable => handleEx(ev5, fr5, e)
}
ev5.close(fr5)
res5
} catch {
case e: Throwable => handleEx(ev4, fr4, e)
}
ev4.close(fr4)
res4
} catch {
case e: Throwable => handleEx(ev3, fr3, e)
}
ev3.close(fr3)
res3
} catch {
case e: Throwable => handleEx(ev2, fr2, e)
}
ev2.close(fr2)
res2
} catch {
case e: Throwable => handleEx(ev1, fr1, e)
}
ev1.close(fr1)
res1
}
def using[A, B, C, D, E, F, G, RR](r1: =>A, r2: =>B, r3: =>C, r4: =>D, r5: =>E, r6: =>F, r7: =>G)(f: (A, B, C, D, E, F, G) => RR)(implicit ev1: Resource[A], ev2: Resource[B], ev3: Resource[C], ev4: Resource[D], ev5: Resource[E], ev6: Resource[F], ev7: Resource[G]): RR = {
val fr1 = r1
ev1.openBeforeTry(fr1)
val res1 = try {
ev1.openAfterTry(fr1)
val fr2 = r2
ev2.openBeforeTry(fr2)
val res2 = try {
ev2.openAfterTry(fr2)
val fr3 = r3
ev3.openBeforeTry(fr3)
val res3 = try {
ev3.openAfterTry(fr3)
val fr4 = r4
ev4.openBeforeTry(fr4)
val res4 = try {
ev4.openAfterTry(fr4)
val fr5 = r5
ev5.openBeforeTry(fr5)
val res5 = try {
ev5.openAfterTry(fr5)
val fr6 = r6
ev6.openBeforeTry(fr6)
val res6 = try {
ev6.openAfterTry(fr6)
val fr7 = r7
ev7.openBeforeTry(fr7)
val res7 = try {
ev7.openAfterTry(fr7)
f(fr1, fr2, fr3, fr4, fr5, fr6, fr7)
} catch {
case e: Throwable => handleEx(ev7, fr7, e)
}
ev7.close(fr7)
res7
} catch {
case e: Throwable => handleEx(ev6, fr6, e)
}
ev6.close(fr6)
res6
} catch {
case e: Throwable => handleEx(ev5, fr5, e)
}
ev5.close(fr5)
res5
} catch {
case e: Throwable => handleEx(ev4, fr4, e)
}
ev4.close(fr4)
res4
} catch {
case e: Throwable => handleEx(ev3, fr3, e)
}
ev3.close(fr3)
res3
} catch {
case e: Throwable => handleEx(ev2, fr2, e)
}
ev2.close(fr2)
res2
} catch {
case e: Throwable => handleEx(ev1, fr1, e)
}
ev1.close(fr1)
res1
}
def using[A, B, C, D, E, F, G, H, RR](r1: =>A, r2: =>B, r3: =>C, r4: =>D, r5: =>E, r6: =>F, r7: =>G, r8: =>H)(f: (A, B, C, D, E, F, G, H) => RR)(implicit ev1: Resource[A], ev2: Resource[B], ev3: Resource[C], ev4: Resource[D], ev5: Resource[E], ev6: Resource[F], ev7: Resource[G], ev8: Resource[H]): RR = {
val fr1 = r1
ev1.openBeforeTry(fr1)
val res1 = try {
ev1.openAfterTry(fr1)
val fr2 = r2
ev2.openBeforeTry(fr2)
val res2 = try {
ev2.openAfterTry(fr2)
val fr3 = r3
ev3.openBeforeTry(fr3)
val res3 = try {
ev3.openAfterTry(fr3)
val fr4 = r4
ev4.openBeforeTry(fr4)
val res4 = try {
ev4.openAfterTry(fr4)
val fr5 = r5
ev5.openBeforeTry(fr5)
val res5 = try {
ev5.openAfterTry(fr5)
val fr6 = r6
ev6.openBeforeTry(fr6)
val res6 = try {
ev6.openAfterTry(fr6)
val fr7 = r7
ev7.openBeforeTry(fr7)
val res7 = try {
ev7.openAfterTry(fr7)
val fr8 = r8
ev8.openBeforeTry(fr8)
val res8 = try {
ev8.openAfterTry(fr8)
f(fr1, fr2, fr3, fr4, fr5, fr6, fr7, fr8)
} catch {
case e: Throwable => handleEx(ev8, fr8, e)
}
ev8.close(fr8)
res8
} catch {
case e: Throwable => handleEx(ev7, fr7, e)
}
ev7.close(fr7)
res7
} catch {
case e: Throwable => handleEx(ev6, fr6, e)
}
ev6.close(fr6)
res6
} catch {
case e: Throwable => handleEx(ev5, fr5, e)
}
ev5.close(fr5)
res5
} catch {
case e: Throwable => handleEx(ev4, fr4, e)
}
ev4.close(fr4)
res4
} catch {
case e: Throwable => handleEx(ev3, fr3, e)
}
ev3.close(fr3)
res3
} catch {
case e: Throwable => handleEx(ev2, fr2, e)
}
ev2.close(fr2)
res2
} catch {
case e: Throwable => handleEx(ev1, fr1, e)
}
ev1.close(fr1)
res1
}
def using[A, B, C, D, E, F, G, H, I, RR](r1: =>A, r2: =>B, r3: =>C, r4: =>D, r5: =>E, r6: =>F, r7: =>G, r8: =>H, r9: =>I)(f: (A, B, C, D, E, F, G, H, I) => RR)(implicit ev1: Resource[A], ev2: Resource[B], ev3: Resource[C], ev4: Resource[D], ev5: Resource[E], ev6: Resource[F], ev7: Resource[G], ev8: Resource[H], ev9: Resource[I]): RR = {
val fr1 = r1
ev1.openBeforeTry(fr1)
val res1 = try {
ev1.openAfterTry(fr1)
val fr2 = r2
ev2.openBeforeTry(fr2)
val res2 = try {
ev2.openAfterTry(fr2)
val fr3 = r3
ev3.openBeforeTry(fr3)
val res3 = try {
ev3.openAfterTry(fr3)
val fr4 = r4
ev4.openBeforeTry(fr4)
val res4 = try {
ev4.openAfterTry(fr4)
val fr5 = r5
ev5.openBeforeTry(fr5)
val res5 = try {
ev5.openAfterTry(fr5)
val fr6 = r6
ev6.openBeforeTry(fr6)
val res6 = try {
ev6.openAfterTry(fr6)
val fr7 = r7
ev7.openBeforeTry(fr7)
val res7 = try {
ev7.openAfterTry(fr7)
val fr8 = r8
ev8.openBeforeTry(fr8)
val res8 = try {
ev8.openAfterTry(fr8)
val fr9 = r9
ev9.openBeforeTry(fr9)
val res9 = try {
ev9.openAfterTry(fr9)
f(fr1, fr2, fr3, fr4, fr5, fr6, fr7, fr8, fr9)
} catch {
case e: Throwable => handleEx(ev9, fr9, e)
}
ev9.close(fr9)
res9
} catch {
case e: Throwable => handleEx(ev8, fr8, e)
}
ev8.close(fr8)
res8
} catch {
case e: Throwable => handleEx(ev7, fr7, e)
}
ev7.close(fr7)
res7
} catch {
case e: Throwable => handleEx(ev6, fr6, e)
}
ev6.close(fr6)
res6
} catch {
case e: Throwable => handleEx(ev5, fr5, e)
}
ev5.close(fr5)
res5
} catch {
case e: Throwable => handleEx(ev4, fr4, e)
}
ev4.close(fr4)
res4
} catch {
case e: Throwable => handleEx(ev3, fr3, e)
}
ev3.close(fr3)
res3
} catch {
case e: Throwable => handleEx(ev2, fr2, e)
}
ev2.close(fr2)
res2
} catch {
case e: Throwable => handleEx(ev1, fr1, e)
}
ev1.close(fr1)
res1
}
def using[A, B, C, D, E, F, G, H, I, J, RR](r1: =>A, r2: =>B, r3: =>C, r4: =>D, r5: =>E, r6: =>F, r7: =>G, r8: =>H, r9: =>I, r10: =>J)(f: (A, B, C, D, E, F, G, H, I, J) => RR)(implicit ev1: Resource[A], ev2: Resource[B], ev3: Resource[C], ev4: Resource[D], ev5: Resource[E], ev6: Resource[F], ev7: Resource[G], ev8: Resource[H], ev9: Resource[I], ev10: Resource[J]): RR = {
val fr1 = r1
ev1.openBeforeTry(fr1)
val res1 = try {
ev1.openAfterTry(fr1)
val fr2 = r2
ev2.openBeforeTry(fr2)
val res2 = try {
ev2.openAfterTry(fr2)
val fr3 = r3
ev3.openBeforeTry(fr3)
val res3 = try {
ev3.openAfterTry(fr3)
val fr4 = r4
ev4.openBeforeTry(fr4)
val res4 = try {
ev4.openAfterTry(fr4)
val fr5 = r5
ev5.openBeforeTry(fr5)
val res5 = try {
ev5.openAfterTry(fr5)
val fr6 = r6
ev6.openBeforeTry(fr6)
val res6 = try {
ev6.openAfterTry(fr6)
val fr7 = r7
ev7.openBeforeTry(fr7)
val res7 = try {
ev7.openAfterTry(fr7)
val fr8 = r8
ev8.openBeforeTry(fr8)
val res8 = try {
ev8.openAfterTry(fr8)
val fr9 = r9
ev9.openBeforeTry(fr9)
val res9 = try {
ev9.openAfterTry(fr9)
val fr10 = r10
ev10.openBeforeTry(fr10)
val res10 = try {
ev10.openAfterTry(fr10)
f(fr1, fr2, fr3, fr4, fr5, fr6, fr7, fr8, fr9, fr10)
} catch {
case e: Throwable => handleEx(ev10, fr10, e)
}
ev10.close(fr10)
res10
} catch {
case e: Throwable => handleEx(ev9, fr9, e)
}
ev9.close(fr9)
res9
} catch {
case e: Throwable => handleEx(ev8, fr8, e)
}
ev8.close(fr8)
res8
} catch {
case e: Throwable => handleEx(ev7, fr7, e)
}
ev7.close(fr7)
res7
} catch {
case e: Throwable => handleEx(ev6, fr6, e)
}
ev6.close(fr6)
res6
} catch {
case e: Throwable => handleEx(ev5, fr5, e)
}
ev5.close(fr5)
res5
} catch {
case e: Throwable => handleEx(ev4, fr4, e)
}
ev4.close(fr4)
res4
} catch {
case e: Throwable => handleEx(ev3, fr3, e)
}
ev3.close(fr3)
res3
} catch {
case e: Throwable => handleEx(ev2, fr2, e)
}
ev2.close(fr2)
res2
} catch {
case e: Throwable => handleEx(ev1, fr1, e)
}
ev1.close(fr1)
res1
}
def using[A, B, C, D, E, F, G, H, I, J, K, RR](r1: =>A, r2: =>B, r3: =>C, r4: =>D, r5: =>E, r6: =>F, r7: =>G, r8: =>H, r9: =>I, r10: =>J, r11: =>K)(f: (A, B, C, D, E, F, G, H, I, J, K) => RR)(implicit ev1: Resource[A], ev2: Resource[B], ev3: Resource[C], ev4: Resource[D], ev5: Resource[E], ev6: Resource[F], ev7: Resource[G], ev8: Resource[H], ev9: Resource[I], ev10: Resource[J], ev11: Resource[K]): RR = {
val fr1 = r1
ev1.openBeforeTry(fr1)
val res1 = try {
ev1.openAfterTry(fr1)
val fr2 = r2
ev2.openBeforeTry(fr2)
val res2 = try {
ev2.openAfterTry(fr2)
val fr3 = r3
ev3.openBeforeTry(fr3)
val res3 = try {
ev3.openAfterTry(fr3)
val fr4 = r4
ev4.openBeforeTry(fr4)
val res4 = try {
ev4.openAfterTry(fr4)
val fr5 = r5
ev5.openBeforeTry(fr5)
val res5 = try {
ev5.openAfterTry(fr5)
val fr6 = r6
ev6.openBeforeTry(fr6)
val res6 = try {
ev6.openAfterTry(fr6)
val fr7 = r7
ev7.openBeforeTry(fr7)
val res7 = try {
ev7.openAfterTry(fr7)
val fr8 = r8
ev8.openBeforeTry(fr8)
val res8 = try {
ev8.openAfterTry(fr8)
val fr9 = r9
ev9.openBeforeTry(fr9)
val res9 = try {
ev9.openAfterTry(fr9)
val fr10 = r10
ev10.openBeforeTry(fr10)
val res10 = try {
ev10.openAfterTry(fr10)
val fr11 = r11
ev11.openBeforeTry(fr11)
val res11 = try {
ev11.openAfterTry(fr11)
f(fr1, fr2, fr3, fr4, fr5, fr6, fr7, fr8, fr9, fr10, fr11)
} catch {
case e: Throwable => handleEx(ev11, fr11, e)
}
ev11.close(fr11)
res11
} catch {
case e: Throwable => handleEx(ev10, fr10, e)
}
ev10.close(fr10)
res10
} catch {
case e: Throwable => handleEx(ev9, fr9, e)
}
ev9.close(fr9)
res9
} catch {
case e: Throwable => handleEx(ev8, fr8, e)
}
ev8.close(fr8)
res8
} catch {
case e: Throwable => handleEx(ev7, fr7, e)
}
ev7.close(fr7)
res7
} catch {
case e: Throwable => handleEx(ev6, fr6, e)
}
ev6.close(fr6)
res6
} catch {
case e: Throwable => handleEx(ev5, fr5, e)
}
ev5.close(fr5)
res5
} catch {
case e: Throwable => handleEx(ev4, fr4, e)
}
ev4.close(fr4)
res4
} catch {
case e: Throwable => handleEx(ev3, fr3, e)
}
ev3.close(fr3)
res3
} catch {
case e: Throwable => handleEx(ev2, fr2, e)
}
ev2.close(fr2)
res2
} catch {
case e: Throwable => handleEx(ev1, fr1, e)
}
ev1.close(fr1)
res1
}
def using[A, B, C, D, E, F, G, H, I, J, K, L, RR](r1: =>A, r2: =>B, r3: =>C, r4: =>D, r5: =>E, r6: =>F, r7: =>G, r8: =>H, r9: =>I, r10: =>J, r11: =>K, r12: =>L)(f: (A, B, C, D, E, F, G, H, I, J, K, L) => RR)(implicit ev1: Resource[A], ev2: Resource[B], ev3: Resource[C], ev4: Resource[D], ev5: Resource[E], ev6: Resource[F], ev7: Resource[G], ev8: Resource[H], ev9: Resource[I], ev10: Resource[J], ev11: Resource[K], ev12: Resource[L]): RR = {
val fr1 = r1
ev1.openBeforeTry(fr1)
val res1 = try {
ev1.openAfterTry(fr1)
val fr2 = r2
ev2.openBeforeTry(fr2)
val res2 = try {
ev2.openAfterTry(fr2)
val fr3 = r3
ev3.openBeforeTry(fr3)
val res3 = try {
ev3.openAfterTry(fr3)
val fr4 = r4
ev4.openBeforeTry(fr4)
val res4 = try {
ev4.openAfterTry(fr4)
val fr5 = r5
ev5.openBeforeTry(fr5)
val res5 = try {
ev5.openAfterTry(fr5)
val fr6 = r6
ev6.openBeforeTry(fr6)
val res6 = try {
ev6.openAfterTry(fr6)
val fr7 = r7
ev7.openBeforeTry(fr7)
val res7 = try {
ev7.openAfterTry(fr7)
val fr8 = r8
ev8.openBeforeTry(fr8)
val res8 = try {
ev8.openAfterTry(fr8)
val fr9 = r9
ev9.openBeforeTry(fr9)
val res9 = try {
ev9.openAfterTry(fr9)
val fr10 = r10
ev10.openBeforeTry(fr10)
val res10 = try {
ev10.openAfterTry(fr10)
val fr11 = r11
ev11.openBeforeTry(fr11)
val res11 = try {
ev11.openAfterTry(fr11)
val fr12 = r12
ev12.openBeforeTry(fr12)
val res12 = try {
ev12.openAfterTry(fr12)
f(fr1, fr2, fr3, fr4, fr5, fr6, fr7, fr8, fr9, fr10, fr11, fr12)
} catch {
case e: Throwable => handleEx(ev12, fr12, e)
}
ev12.close(fr12)
res12
} catch {
case e: Throwable => handleEx(ev11, fr11, e)
}
ev11.close(fr11)
res11
} catch {
case e: Throwable => handleEx(ev10, fr10, e)
}
ev10.close(fr10)
res10
} catch {
case e: Throwable => handleEx(ev9, fr9, e)
}
ev9.close(fr9)
res9
} catch {
case e: Throwable => handleEx(ev8, fr8, e)
}
ev8.close(fr8)
res8
} catch {
case e: Throwable => handleEx(ev7, fr7, e)
}
ev7.close(fr7)
res7
} catch {
case e: Throwable => handleEx(ev6, fr6, e)
}
ev6.close(fr6)
res6
} catch {
case e: Throwable => handleEx(ev5, fr5, e)
}
ev5.close(fr5)
res5
} catch {
case e: Throwable => handleEx(ev4, fr4, e)
}
ev4.close(fr4)
res4
} catch {
case e: Throwable => handleEx(ev3, fr3, e)
}
ev3.close(fr3)
res3
} catch {
case e: Throwable => handleEx(ev2, fr2, e)
}
ev2.close(fr2)
res2
} catch {
case e: Throwable => handleEx(ev1, fr1, e)
}
ev1.close(fr1)
res1
}
def using[A, B, C, D, E, F, G, H, I, J, K, L, M, RR](r1: =>A, r2: =>B, r3: =>C, r4: =>D, r5: =>E, r6: =>F, r7: =>G, r8: =>H, r9: =>I, r10: =>J, r11: =>K, r12: =>L, r13: =>M)(f: (A, B, C, D, E, F, G, H, I, J, K, L, M) => RR)(implicit ev1: Resource[A], ev2: Resource[B], ev3: Resource[C], ev4: Resource[D], ev5: Resource[E], ev6: Resource[F], ev7: Resource[G], ev8: Resource[H], ev9: Resource[I], ev10: Resource[J], ev11: Resource[K], ev12: Resource[L], ev13: Resource[M]): RR = {
val fr1 = r1
ev1.openBeforeTry(fr1)
val res1 = try {
ev1.openAfterTry(fr1)
val fr2 = r2
ev2.openBeforeTry(fr2)
val res2 = try {
ev2.openAfterTry(fr2)
val fr3 = r3
ev3.openBeforeTry(fr3)
val res3 = try {
ev3.openAfterTry(fr3)
val fr4 = r4
ev4.openBeforeTry(fr4)
val res4 = try {
ev4.openAfterTry(fr4)
val fr5 = r5
ev5.openBeforeTry(fr5)
val res5 = try {
ev5.openAfterTry(fr5)
val fr6 = r6
ev6.openBeforeTry(fr6)
val res6 = try {
ev6.openAfterTry(fr6)
val fr7 = r7
ev7.openBeforeTry(fr7)
val res7 = try {
ev7.openAfterTry(fr7)
val fr8 = r8
ev8.openBeforeTry(fr8)
val res8 = try {
ev8.openAfterTry(fr8)
val fr9 = r9
ev9.openBeforeTry(fr9)
val res9 = try {
ev9.openAfterTry(fr9)
val fr10 = r10
ev10.openBeforeTry(fr10)
val res10 = try {
ev10.openAfterTry(fr10)
val fr11 = r11
ev11.openBeforeTry(fr11)
val res11 = try {
ev11.openAfterTry(fr11)
val fr12 = r12
ev12.openBeforeTry(fr12)
val res12 = try {
ev12.openAfterTry(fr12)
val fr13 = r13
ev13.openBeforeTry(fr13)
val res13 = try {
ev13.openAfterTry(fr13)
f(fr1, fr2, fr3, fr4, fr5, fr6, fr7, fr8, fr9, fr10, fr11, fr12, fr13)
} catch {
case e: Throwable => handleEx(ev13, fr13, e)
}
ev13.close(fr13)
res13
} catch {
case e: Throwable => handleEx(ev12, fr12, e)
}
ev12.close(fr12)
res12
} catch {
case e: Throwable => handleEx(ev11, fr11, e)
}
ev11.close(fr11)
res11
} catch {
case e: Throwable => handleEx(ev10, fr10, e)
}
ev10.close(fr10)
res10
} catch {
case e: Throwable => handleEx(ev9, fr9, e)
}
ev9.close(fr9)
res9
} catch {
case e: Throwable => handleEx(ev8, fr8, e)
}
ev8.close(fr8)
res8
} catch {
case e: Throwable => handleEx(ev7, fr7, e)
}
ev7.close(fr7)
res7
} catch {
case e: Throwable => handleEx(ev6, fr6, e)
}
ev6.close(fr6)
res6
} catch {
case e: Throwable => handleEx(ev5, fr5, e)
}
ev5.close(fr5)
res5
} catch {
case e: Throwable => handleEx(ev4, fr4, e)
}
ev4.close(fr4)
res4
} catch {
case e: Throwable => handleEx(ev3, fr3, e)
}
ev3.close(fr3)
res3
} catch {
case e: Throwable => handleEx(ev2, fr2, e)
}
ev2.close(fr2)
res2
} catch {
case e: Throwable => handleEx(ev1, fr1, e)
}
ev1.close(fr1)
res1
}
def using[A, B, C, D, E, F, G, H, I, J, K, L, M, N, RR](r1: =>A, r2: =>B, r3: =>C, r4: =>D, r5: =>E, r6: =>F, r7: =>G, r8: =>H, r9: =>I, r10: =>J, r11: =>K, r12: =>L, r13: =>M, r14: =>N)(f: (A, B, C, D, E, F, G, H, I, J, K, L, M, N) => RR)(implicit ev1: Resource[A], ev2: Resource[B], ev3: Resource[C], ev4: Resource[D], ev5: Resource[E], ev6: Resource[F], ev7: Resource[G], ev8: Resource[H], ev9: Resource[I], ev10: Resource[J], ev11: Resource[K], ev12: Resource[L], ev13: Resource[M], ev14: Resource[N]): RR = {
val fr1 = r1
ev1.openBeforeTry(fr1)
val res1 = try {
ev1.openAfterTry(fr1)
val fr2 = r2
ev2.openBeforeTry(fr2)
val res2 = try {
ev2.openAfterTry(fr2)
val fr3 = r3
ev3.openBeforeTry(fr3)
val res3 = try {
ev3.openAfterTry(fr3)
val fr4 = r4
ev4.openBeforeTry(fr4)
val res4 = try {
ev4.openAfterTry(fr4)
val fr5 = r5
ev5.openBeforeTry(fr5)
val res5 = try {
ev5.openAfterTry(fr5)
val fr6 = r6
ev6.openBeforeTry(fr6)
val res6 = try {
ev6.openAfterTry(fr6)
val fr7 = r7
ev7.openBeforeTry(fr7)
val res7 = try {
ev7.openAfterTry(fr7)
val fr8 = r8
ev8.openBeforeTry(fr8)
val res8 = try {
ev8.openAfterTry(fr8)
val fr9 = r9
ev9.openBeforeTry(fr9)
val res9 = try {
ev9.openAfterTry(fr9)
val fr10 = r10
ev10.openBeforeTry(fr10)
val res10 = try {
ev10.openAfterTry(fr10)
val fr11 = r11
ev11.openBeforeTry(fr11)
val res11 = try {
ev11.openAfterTry(fr11)
val fr12 = r12
ev12.openBeforeTry(fr12)
val res12 = try {
ev12.openAfterTry(fr12)
val fr13 = r13
ev13.openBeforeTry(fr13)
val res13 = try {
ev13.openAfterTry(fr13)
val fr14 = r14
ev14.openBeforeTry(fr14)
val res14 = try {
ev14.openAfterTry(fr14)
f(fr1, fr2, fr3, fr4, fr5, fr6, fr7, fr8, fr9, fr10, fr11, fr12, fr13, fr14)
} catch {
case e: Throwable => handleEx(ev14, fr14, e)
}
ev14.close(fr14)
res14
} catch {
case e: Throwable => handleEx(ev13, fr13, e)
}
ev13.close(fr13)
res13
} catch {
case e: Throwable => handleEx(ev12, fr12, e)
}
ev12.close(fr12)
res12
} catch {
case e: Throwable => handleEx(ev11, fr11, e)
}
ev11.close(fr11)
res11
} catch {
case e: Throwable => handleEx(ev10, fr10, e)
}
ev10.close(fr10)
res10
} catch {
case e: Throwable => handleEx(ev9, fr9, e)
}
ev9.close(fr9)
res9
} catch {
case e: Throwable => handleEx(ev8, fr8, e)
}
ev8.close(fr8)
res8
} catch {
case e: Throwable => handleEx(ev7, fr7, e)
}
ev7.close(fr7)
res7
} catch {
case e: Throwable => handleEx(ev6, fr6, e)
}
ev6.close(fr6)
res6
} catch {
case e: Throwable => handleEx(ev5, fr5, e)
}
ev5.close(fr5)
res5
} catch {
case e: Throwable => handleEx(ev4, fr4, e)
}
ev4.close(fr4)
res4
} catch {
case e: Throwable => handleEx(ev3, fr3, e)
}
ev3.close(fr3)
res3
} catch {
case e: Throwable => handleEx(ev2, fr2, e)
}
ev2.close(fr2)
res2
} catch {
case e: Throwable => handleEx(ev1, fr1, e)
}
ev1.close(fr1)
res1
}
def using[A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, RR](r1: =>A, r2: =>B, r3: =>C, r4: =>D, r5: =>E, r6: =>F, r7: =>G, r8: =>H, r9: =>I, r10: =>J, r11: =>K, r12: =>L, r13: =>M, r14: =>N, r15: =>O)(f: (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O) => RR)(implicit ev1: Resource[A], ev2: Resource[B], ev3: Resource[C], ev4: Resource[D], ev5: Resource[E], ev6: Resource[F], ev7: Resource[G], ev8: Resource[H], ev9: Resource[I], ev10: Resource[J], ev11: Resource[K], ev12: Resource[L], ev13: Resource[M], ev14: Resource[N], ev15: Resource[O]): RR = {
val fr1 = r1
ev1.openBeforeTry(fr1)
val res1 = try {
ev1.openAfterTry(fr1)
val fr2 = r2
ev2.openBeforeTry(fr2)
val res2 = try {
ev2.openAfterTry(fr2)
val fr3 = r3
ev3.openBeforeTry(fr3)
val res3 = try {
ev3.openAfterTry(fr3)
val fr4 = r4
ev4.openBeforeTry(fr4)
val res4 = try {
ev4.openAfterTry(fr4)
val fr5 = r5
ev5.openBeforeTry(fr5)
val res5 = try {
ev5.openAfterTry(fr5)
val fr6 = r6
ev6.openBeforeTry(fr6)
val res6 = try {
ev6.openAfterTry(fr6)
val fr7 = r7
ev7.openBeforeTry(fr7)
val res7 = try {
ev7.openAfterTry(fr7)
val fr8 = r8
ev8.openBeforeTry(fr8)
val res8 = try {
ev8.openAfterTry(fr8)
val fr9 = r9
ev9.openBeforeTry(fr9)
val res9 = try {
ev9.openAfterTry(fr9)
val fr10 = r10
ev10.openBeforeTry(fr10)
val res10 = try {
ev10.openAfterTry(fr10)
val fr11 = r11
ev11.openBeforeTry(fr11)
val res11 = try {
ev11.openAfterTry(fr11)
val fr12 = r12
ev12.openBeforeTry(fr12)
val res12 = try {
ev12.openAfterTry(fr12)
val fr13 = r13
ev13.openBeforeTry(fr13)
val res13 = try {
ev13.openAfterTry(fr13)
val fr14 = r14
ev14.openBeforeTry(fr14)
val res14 = try {
ev14.openAfterTry(fr14)
val fr15 = r15
ev15.openBeforeTry(fr15)
val res15 = try {
ev15.openAfterTry(fr15)
f(fr1, fr2, fr3, fr4, fr5, fr6, fr7, fr8, fr9, fr10, fr11, fr12, fr13, fr14, fr15)
} catch {
case e: Throwable => handleEx(ev15, fr15, e)
}
ev15.close(fr15)
res15
} catch {
case e: Throwable => handleEx(ev14, fr14, e)
}
ev14.close(fr14)
res14
} catch {
case e: Throwable => handleEx(ev13, fr13, e)
}
ev13.close(fr13)
res13
} catch {
case e: Throwable => handleEx(ev12, fr12, e)
}
ev12.close(fr12)
res12
} catch {
case e: Throwable => handleEx(ev11, fr11, e)
}
ev11.close(fr11)
res11
} catch {
case e: Throwable => handleEx(ev10, fr10, e)
}
ev10.close(fr10)
res10
} catch {
case e: Throwable => handleEx(ev9, fr9, e)
}
ev9.close(fr9)
res9
} catch {
case e: Throwable => handleEx(ev8, fr8, e)
}
ev8.close(fr8)
res8
} catch {
case e: Throwable => handleEx(ev7, fr7, e)
}
ev7.close(fr7)
res7
} catch {
case e: Throwable => handleEx(ev6, fr6, e)
}
ev6.close(fr6)
res6
} catch {
case e: Throwable => handleEx(ev5, fr5, e)
}
ev5.close(fr5)
res5
} catch {
case e: Throwable => handleEx(ev4, fr4, e)
}
ev4.close(fr4)
res4
} catch {
case e: Throwable => handleEx(ev3, fr3, e)
}
ev3.close(fr3)
res3
} catch {
case e: Throwable => handleEx(ev2, fr2, e)
}
ev2.close(fr2)
res2
} catch {
case e: Throwable => handleEx(ev1, fr1, e)
}
ev1.close(fr1)
res1
}
def using[A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, RR](r1: =>A, r2: =>B, r3: =>C, r4: =>D, r5: =>E, r6: =>F, r7: =>G, r8: =>H, r9: =>I, r10: =>J, r11: =>K, r12: =>L, r13: =>M, r14: =>N, r15: =>O, r16: =>P)(f: (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P) => RR)(implicit ev1: Resource[A], ev2: Resource[B], ev3: Resource[C], ev4: Resource[D], ev5: Resource[E], ev6: Resource[F], ev7: Resource[G], ev8: Resource[H], ev9: Resource[I], ev10: Resource[J], ev11: Resource[K], ev12: Resource[L], ev13: Resource[M], ev14: Resource[N], ev15: Resource[O], ev16: Resource[P]): RR = {
val fr1 = r1
ev1.openBeforeTry(fr1)
val res1 = try {
ev1.openAfterTry(fr1)
val fr2 = r2
ev2.openBeforeTry(fr2)
val res2 = try {
ev2.openAfterTry(fr2)
val fr3 = r3
ev3.openBeforeTry(fr3)
val res3 = try {
ev3.openAfterTry(fr3)
val fr4 = r4
ev4.openBeforeTry(fr4)
val res4 = try {
ev4.openAfterTry(fr4)
val fr5 = r5
ev5.openBeforeTry(fr5)
val res5 = try {
ev5.openAfterTry(fr5)
val fr6 = r6
ev6.openBeforeTry(fr6)
val res6 = try {
ev6.openAfterTry(fr6)
val fr7 = r7
ev7.openBeforeTry(fr7)
val res7 = try {
ev7.openAfterTry(fr7)
val fr8 = r8
ev8.openBeforeTry(fr8)
val res8 = try {
ev8.openAfterTry(fr8)
val fr9 = r9
ev9.openBeforeTry(fr9)
val res9 = try {
ev9.openAfterTry(fr9)
val fr10 = r10
ev10.openBeforeTry(fr10)
val res10 = try {
ev10.openAfterTry(fr10)
val fr11 = r11
ev11.openBeforeTry(fr11)
val res11 = try {
ev11.openAfterTry(fr11)
val fr12 = r12
ev12.openBeforeTry(fr12)
val res12 = try {
ev12.openAfterTry(fr12)
val fr13 = r13
ev13.openBeforeTry(fr13)
val res13 = try {
ev13.openAfterTry(fr13)
val fr14 = r14
ev14.openBeforeTry(fr14)
val res14 = try {
ev14.openAfterTry(fr14)
val fr15 = r15
ev15.openBeforeTry(fr15)
val res15 = try {
ev15.openAfterTry(fr15)
val fr16 = r16
ev16.openBeforeTry(fr16)
val res16 = try {
ev16.openAfterTry(fr16)
f(fr1, fr2, fr3, fr4, fr5, fr6, fr7, fr8, fr9, fr10, fr11, fr12, fr13, fr14, fr15, fr16)
} catch {
case e: Throwable => handleEx(ev16, fr16, e)
}
ev16.close(fr16)
res16
} catch {
case e: Throwable => handleEx(ev15, fr15, e)
}
ev15.close(fr15)
res15
} catch {
case e: Throwable => handleEx(ev14, fr14, e)
}
ev14.close(fr14)
res14
} catch {
case e: Throwable => handleEx(ev13, fr13, e)
}
ev13.close(fr13)
res13
} catch {
case e: Throwable => handleEx(ev12, fr12, e)
}
ev12.close(fr12)
res12
} catch {
case e: Throwable => handleEx(ev11, fr11, e)
}
ev11.close(fr11)
res11
} catch {
case e: Throwable => handleEx(ev10, fr10, e)
}
ev10.close(fr10)
res10
} catch {
case e: Throwable => handleEx(ev9, fr9, e)
}
ev9.close(fr9)
res9
} catch {
case e: Throwable => handleEx(ev8, fr8, e)
}
ev8.close(fr8)
res8
} catch {
case e: Throwable => handleEx(ev7, fr7, e)
}
ev7.close(fr7)
res7
} catch {
case e: Throwable => handleEx(ev6, fr6, e)
}
ev6.close(fr6)
res6
} catch {
case e: Throwable => handleEx(ev5, fr5, e)
}
ev5.close(fr5)
res5
} catch {
case e: Throwable => handleEx(ev4, fr4, e)
}
ev4.close(fr4)
res4
} catch {
case e: Throwable => handleEx(ev3, fr3, e)
}
ev3.close(fr3)
res3
} catch {
case e: Throwable => handleEx(ev2, fr2, e)
}
ev2.close(fr2)
res2
} catch {
case e: Throwable => handleEx(ev1, fr1, e)
}
ev1.close(fr1)
res1
}
def using[A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, RR](r1: =>A, r2: =>B, r3: =>C, r4: =>D, r5: =>E, r6: =>F, r7: =>G, r8: =>H, r9: =>I, r10: =>J, r11: =>K, r12: =>L, r13: =>M, r14: =>N, r15: =>O, r16: =>P, r17: =>Q)(f: (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q) => RR)(implicit ev1: Resource[A], ev2: Resource[B], ev3: Resource[C], ev4: Resource[D], ev5: Resource[E], ev6: Resource[F], ev7: Resource[G], ev8: Resource[H], ev9: Resource[I], ev10: Resource[J], ev11: Resource[K], ev12: Resource[L], ev13: Resource[M], ev14: Resource[N], ev15: Resource[O], ev16: Resource[P], ev17: Resource[Q]): RR = {
val fr1 = r1
ev1.openBeforeTry(fr1)
val res1 = try {
ev1.openAfterTry(fr1)
val fr2 = r2
ev2.openBeforeTry(fr2)
val res2 = try {
ev2.openAfterTry(fr2)
val fr3 = r3
ev3.openBeforeTry(fr3)
val res3 = try {
ev3.openAfterTry(fr3)
val fr4 = r4
ev4.openBeforeTry(fr4)
val res4 = try {
ev4.openAfterTry(fr4)
val fr5 = r5
ev5.openBeforeTry(fr5)
val res5 = try {
ev5.openAfterTry(fr5)
val fr6 = r6
ev6.openBeforeTry(fr6)
val res6 = try {
ev6.openAfterTry(fr6)
val fr7 = r7
ev7.openBeforeTry(fr7)
val res7 = try {
ev7.openAfterTry(fr7)
val fr8 = r8
ev8.openBeforeTry(fr8)
val res8 = try {
ev8.openAfterTry(fr8)
val fr9 = r9
ev9.openBeforeTry(fr9)
val res9 = try {
ev9.openAfterTry(fr9)
val fr10 = r10
ev10.openBeforeTry(fr10)
val res10 = try {
ev10.openAfterTry(fr10)
val fr11 = r11
ev11.openBeforeTry(fr11)
val res11 = try {
ev11.openAfterTry(fr11)
val fr12 = r12
ev12.openBeforeTry(fr12)
val res12 = try {
ev12.openAfterTry(fr12)
val fr13 = r13
ev13.openBeforeTry(fr13)
val res13 = try {
ev13.openAfterTry(fr13)
val fr14 = r14
ev14.openBeforeTry(fr14)
val res14 = try {
ev14.openAfterTry(fr14)
val fr15 = r15
ev15.openBeforeTry(fr15)
val res15 = try {
ev15.openAfterTry(fr15)
val fr16 = r16
ev16.openBeforeTry(fr16)
val res16 = try {
ev16.openAfterTry(fr16)
val fr17 = r17
ev17.openBeforeTry(fr17)
val res17 = try {
ev17.openAfterTry(fr17)
f(fr1, fr2, fr3, fr4, fr5, fr6, fr7, fr8, fr9, fr10, fr11, fr12, fr13, fr14, fr15, fr16, fr17)
} catch {
case e: Throwable => handleEx(ev17, fr17, e)
}
ev17.close(fr17)
res17
} catch {
case e: Throwable => handleEx(ev16, fr16, e)
}
ev16.close(fr16)
res16
} catch {
case e: Throwable => handleEx(ev15, fr15, e)
}
ev15.close(fr15)
res15
} catch {
case e: Throwable => handleEx(ev14, fr14, e)
}
ev14.close(fr14)
res14
} catch {
case e: Throwable => handleEx(ev13, fr13, e)
}
ev13.close(fr13)
res13
} catch {
case e: Throwable => handleEx(ev12, fr12, e)
}
ev12.close(fr12)
res12
} catch {
case e: Throwable => handleEx(ev11, fr11, e)
}
ev11.close(fr11)
res11
} catch {
case e: Throwable => handleEx(ev10, fr10, e)
}
ev10.close(fr10)
res10
} catch {
case e: Throwable => handleEx(ev9, fr9, e)
}
ev9.close(fr9)
res9
} catch {
case e: Throwable => handleEx(ev8, fr8, e)
}
ev8.close(fr8)
res8
} catch {
case e: Throwable => handleEx(ev7, fr7, e)
}
ev7.close(fr7)
res7
} catch {
case e: Throwable => handleEx(ev6, fr6, e)
}
ev6.close(fr6)
res6
} catch {
case e: Throwable => handleEx(ev5, fr5, e)
}
ev5.close(fr5)
res5
} catch {
case e: Throwable => handleEx(ev4, fr4, e)
}
ev4.close(fr4)
res4
} catch {
case e: Throwable => handleEx(ev3, fr3, e)
}
ev3.close(fr3)
res3
} catch {
case e: Throwable => handleEx(ev2, fr2, e)
}
ev2.close(fr2)
res2
} catch {
case e: Throwable => handleEx(ev1, fr1, e)
}
ev1.close(fr1)
res1
}
def using[A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, RR](r1: =>A, r2: =>B, r3: =>C, r4: =>D, r5: =>E, r6: =>F, r7: =>G, r8: =>H, r9: =>I, r10: =>J, r11: =>K, r12: =>L, r13: =>M, r14: =>N, r15: =>O, r16: =>P, r17: =>Q, r18: =>R)(f: (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R) => RR)(implicit ev1: Resource[A], ev2: Resource[B], ev3: Resource[C], ev4: Resource[D], ev5: Resource[E], ev6: Resource[F], ev7: Resource[G], ev8: Resource[H], ev9: Resource[I], ev10: Resource[J], ev11: Resource[K], ev12: Resource[L], ev13: Resource[M], ev14: Resource[N], ev15: Resource[O], ev16: Resource[P], ev17: Resource[Q], ev18: Resource[R]): RR = {
val fr1 = r1
ev1.openBeforeTry(fr1)
val res1 = try {
ev1.openAfterTry(fr1)
val fr2 = r2
ev2.openBeforeTry(fr2)
val res2 = try {
ev2.openAfterTry(fr2)
val fr3 = r3
ev3.openBeforeTry(fr3)
val res3 = try {
ev3.openAfterTry(fr3)
val fr4 = r4
ev4.openBeforeTry(fr4)
val res4 = try {
ev4.openAfterTry(fr4)
val fr5 = r5
ev5.openBeforeTry(fr5)
val res5 = try {
ev5.openAfterTry(fr5)
val fr6 = r6
ev6.openBeforeTry(fr6)
val res6 = try {
ev6.openAfterTry(fr6)
val fr7 = r7
ev7.openBeforeTry(fr7)
val res7 = try {
ev7.openAfterTry(fr7)
val fr8 = r8
ev8.openBeforeTry(fr8)
val res8 = try {
ev8.openAfterTry(fr8)
val fr9 = r9
ev9.openBeforeTry(fr9)
val res9 = try {
ev9.openAfterTry(fr9)
val fr10 = r10
ev10.openBeforeTry(fr10)
val res10 = try {
ev10.openAfterTry(fr10)
val fr11 = r11
ev11.openBeforeTry(fr11)
val res11 = try {
ev11.openAfterTry(fr11)
val fr12 = r12
ev12.openBeforeTry(fr12)
val res12 = try {
ev12.openAfterTry(fr12)
val fr13 = r13
ev13.openBeforeTry(fr13)
val res13 = try {
ev13.openAfterTry(fr13)
val fr14 = r14
ev14.openBeforeTry(fr14)
val res14 = try {
ev14.openAfterTry(fr14)
val fr15 = r15
ev15.openBeforeTry(fr15)
val res15 = try {
ev15.openAfterTry(fr15)
val fr16 = r16
ev16.openBeforeTry(fr16)
val res16 = try {
ev16.openAfterTry(fr16)
val fr17 = r17
ev17.openBeforeTry(fr17)
val res17 = try {
ev17.openAfterTry(fr17)
val fr18 = r18
ev18.openBeforeTry(fr18)
val res18 = try {
ev18.openAfterTry(fr18)
f(fr1, fr2, fr3, fr4, fr5, fr6, fr7, fr8, fr9, fr10, fr11, fr12, fr13, fr14, fr15, fr16, fr17, fr18)
} catch {
case e: Throwable => handleEx(ev18, fr18, e)
}
ev18.close(fr18)
res18
} catch {
case e: Throwable => handleEx(ev17, fr17, e)
}
ev17.close(fr17)
res17
} catch {
case e: Throwable => handleEx(ev16, fr16, e)
}
ev16.close(fr16)
res16
} catch {
case e: Throwable => handleEx(ev15, fr15, e)
}
ev15.close(fr15)
res15
} catch {
case e: Throwable => handleEx(ev14, fr14, e)
}
ev14.close(fr14)
res14
} catch {
case e: Throwable => handleEx(ev13, fr13, e)
}
ev13.close(fr13)
res13
} catch {
case e: Throwable => handleEx(ev12, fr12, e)
}
ev12.close(fr12)
res12
} catch {
case e: Throwable => handleEx(ev11, fr11, e)
}
ev11.close(fr11)
res11
} catch {
case e: Throwable => handleEx(ev10, fr10, e)
}
ev10.close(fr10)
res10
} catch {
case e: Throwable => handleEx(ev9, fr9, e)
}
ev9.close(fr9)
res9
} catch {
case e: Throwable => handleEx(ev8, fr8, e)
}
ev8.close(fr8)
res8
} catch {
case e: Throwable => handleEx(ev7, fr7, e)
}
ev7.close(fr7)
res7
} catch {
case e: Throwable => handleEx(ev6, fr6, e)
}
ev6.close(fr6)
res6
} catch {
case e: Throwable => handleEx(ev5, fr5, e)
}
ev5.close(fr5)
res5
} catch {
case e: Throwable => handleEx(ev4, fr4, e)
}
ev4.close(fr4)
res4
} catch {
case e: Throwable => handleEx(ev3, fr3, e)
}
ev3.close(fr3)
res3
} catch {
case e: Throwable => handleEx(ev2, fr2, e)
}
ev2.close(fr2)
res2
} catch {
case e: Throwable => handleEx(ev1, fr1, e)
}
ev1.close(fr1)
res1
}
def using[A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, RR](r1: =>A, r2: =>B, r3: =>C, r4: =>D, r5: =>E, r6: =>F, r7: =>G, r8: =>H, r9: =>I, r10: =>J, r11: =>K, r12: =>L, r13: =>M, r14: =>N, r15: =>O, r16: =>P, r17: =>Q, r18: =>R, r19: =>S)(f: (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S) => RR)(implicit ev1: Resource[A], ev2: Resource[B], ev3: Resource[C], ev4: Resource[D], ev5: Resource[E], ev6: Resource[F], ev7: Resource[G], ev8: Resource[H], ev9: Resource[I], ev10: Resource[J], ev11: Resource[K], ev12: Resource[L], ev13: Resource[M], ev14: Resource[N], ev15: Resource[O], ev16: Resource[P], ev17: Resource[Q], ev18: Resource[R], ev19: Resource[S]): RR = {
val fr1 = r1
ev1.openBeforeTry(fr1)
val res1 = try {
ev1.openAfterTry(fr1)
val fr2 = r2
ev2.openBeforeTry(fr2)
val res2 = try {
ev2.openAfterTry(fr2)
val fr3 = r3
ev3.openBeforeTry(fr3)
val res3 = try {
ev3.openAfterTry(fr3)
val fr4 = r4
ev4.openBeforeTry(fr4)
val res4 = try {
ev4.openAfterTry(fr4)
val fr5 = r5
ev5.openBeforeTry(fr5)
val res5 = try {
ev5.openAfterTry(fr5)
val fr6 = r6
ev6.openBeforeTry(fr6)
val res6 = try {
ev6.openAfterTry(fr6)
val fr7 = r7
ev7.openBeforeTry(fr7)
val res7 = try {
ev7.openAfterTry(fr7)
val fr8 = r8
ev8.openBeforeTry(fr8)
val res8 = try {
ev8.openAfterTry(fr8)
val fr9 = r9
ev9.openBeforeTry(fr9)
val res9 = try {
ev9.openAfterTry(fr9)
val fr10 = r10
ev10.openBeforeTry(fr10)
val res10 = try {
ev10.openAfterTry(fr10)
val fr11 = r11
ev11.openBeforeTry(fr11)
val res11 = try {
ev11.openAfterTry(fr11)
val fr12 = r12
ev12.openBeforeTry(fr12)
val res12 = try {
ev12.openAfterTry(fr12)
val fr13 = r13
ev13.openBeforeTry(fr13)
val res13 = try {
ev13.openAfterTry(fr13)
val fr14 = r14
ev14.openBeforeTry(fr14)
val res14 = try {
ev14.openAfterTry(fr14)
val fr15 = r15
ev15.openBeforeTry(fr15)
val res15 = try {
ev15.openAfterTry(fr15)
val fr16 = r16
ev16.openBeforeTry(fr16)
val res16 = try {
ev16.openAfterTry(fr16)
val fr17 = r17
ev17.openBeforeTry(fr17)
val res17 = try {
ev17.openAfterTry(fr17)
val fr18 = r18
ev18.openBeforeTry(fr18)
val res18 = try {
ev18.openAfterTry(fr18)
val fr19 = r19
ev19.openBeforeTry(fr19)
val res19 = try {
ev19.openAfterTry(fr19)
f(fr1, fr2, fr3, fr4, fr5, fr6, fr7, fr8, fr9, fr10, fr11, fr12, fr13, fr14, fr15, fr16, fr17, fr18, fr19)
} catch {
case e: Throwable => handleEx(ev19, fr19, e)
}
ev19.close(fr19)
res19
} catch {
case e: Throwable => handleEx(ev18, fr18, e)
}
ev18.close(fr18)
res18
} catch {
case e: Throwable => handleEx(ev17, fr17, e)
}
ev17.close(fr17)
res17
} catch {
case e: Throwable => handleEx(ev16, fr16, e)
}
ev16.close(fr16)
res16
} catch {
case e: Throwable => handleEx(ev15, fr15, e)
}
ev15.close(fr15)
res15
} catch {
case e: Throwable => handleEx(ev14, fr14, e)
}
ev14.close(fr14)
res14
} catch {
case e: Throwable => handleEx(ev13, fr13, e)
}
ev13.close(fr13)
res13
} catch {
case e: Throwable => handleEx(ev12, fr12, e)
}
ev12.close(fr12)
res12
} catch {
case e: Throwable => handleEx(ev11, fr11, e)
}
ev11.close(fr11)
res11
} catch {
case e: Throwable => handleEx(ev10, fr10, e)
}
ev10.close(fr10)
res10
} catch {
case e: Throwable => handleEx(ev9, fr9, e)
}
ev9.close(fr9)
res9
} catch {
case e: Throwable => handleEx(ev8, fr8, e)
}
ev8.close(fr8)
res8
} catch {
case e: Throwable => handleEx(ev7, fr7, e)
}
ev7.close(fr7)
res7
} catch {
case e: Throwable => handleEx(ev6, fr6, e)
}
ev6.close(fr6)
res6
} catch {
case e: Throwable => handleEx(ev5, fr5, e)
}
ev5.close(fr5)
res5
} catch {
case e: Throwable => handleEx(ev4, fr4, e)
}
ev4.close(fr4)
res4
} catch {
case e: Throwable => handleEx(ev3, fr3, e)
}
ev3.close(fr3)
res3
} catch {
case e: Throwable => handleEx(ev2, fr2, e)
}
ev2.close(fr2)
res2
} catch {
case e: Throwable => handleEx(ev1, fr1, e)
}
ev1.close(fr1)
res1
}
def using[A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, RR](r1: =>A, r2: =>B, r3: =>C, r4: =>D, r5: =>E, r6: =>F, r7: =>G, r8: =>H, r9: =>I, r10: =>J, r11: =>K, r12: =>L, r13: =>M, r14: =>N, r15: =>O, r16: =>P, r17: =>Q, r18: =>R, r19: =>S, r20: =>T)(f: (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T) => RR)(implicit ev1: Resource[A], ev2: Resource[B], ev3: Resource[C], ev4: Resource[D], ev5: Resource[E], ev6: Resource[F], ev7: Resource[G], ev8: Resource[H], ev9: Resource[I], ev10: Resource[J], ev11: Resource[K], ev12: Resource[L], ev13: Resource[M], ev14: Resource[N], ev15: Resource[O], ev16: Resource[P], ev17: Resource[Q], ev18: Resource[R], ev19: Resource[S], ev20: Resource[T]): RR = {
val fr1 = r1
ev1.openBeforeTry(fr1)
val res1 = try {
ev1.openAfterTry(fr1)
val fr2 = r2
ev2.openBeforeTry(fr2)
val res2 = try {
ev2.openAfterTry(fr2)
val fr3 = r3
ev3.openBeforeTry(fr3)
val res3 = try {
ev3.openAfterTry(fr3)
val fr4 = r4
ev4.openBeforeTry(fr4)
val res4 = try {
ev4.openAfterTry(fr4)
val fr5 = r5
ev5.openBeforeTry(fr5)
val res5 = try {
ev5.openAfterTry(fr5)
val fr6 = r6
ev6.openBeforeTry(fr6)
val res6 = try {
ev6.openAfterTry(fr6)
val fr7 = r7
ev7.openBeforeTry(fr7)
val res7 = try {
ev7.openAfterTry(fr7)
val fr8 = r8
ev8.openBeforeTry(fr8)
val res8 = try {
ev8.openAfterTry(fr8)
val fr9 = r9
ev9.openBeforeTry(fr9)
val res9 = try {
ev9.openAfterTry(fr9)
val fr10 = r10
ev10.openBeforeTry(fr10)
val res10 = try {
ev10.openAfterTry(fr10)
val fr11 = r11
ev11.openBeforeTry(fr11)
val res11 = try {
ev11.openAfterTry(fr11)
val fr12 = r12
ev12.openBeforeTry(fr12)
val res12 = try {
ev12.openAfterTry(fr12)
val fr13 = r13
ev13.openBeforeTry(fr13)
val res13 = try {
ev13.openAfterTry(fr13)
val fr14 = r14
ev14.openBeforeTry(fr14)
val res14 = try {
ev14.openAfterTry(fr14)
val fr15 = r15
ev15.openBeforeTry(fr15)
val res15 = try {
ev15.openAfterTry(fr15)
val fr16 = r16
ev16.openBeforeTry(fr16)
val res16 = try {
ev16.openAfterTry(fr16)
val fr17 = r17
ev17.openBeforeTry(fr17)
val res17 = try {
ev17.openAfterTry(fr17)
val fr18 = r18
ev18.openBeforeTry(fr18)
val res18 = try {
ev18.openAfterTry(fr18)
val fr19 = r19
ev19.openBeforeTry(fr19)
val res19 = try {
ev19.openAfterTry(fr19)
val fr20 = r20
ev20.openBeforeTry(fr20)
val res20 = try {
ev20.openAfterTry(fr20)
f(fr1, fr2, fr3, fr4, fr5, fr6, fr7, fr8, fr9, fr10, fr11, fr12, fr13, fr14, fr15, fr16, fr17, fr18, fr19, fr20)
} catch {
case e: Throwable => handleEx(ev20, fr20, e)
}
ev20.close(fr20)
res20
} catch {
case e: Throwable => handleEx(ev19, fr19, e)
}
ev19.close(fr19)
res19
} catch {
case e: Throwable => handleEx(ev18, fr18, e)
}
ev18.close(fr18)
res18
} catch {
case e: Throwable => handleEx(ev17, fr17, e)
}
ev17.close(fr17)
res17
} catch {
case e: Throwable => handleEx(ev16, fr16, e)
}
ev16.close(fr16)
res16
} catch {
case e: Throwable => handleEx(ev15, fr15, e)
}
ev15.close(fr15)
res15
} catch {
case e: Throwable => handleEx(ev14, fr14, e)
}
ev14.close(fr14)
res14
} catch {
case e: Throwable => handleEx(ev13, fr13, e)
}
ev13.close(fr13)
res13
} catch {
case e: Throwable => handleEx(ev12, fr12, e)
}
ev12.close(fr12)
res12
} catch {
case e: Throwable => handleEx(ev11, fr11, e)
}
ev11.close(fr11)
res11
} catch {
case e: Throwable => handleEx(ev10, fr10, e)
}
ev10.close(fr10)
res10
} catch {
case e: Throwable => handleEx(ev9, fr9, e)
}
ev9.close(fr9)
res9
} catch {
case e: Throwable => handleEx(ev8, fr8, e)
}
ev8.close(fr8)
res8
} catch {
case e: Throwable => handleEx(ev7, fr7, e)
}
ev7.close(fr7)
res7
} catch {
case e: Throwable => handleEx(ev6, fr6, e)
}
ev6.close(fr6)
res6
} catch {
case e: Throwable => handleEx(ev5, fr5, e)
}
ev5.close(fr5)
res5
} catch {
case e: Throwable => handleEx(ev4, fr4, e)
}
ev4.close(fr4)
res4
} catch {
case e: Throwable => handleEx(ev3, fr3, e)
}
ev3.close(fr3)
res3
} catch {
case e: Throwable => handleEx(ev2, fr2, e)
}
ev2.close(fr2)
res2
} catch {
case e: Throwable => handleEx(ev1, fr1, e)
}
ev1.close(fr1)
res1
}
def using[A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, RR](r1: =>A, r2: =>B, r3: =>C, r4: =>D, r5: =>E, r6: =>F, r7: =>G, r8: =>H, r9: =>I, r10: =>J, r11: =>K, r12: =>L, r13: =>M, r14: =>N, r15: =>O, r16: =>P, r17: =>Q, r18: =>R, r19: =>S, r20: =>T, r21: =>U)(f: (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U) => RR)(implicit ev1: Resource[A], ev2: Resource[B], ev3: Resource[C], ev4: Resource[D], ev5: Resource[E], ev6: Resource[F], ev7: Resource[G], ev8: Resource[H], ev9: Resource[I], ev10: Resource[J], ev11: Resource[K], ev12: Resource[L], ev13: Resource[M], ev14: Resource[N], ev15: Resource[O], ev16: Resource[P], ev17: Resource[Q], ev18: Resource[R], ev19: Resource[S], ev20: Resource[T], ev21: Resource[U]): RR = {
val fr1 = r1
ev1.openBeforeTry(fr1)
val res1 = try {
ev1.openAfterTry(fr1)
val fr2 = r2
ev2.openBeforeTry(fr2)
val res2 = try {
ev2.openAfterTry(fr2)
val fr3 = r3
ev3.openBeforeTry(fr3)
val res3 = try {
ev3.openAfterTry(fr3)
val fr4 = r4
ev4.openBeforeTry(fr4)
val res4 = try {
ev4.openAfterTry(fr4)
val fr5 = r5
ev5.openBeforeTry(fr5)
val res5 = try {
ev5.openAfterTry(fr5)
val fr6 = r6
ev6.openBeforeTry(fr6)
val res6 = try {
ev6.openAfterTry(fr6)
val fr7 = r7
ev7.openBeforeTry(fr7)
val res7 = try {
ev7.openAfterTry(fr7)
val fr8 = r8
ev8.openBeforeTry(fr8)
val res8 = try {
ev8.openAfterTry(fr8)
val fr9 = r9
ev9.openBeforeTry(fr9)
val res9 = try {
ev9.openAfterTry(fr9)
val fr10 = r10
ev10.openBeforeTry(fr10)
val res10 = try {
ev10.openAfterTry(fr10)
val fr11 = r11
ev11.openBeforeTry(fr11)
val res11 = try {
ev11.openAfterTry(fr11)
val fr12 = r12
ev12.openBeforeTry(fr12)
val res12 = try {
ev12.openAfterTry(fr12)
val fr13 = r13
ev13.openBeforeTry(fr13)
val res13 = try {
ev13.openAfterTry(fr13)
val fr14 = r14
ev14.openBeforeTry(fr14)
val res14 = try {
ev14.openAfterTry(fr14)
val fr15 = r15
ev15.openBeforeTry(fr15)
val res15 = try {
ev15.openAfterTry(fr15)
val fr16 = r16
ev16.openBeforeTry(fr16)
val res16 = try {
ev16.openAfterTry(fr16)
val fr17 = r17
ev17.openBeforeTry(fr17)
val res17 = try {
ev17.openAfterTry(fr17)
val fr18 = r18
ev18.openBeforeTry(fr18)
val res18 = try {
ev18.openAfterTry(fr18)
val fr19 = r19
ev19.openBeforeTry(fr19)
val res19 = try {
ev19.openAfterTry(fr19)
val fr20 = r20
ev20.openBeforeTry(fr20)
val res20 = try {
ev20.openAfterTry(fr20)
val fr21 = r21
ev21.openBeforeTry(fr21)
val res21 = try {
ev21.openAfterTry(fr21)
f(fr1, fr2, fr3, fr4, fr5, fr6, fr7, fr8, fr9, fr10, fr11, fr12, fr13, fr14, fr15, fr16, fr17, fr18, fr19, fr20, fr21)
} catch {
case e: Throwable => handleEx(ev21, fr21, e)
}
ev21.close(fr21)
res21
} catch {
case e: Throwable => handleEx(ev20, fr20, e)
}
ev20.close(fr20)
res20
} catch {
case e: Throwable => handleEx(ev19, fr19, e)
}
ev19.close(fr19)
res19
} catch {
case e: Throwable => handleEx(ev18, fr18, e)
}
ev18.close(fr18)
res18
} catch {
case e: Throwable => handleEx(ev17, fr17, e)
}
ev17.close(fr17)
res17
} catch {
case e: Throwable => handleEx(ev16, fr16, e)
}
ev16.close(fr16)
res16
} catch {
case e: Throwable => handleEx(ev15, fr15, e)
}
ev15.close(fr15)
res15
} catch {
case e: Throwable => handleEx(ev14, fr14, e)
}
ev14.close(fr14)
res14
} catch {
case e: Throwable => handleEx(ev13, fr13, e)
}
ev13.close(fr13)
res13
} catch {
case e: Throwable => handleEx(ev12, fr12, e)
}
ev12.close(fr12)
res12
} catch {
case e: Throwable => handleEx(ev11, fr11, e)
}
ev11.close(fr11)
res11
} catch {
case e: Throwable => handleEx(ev10, fr10, e)
}
ev10.close(fr10)
res10
} catch {
case e: Throwable => handleEx(ev9, fr9, e)
}
ev9.close(fr9)
res9
} catch {
case e: Throwable => handleEx(ev8, fr8, e)
}
ev8.close(fr8)
res8
} catch {
case e: Throwable => handleEx(ev7, fr7, e)
}
ev7.close(fr7)
res7
} catch {
case e: Throwable => handleEx(ev6, fr6, e)
}
ev6.close(fr6)
res6
} catch {
case e: Throwable => handleEx(ev5, fr5, e)
}
ev5.close(fr5)
res5
} catch {
case e: Throwable => handleEx(ev4, fr4, e)
}
ev4.close(fr4)
res4
} catch {
case e: Throwable => handleEx(ev3, fr3, e)
}
ev3.close(fr3)
res3
} catch {
case e: Throwable => handleEx(ev2, fr2, e)
}
ev2.close(fr2)
res2
} catch {
case e: Throwable => handleEx(ev1, fr1, e)
}
ev1.close(fr1)
res1
}
def using[A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, RR](r1: =>A, r2: =>B, r3: =>C, r4: =>D, r5: =>E, r6: =>F, r7: =>G, r8: =>H, r9: =>I, r10: =>J, r11: =>K, r12: =>L, r13: =>M, r14: =>N, r15: =>O, r16: =>P, r17: =>Q, r18: =>R, r19: =>S, r20: =>T, r21: =>U, r22: =>V)(f: (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V) => RR)(implicit ev1: Resource[A], ev2: Resource[B], ev3: Resource[C], ev4: Resource[D], ev5: Resource[E], ev6: Resource[F], ev7: Resource[G], ev8: Resource[H], ev9: Resource[I], ev10: Resource[J], ev11: Resource[K], ev12: Resource[L], ev13: Resource[M], ev14: Resource[N], ev15: Resource[O], ev16: Resource[P], ev17: Resource[Q], ev18: Resource[R], ev19: Resource[S], ev20: Resource[T], ev21: Resource[U], ev22: Resource[V]): RR = {
val fr1 = r1
ev1.openBeforeTry(fr1)
val res1 = try {
ev1.openAfterTry(fr1)
val fr2 = r2
ev2.openBeforeTry(fr2)
val res2 = try {
ev2.openAfterTry(fr2)
val fr3 = r3
ev3.openBeforeTry(fr3)
val res3 = try {
ev3.openAfterTry(fr3)
val fr4 = r4
ev4.openBeforeTry(fr4)
val res4 = try {
ev4.openAfterTry(fr4)
val fr5 = r5
ev5.openBeforeTry(fr5)
val res5 = try {
ev5.openAfterTry(fr5)
val fr6 = r6
ev6.openBeforeTry(fr6)
val res6 = try {
ev6.openAfterTry(fr6)
val fr7 = r7
ev7.openBeforeTry(fr7)
val res7 = try {
ev7.openAfterTry(fr7)
val fr8 = r8
ev8.openBeforeTry(fr8)
val res8 = try {
ev8.openAfterTry(fr8)
val fr9 = r9
ev9.openBeforeTry(fr9)
val res9 = try {
ev9.openAfterTry(fr9)
val fr10 = r10
ev10.openBeforeTry(fr10)
val res10 = try {
ev10.openAfterTry(fr10)
val fr11 = r11
ev11.openBeforeTry(fr11)
val res11 = try {
ev11.openAfterTry(fr11)
val fr12 = r12
ev12.openBeforeTry(fr12)
val res12 = try {
ev12.openAfterTry(fr12)
val fr13 = r13
ev13.openBeforeTry(fr13)
val res13 = try {
ev13.openAfterTry(fr13)
val fr14 = r14
ev14.openBeforeTry(fr14)
val res14 = try {
ev14.openAfterTry(fr14)
val fr15 = r15
ev15.openBeforeTry(fr15)
val res15 = try {
ev15.openAfterTry(fr15)
val fr16 = r16
ev16.openBeforeTry(fr16)
val res16 = try {
ev16.openAfterTry(fr16)
val fr17 = r17
ev17.openBeforeTry(fr17)
val res17 = try {
ev17.openAfterTry(fr17)
val fr18 = r18
ev18.openBeforeTry(fr18)
val res18 = try {
ev18.openAfterTry(fr18)
val fr19 = r19
ev19.openBeforeTry(fr19)
val res19 = try {
ev19.openAfterTry(fr19)
val fr20 = r20
ev20.openBeforeTry(fr20)
val res20 = try {
ev20.openAfterTry(fr20)
val fr21 = r21
ev21.openBeforeTry(fr21)
val res21 = try {
ev21.openAfterTry(fr21)
val fr22 = r22
ev22.openBeforeTry(fr22)
val res22 = try {
ev22.openAfterTry(fr22)
f(fr1, fr2, fr3, fr4, fr5, fr6, fr7, fr8, fr9, fr10, fr11, fr12, fr13, fr14, fr15, fr16, fr17, fr18, fr19, fr20, fr21, fr22)
} catch {
case e: Throwable => handleEx(ev22, fr22, e)
}
ev22.close(fr22)
res22
} catch {
case e: Throwable => handleEx(ev21, fr21, e)
}
ev21.close(fr21)
res21
} catch {
case e: Throwable => handleEx(ev20, fr20, e)
}
ev20.close(fr20)
res20
} catch {
case e: Throwable => handleEx(ev19, fr19, e)
}
ev19.close(fr19)
res19
} catch {
case e: Throwable => handleEx(ev18, fr18, e)
}
ev18.close(fr18)
res18
} catch {
case e: Throwable => handleEx(ev17, fr17, e)
}
ev17.close(fr17)
res17
} catch {
case e: Throwable => handleEx(ev16, fr16, e)
}
ev16.close(fr16)
res16
} catch {
case e: Throwable => handleEx(ev15, fr15, e)
}
ev15.close(fr15)
res15
} catch {
case e: Throwable => handleEx(ev14, fr14, e)
}
ev14.close(fr14)
res14
} catch {
case e: Throwable => handleEx(ev13, fr13, e)
}
ev13.close(fr13)
res13
} catch {
case e: Throwable => handleEx(ev12, fr12, e)
}
ev12.close(fr12)
res12
} catch {
case e: Throwable => handleEx(ev11, fr11, e)
}
ev11.close(fr11)
res11
} catch {
case e: Throwable => handleEx(ev10, fr10, e)
}
ev10.close(fr10)
res10
} catch {
case e: Throwable => handleEx(ev9, fr9, e)
}
ev9.close(fr9)
res9
} catch {
case e: Throwable => handleEx(ev8, fr8, e)
}
ev8.close(fr8)
res8
} catch {
case e: Throwable => handleEx(ev7, fr7, e)
}
ev7.close(fr7)
res7
} catch {
case e: Throwable => handleEx(ev6, fr6, e)
}
ev6.close(fr6)
res6
} catch {
case e: Throwable => handleEx(ev5, fr5, e)
}
ev5.close(fr5)
res5
} catch {
case e: Throwable => handleEx(ev4, fr4, e)
}
ev4.close(fr4)
res4
} catch {
case e: Throwable => handleEx(ev3, fr3, e)
}
ev3.close(fr3)
res3
} catch {
case e: Throwable => handleEx(ev2, fr2, e)
}
ev2.close(fr2)
res2
} catch {
case e: Throwable => handleEx(ev1, fr1, e)
}
ev1.close(fr1)
res1
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy