@@ -463,4 +463,38 @@ object Tuple {
463
463
def concatIterator (tup1 : Tuple , tup2 : Tuple ): Iterator [Any ] =
464
464
tup1.asInstanceOf [Product ].productIterator ++ tup2.asInstanceOf [Product ].productIterator
465
465
466
+ def isInstanceOfTuple (x : Any ): Boolean =
467
+ x.isInstanceOf [Product ] && isInstanceOfEmptyTuple(x) || isInstanceOfNonEmptyTuple(x)
468
+
469
+ def isInstanceOfEmptyTuple (x : Any ): Boolean = x == Tuple0
470
+
471
+ def isInstanceOfNonEmptyTuple (x : Any ): Boolean = isInstanceOfPair(x)
472
+
473
+ def isInstanceOfPair (x : Any ): Boolean =
474
+ x.isInstanceOf [Product ] && (
475
+ x.isInstanceOf [Tuple1 [_]]
476
+ || x.isInstanceOf [Tuple2 [_, _]]
477
+ || x.isInstanceOf [Tuple3 [_, _, _]]
478
+ || x.isInstanceOf [Tuple4 [_, _, _, _]]
479
+ || x.isInstanceOf [Tuple5 [_, _, _, _, _]]
480
+ || x.isInstanceOf [Tuple6 [_, _, _, _, _, _]]
481
+ || x.isInstanceOf [Tuple7 [_, _, _, _, _, _, _]]
482
+ || x.isInstanceOf [Tuple8 [_, _, _, _, _, _, _, _]]
483
+ || x.isInstanceOf [Tuple9 [_, _, _, _, _, _, _, _, _]]
484
+ || x.isInstanceOf [Tuple10 [_, _, _, _, _, _, _, _, _, _]]
485
+ || x.isInstanceOf [Tuple11 [_, _, _, _, _, _, _, _, _, _, _]]
486
+ || x.isInstanceOf [Tuple12 [_, _, _, _, _, _, _, _, _, _, _, _]]
487
+ || x.isInstanceOf [Tuple13 [_, _, _, _, _, _, _, _, _, _, _, _, _]]
488
+ || x.isInstanceOf [Tuple14 [_, _, _, _, _, _, _, _, _, _, _, _, _, _]]
489
+ || x.isInstanceOf [Tuple15 [_, _, _, _, _, _, _, _, _, _, _, _, _, _, _]]
490
+ || x.isInstanceOf [Tuple16 [_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _]]
491
+ || x.isInstanceOf [Tuple17 [_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _]]
492
+ || x.isInstanceOf [Tuple18 [_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _]]
493
+ || x.isInstanceOf [Tuple19 [_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _]]
494
+ || x.isInstanceOf [Tuple20 [_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _]]
495
+ || x.isInstanceOf [Tuple21 [_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _]]
496
+ || x.isInstanceOf [Tuple22 [_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _]]
497
+ || x.isInstanceOf [TupleXXL ]
498
+ )
499
+
466
500
}
0 commit comments