src/Pure/library.scala
changeset 69393 ed0824ef337e
parent 68715 8197c2857267
child 71164 a21a29de5f57
equal deleted inserted replaced
69392:fe2c16d9367a 69393:ed0824ef337e
    14 
    14 
    15 object Library
    15 object Library
    16 {
    16 {
    17   /* resource management */
    17   /* resource management */
    18 
    18 
    19   def using[A <: { def close() }, B](x: A)(f: A => B): B =
    19   def using[A <: AutoCloseable, B](a: A)(f: A => B): B =
    20   {
    20   {
    21     import scala.language.reflectiveCalls
    21     try { f(a) }
    22 
    22     finally { if (a != null) a.close() }
    23     try { f(x) }
       
    24     finally { if (x != null) x.close() }
       
    25   }
    23   }
    26 
    24 
    27 
    25 
    28   /* integers */
    26   /* integers */
    29 
    27