src/Pure/library.scala
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 */