@@ -463,4 +463,38 @@ object Tuple {
463463 def concatIterator (tup1 : Tuple , tup2 : Tuple ): Iterator [Any ] =
464464 tup1.asInstanceOf [Product ].productIterator ++ tup2.asInstanceOf [Product ].productIterator
465465
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+
466500}
0 commit comments