| changeset 78198 | c268def0784b | 
| parent 77652 | 5f706f7c624b | 
| child 78943 | bc89bdc65f29 | 
--- a/src/Pure/library.scala Fri Jun 23 13:51:23 2023 +0200 +++ b/src/Pure/library.scala Fri Jun 23 14:43:15 2023 +0200 @@ -23,6 +23,16 @@ def using_option[A <: AutoCloseable, B](opt: Option[A])(f: A => B): Option[B] = opt.map(a => using(a)(f)) + def using_optional[A <: AutoCloseable, B](opt: Option[A])(f: Option[A] => B): B = { + try { f(opt) } + finally { + opt match { + case Some(a) if a != null => a.close() + case _ => + } + } + } + /* integers */