Skip to content

Commit faf70f8

Browse files
committed
test Expr.ofTuple
1 parent 49d9901 commit faf70f8

File tree

2 files changed

+17
-0
lines changed

2 files changed

+17
-0
lines changed

tests/run-macros/i17257/a.scala

+15
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,9 @@ object Helpers:
99
inline def summonAllOptimized[T <: Tuple]: T =
1010
${ summonAllOptimizedImpl[T] }
1111

12+
inline def summon23[E]: (E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E) =
13+
${ summon23Impl[E] }
14+
1215
private def summonAllOptimizedImpl[T <: Tuple: Type](using q: Quotes): Expr[T] = {
1316
import q.reflect.*
1417

@@ -22,6 +25,18 @@ object Helpers:
2225
.asExprOf[T]
2326
}
2427

28+
private def summon23Impl[E: Type](using q: Quotes): Expr[(E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E)] = {
29+
import q.reflect.*
30+
31+
val e = Expr.summon[E].getOrElse(report.errorAndAbort(s"Unable to to find implicit instance for ${TypeRepr.of[E].show}"))
32+
33+
val tuple = (e, e, e, e, e, e, e, e, e, e, e, e, e, e, e, e, e, e, e, e, e, e, e)
34+
35+
assert(tuple.size == 23)
36+
37+
Expr.ofTuple(tuple)
38+
}
39+
2540
@tailrec
2641
private[derivation] def typesOfTuple(
2742
using q: Quotes

tests/run-macros/i17257/b.scala

+2
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ package derivation {
77
ValueOf["a"], ValueOf["a"], ValueOf["a"], ValueOf["a"], ValueOf["a"],
88
ValueOf["a"], ValueOf["a"], ValueOf["a"] //Commenting out the last one here fixes the compile error
99
)]
10+
val test2 = Helpers.summon23[ValueOf["a"]]
1011
}
1112
@main def Test =
1213
def assertions(list: List[ValueOf["a"]]): Unit =
@@ -19,3 +20,4 @@ package derivation {
1920
"a", "a", "a"
2021
))
2122
assertions(derivation.test.toList)
23+
assertions(derivation.test2.toList)

0 commit comments

Comments
 (0)