in src/main/scala/com/twitter/stitch/Arrow.scala [3197:3301]
def join[A, B, C, D, E, F, G, H, I, J, K, L](
a1: Arrow[A, B],
a2: Arrow[A, C],
a3: Arrow[A, D],
a4: Arrow[A, E],
a5: Arrow[A, F],
a6: Arrow[A, G],
a7: Arrow[A, H],
a8: Arrow[A, I],
a9: Arrow[A, J],
a10: Arrow[A, K],
a11: Arrow[A, L]
): Arrow[A, (B, C, D, E, F, G, H, I, J, K, L)] =
joinMap(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11)((_, _, _, _, _, _, _, _, _, _, _))
/**
* `Arrow.joinMap(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11)(k)` is equivalent to
* `Arrow.join(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11).map(k.tupled)`,
* but avoids allocating an intermediate tuple.
*/
def joinMap[A, B, C, D, E, F, G, H, I, J, K, L, Z](
a1: Arrow[A, B],
a2: Arrow[A, C],
a3: Arrow[A, D],
a4: Arrow[A, E],
a5: Arrow[A, F],
a6: Arrow[A, G],
a7: Arrow[A, H],
a8: Arrow[A, I],
a9: Arrow[A, J],
a10: Arrow[A, K],
a11: Arrow[A, L]
)(
k: (B, C, D, E, F, G, H, I, J, K, L) => Z
): Arrow[A, Z] =
(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11) match {
case (Const(Throw(e)), _, _, _, _, _, _, _, _, _, _) => exception(e)
case (_, Const(Throw(e)), _, _, _, _, _, _, _, _, _) => exception(e)
case (_, _, Const(Throw(e)), _, _, _, _, _, _, _, _) => exception(e)
case (_, _, _, Const(Throw(e)), _, _, _, _, _, _, _) => exception(e)
case (_, _, _, _, Const(Throw(e)), _, _, _, _, _, _) => exception(e)
case (_, _, _, _, _, Const(Throw(e)), _, _, _, _, _) => exception(e)
case (_, _, _, _, _, _, Const(Throw(e)), _, _, _, _) => exception(e)
case (_, _, _, _, _, _, _, Const(Throw(e)), _, _, _) => exception(e)
case (_, _, _, _, _, _, _, _, Const(Throw(e)), _, _) => exception(e)
case (_, _, _, _, _, _, _, _, _, Const(Throw(e)), _) => exception(e)
case (_, _, _, _, _, _, _, _, _, _, Const(Throw(e))) => exception(e)
case (Const(Return(v1)), _, _, _, _, _, _, _, _, _, _) =>
joinMap(a2, a3, a4, a5, a6, a7, a8, a9, a10, a11) {
(v2, v3, v4, v5, v6, v7, v8, v9, v10, v11) =>
k(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11)
}
case (_, Const(Return(v2)), _, _, _, _, _, _, _, _, _) =>
joinMap(a1, a3, a4, a5, a6, a7, a8, a9, a10, a11) {
(v1, v3, v4, v5, v6, v7, v8, v9, v10, v11) =>
k(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11)
}
case (_, _, Const(Return(v3)), _, _, _, _, _, _, _, _) =>
joinMap(a1, a2, a4, a5, a6, a7, a8, a9, a10, a11) {
(v1, v2, v4, v5, v6, v7, v8, v9, v10, v11) =>
k(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11)
}
case (_, _, _, Const(Return(v4)), _, _, _, _, _, _, _) =>
joinMap(a1, a2, a3, a5, a6, a7, a8, a9, a10, a11) {
(v1, v2, v3, v5, v6, v7, v8, v9, v10, v11) =>
k(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11)
}
case (_, _, _, _, Const(Return(v5)), _, _, _, _, _, _) =>
joinMap(a1, a2, a3, a4, a6, a7, a8, a9, a10, a11) {
(v1, v2, v3, v4, v6, v7, v8, v9, v10, v11) =>
k(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11)
}
case (_, _, _, _, _, Const(Return(v6)), _, _, _, _, _) =>
joinMap(a1, a2, a3, a4, a5, a7, a8, a9, a10, a11) {
(v1, v2, v3, v4, v5, v7, v8, v9, v10, v11) =>
k(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11)
}
case (_, _, _, _, _, _, Const(Return(v7)), _, _, _, _) =>
joinMap(a1, a2, a3, a4, a5, a6, a8, a9, a10, a11) {
(v1, v2, v3, v4, v5, v6, v8, v9, v10, v11) =>
k(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11)
}
case (_, _, _, _, _, _, _, Const(Return(v8)), _, _, _) =>
joinMap(a1, a2, a3, a4, a5, a6, a7, a9, a10, a11) {
(v1, v2, v3, v4, v5, v6, v7, v9, v10, v11) =>
k(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11)
}
case (_, _, _, _, _, _, _, _, Const(Return(v9)), _, _) =>
joinMap(a1, a2, a3, a4, a5, a6, a7, a8, a10, a11) {
(v1, v2, v3, v4, v5, v6, v7, v8, v10, v11) =>
k(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11)
}
case (_, _, _, _, _, _, _, _, _, Const(Return(v10)), _) =>
joinMap(a1, a2, a3, a4, a5, a6, a7, a8, a9, a11) {
(v1, v2, v3, v4, v5, v6, v7, v8, v9, v11) =>
k(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11)
}
case (_, _, _, _, _, _, _, _, _, _, Const(Return(v11))) =>
joinMap(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10) {
(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10) =>
k(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11)
}
case _ =>
JoinMap11(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, k)
}