Skip to content

Commit 47d7b29

Browse files
author
Martijn Hoekstra
committed
provide Resource for all closables
1 parent a7af40c commit 47d7b29

File tree

2 files changed

+10
-8
lines changed

2 files changed

+10
-8
lines changed

compat/src/main/scala-2.11_2.12/scala/util/compat/Using.scala

+6-4
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,8 @@ object Using {
139139

140140
@inline def safeAddSuppressed(t: Throwable, suppressed: Throwable): Unit = {
141141
// don't `addSuppressed` to something which is a `ControlThrowable`
142-
if (!t.isInstanceOf[ControlThrowable]) t.addSuppressed(suppressed)
142+
// nor to scalaJS
143+
if (!t.isInstanceOf[ControlThrowable] && (1.0.toString == "1.0")) t.addSuppressed(suppressed)
143144
}
144145

145146
var primary: Throwable = null
@@ -281,9 +282,10 @@ object Using {
281282
}
282283

283284
object Resource {
284-
/** An implicit `Resource` for [[java.lang.AutoCloseable `AutoCloseable`s]]. */
285-
implicit val autoCloseableResource: Resource[AutoCloseable] = new Resource[AutoCloseable] {
286-
def release(resource: AutoCloseable) = resource.close()
285+
import java.io.Closeable
286+
/** An implicit `Resource` for [[java.lang.Closeable `Closeable`s]]. */
287+
implicit val closeableResource: Resource[Closeable] = new Resource[Closeable] {
288+
def release(resource: Closeable) = resource.close()
287289
}
288290
}
289291

compat/src/test/scala/test/scala/util/UsingTest.scala

+4-4
Original file line numberDiff line numberDiff line change
@@ -380,19 +380,19 @@ class UsingTest {
380380

381381
@Test
382382
def usingDisallowsNull(): Unit = {
383-
val npe = catchThrowable(Using.resource(null: AutoCloseable)(_ => "test"))
383+
val npe = catchThrowable(Using.resource(null: Closeable)(_ => "test"))
384384
assertThrowableClass[NullPointerException](npe)
385385
}
386386

387387
@Test
388388
def safeUsingDisallowsNull(): Unit = {
389-
val npe = Using(null: AutoCloseable)(_ => "test").failed.get
389+
val npe = Using(null: Closeable)(_ => "test").failed.get
390390
assertThrowableClass[NullPointerException](npe)
391391
}
392392

393393
@Test
394394
def safeUsingCatchesOpeningException(): Unit = {
395-
val ex = Using({ throw new RuntimeException }: AutoCloseable)(_ => "test").failed.get
395+
val ex = Using({ throw new RuntimeException }: Closeable)(_ => "test").failed.get
396396
assertThrowableClass[RuntimeException](ex)
397397
}
398398
}
@@ -405,7 +405,7 @@ object UsingTest {
405405
final class ClosingMarker(message: String) extends Throwable(message) with ControlThrowable
406406
final class UsingMarker(message: String) extends Throwable(message) with ControlThrowable
407407

408-
abstract class BaseResource extends AutoCloseable {
408+
abstract class BaseResource extends Closeable {
409409
final def identity[A](a: A): A = a
410410
}
411411

0 commit comments

Comments
 (0)