Skip to content

Commit 68750ea

Browse files
author
Antoine Brunner
committed
Remove Unit case in pattern matches
1 parent 08a7f8d commit 68750ea

File tree

1 file changed

+23
-10
lines changed

1 file changed

+23
-10
lines changed

library/src/scala/runtime/DynamicTuple.scala

Lines changed: 23 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -269,16 +269,21 @@ object DynamicTuple {
269269
val actualN = Math.min(n, self.size)
270270

271271
type Result = Take[This, N]
272+
272273
val arr = (self: Any) match {
273-
case () => Array.empty[Object]
274274
case xxl: TupleXXL =>
275275
xxl.elems.asInstanceOf[Array[Object]].take(actualN)
276276
case _ =>
277-
val arr = new Array[Object](actualN)
278-
self.asInstanceOf[Product].productIterator.asInstanceOf[Iterator[Object]]
279-
.copyToArray(arr, 0, actualN)
280-
arr
277+
if (actualN == 0)
278+
Array.emptyObjectArray
279+
else {
280+
val arr = new Array[Object](actualN)
281+
self.asInstanceOf[Product].productIterator.asInstanceOf[Iterator[Object]]
282+
.copyToArray(arr, 0, actualN)
283+
arr
284+
}
281285
}
286+
282287
dynamicFromIArray(arr.asInstanceOf[IArray[Object]]).asInstanceOf[Result]
283288
}
284289

@@ -288,17 +293,23 @@ object DynamicTuple {
288293
val actualN = Math.min(n, size)
289294

290295
type Result = Drop[This, N]
296+
291297
val arr = (self: Any) match {
292-
case () => Array.empty[Object]
293298
case xxl: TupleXXL =>
294299
xxl.elems.asInstanceOf[Array[Object]].drop(actualN)
295300
case _ =>
296301
val rem = size - actualN
297-
val arr = new Array[Object](rem)
298-
self.asInstanceOf[Product].productIterator.asInstanceOf[Iterator[Object]]
299-
.drop(actualN).copyToArray(arr, 0, rem)
300-
arr
302+
303+
if (rem == 0)
304+
Array.emptyObjectArray
305+
else {
306+
val arr = new Array[Object](rem)
307+
self.asInstanceOf[Product].productIterator.asInstanceOf[Iterator[Object]]
308+
.drop(actualN).copyToArray(arr, 0, rem)
309+
arr
310+
}
301311
}
312+
302313
dynamicFromIArray(arr.asInstanceOf[IArray[Object]]).asInstanceOf[Result]
303314
}
304315

@@ -308,6 +319,7 @@ object DynamicTuple {
308319
val actualN = Math.min(n, size)
309320

310321
type Result = Split[This, N]
322+
311323
val (arr1, arr2) = (self: Any) match {
312324
case () => (Array.empty[Object], Array.empty[Object])
313325
case xxl: TupleXXL =>
@@ -320,6 +332,7 @@ object DynamicTuple {
320332
it.copyToArray(arr2, 0, size - actualN)
321333
(arr1, arr2)
322334
}
335+
323336
(
324337
dynamicFromIArray(arr1.asInstanceOf[IArray[Object]]),
325338
dynamicFromIArray(arr2.asInstanceOf[IArray[Object]])

0 commit comments

Comments
 (0)