@@ -12,109 +12,6 @@ sealed abstract class Expr[+T] {
12
12
13
13
}
14
14
15
- object Expr {
16
-
17
- // TODO simplify using new extension methods
18
-
19
- implicit class ExprOps [T ](expr : Expr [T ]) {
20
- /** Show a source code like representation of this expression */
21
- def show (implicit toolbox : Toolbox ): String = toolbox.show(expr)
22
- }
23
-
24
- implicit class AsFunction0 [R ](private val f : Expr [() => R ]) extends AnyVal {
25
- def apply (): Expr [R ] = new Exprs .FunctionAppliedTo [R ](f, Array .empty)
26
- }
27
-
28
- implicit class AsFunction1 [T1 , R ](private val f : Expr [(T1 ) => R ]) extends AnyVal {
29
- def apply (x1 : Expr [T1 ]): Expr [R ] = new Exprs .FunctionAppliedTo [R ](f, Array (x1))
30
- }
31
-
32
- implicit class AsFunction2 [T1 , T2 , R ](private val f : Expr [(T1 , T2 ) => R ]) extends AnyVal {
33
- def apply (x1 : Expr [T1 ], x2 : Expr [T2 ]): Expr [R ] = new Exprs .FunctionAppliedTo [R ](f, Array (x1, x2))
34
- }
35
-
36
- implicit class AsFunction3 [T1 , T2 , T3 , R ](private val f : Expr [(T1 , T2 , T3 ) => R ]) extends AnyVal {
37
- def apply (x1 : Expr [T1 ], x2 : Expr [T2 ], x3 : Expr [T3 ]): Expr [R ] = new Exprs .FunctionAppliedTo [R ](f, Array (x1, x2, x3))
38
- }
39
-
40
- implicit class AsFunction4 [T1 , T2 , T3 , T4 , R ](private val f : Expr [(T1 , T2 , T3 , T4 ) => R ]) extends AnyVal {
41
- def apply (x1 : Expr [T1 ], x2 : Expr [T2 ], x3 : Expr [T3 ], x4 : Expr [T4 ]): Expr [R ] = new Exprs .FunctionAppliedTo [R ](f, Array (x1, x2, x3, x4))
42
- }
43
-
44
- implicit class AsFunction5 [T1 , T2 , T3 , T4 , T5 , R ](private val f : Expr [(T1 , T2 , T3 , T4 , T5 ) => R ]) extends AnyVal {
45
- def apply (x1 : Expr [T1 ], x2 : Expr [T2 ], x3 : Expr [T3 ], x4 : Expr [T4 ], x5 : Expr [T5 ]): Expr [R ] = new Exprs .FunctionAppliedTo [R ](f, Array (x1, x2, x3, x4, x5))
46
- }
47
-
48
- implicit class AsFunction6 [T1 , T2 , T3 , T4 , T5 , T6 , R ](private val f : Expr [(T1 , T2 , T3 , T4 , T5 , T6 ) => R ]) extends AnyVal {
49
- def apply (x1 : Expr [T1 ], x2 : Expr [T2 ], x3 : Expr [T3 ], x4 : Expr [T4 ], x5 : Expr [T5 ], x6 : Expr [T6 ]): Expr [R ] = new Exprs .FunctionAppliedTo [R ](f, Array (x1, x2, x3, x4, x5, x6))
50
- }
51
-
52
- implicit class AsFunction7 [T1 , T2 , T3 , T4 , T5 , T6 , T7 , R ](private val f : Expr [(T1 , T2 , T3 , T4 , T5 , T6 , T7 ) => R ]) extends AnyVal {
53
- def apply (x1 : Expr [T1 ], x2 : Expr [T2 ], x3 : Expr [T3 ], x4 : Expr [T4 ], x5 : Expr [T5 ], x6 : Expr [T6 ], x7 : Expr [T7 ]): Expr [R ] = new Exprs .FunctionAppliedTo [R ](f, Array (x1, x2, x3, x4, x5, x6, x7))
54
- }
55
-
56
- implicit class AsFunction8 [T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , R ](private val f : Expr [(T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ) => R ]) extends AnyVal {
57
- def apply (x1 : Expr [T1 ], x2 : Expr [T2 ], x3 : Expr [T3 ], x4 : Expr [T4 ], x5 : Expr [T5 ], x6 : Expr [T6 ], x7 : Expr [T7 ], x8 : Expr [T8 ]): Expr [R ] = new Exprs .FunctionAppliedTo [R ](f, Array (x1, x2, x3, x4, x5, x6, x7, x8))
58
- }
59
-
60
- implicit class AsFunction9 [T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , R ](private val f : Expr [(T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ) => R ]) extends AnyVal {
61
- def apply (x1 : Expr [T1 ], x2 : Expr [T2 ], x3 : Expr [T3 ], x4 : Expr [T4 ], x5 : Expr [T5 ], x6 : Expr [T6 ], x7 : Expr [T7 ], x8 : Expr [T8 ], x9 : Expr [T9 ]): Expr [R ] = new Exprs .FunctionAppliedTo [R ](f, Array (x1, x2, x3, x4, x5, x6, x7, x8, x9))
62
- }
63
-
64
- implicit class AsFunction10 [T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , R ](private val f : Expr [(T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ) => R ]) extends AnyVal {
65
- def apply (x1 : Expr [T1 ], x2 : Expr [T2 ], x3 : Expr [T3 ], x4 : Expr [T4 ], x5 : Expr [T5 ], x6 : Expr [T6 ], x7 : Expr [T7 ], x8 : Expr [T8 ], x9 : Expr [T9 ], x10 : Expr [T10 ]): Expr [R ] = new Exprs .FunctionAppliedTo [R ](f, Array (x1, x2, x3, x4, x5, x6, x7, x8, x9, x10))
66
- }
67
-
68
- implicit class AsFunction11 [T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , R ](private val f : Expr [(T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ) => R ]) extends AnyVal {
69
- def apply (x1 : Expr [T1 ], x2 : Expr [T2 ], x3 : Expr [T3 ], x4 : Expr [T4 ], x5 : Expr [T5 ], x6 : Expr [T6 ], x7 : Expr [T7 ], x8 : Expr [T8 ], x9 : Expr [T9 ], x10 : Expr [T10 ], x11 : Expr [T11 ]): Expr [R ] = new Exprs .FunctionAppliedTo [R ](f, Array (x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11))
70
- }
71
-
72
- implicit class AsFunction12 [T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , R ](private val f : Expr [(T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ) => R ]) extends AnyVal {
73
- def apply (x1 : Expr [T1 ], x2 : Expr [T2 ], x3 : Expr [T3 ], x4 : Expr [T4 ], x5 : Expr [T5 ], x6 : Expr [T6 ], x7 : Expr [T7 ], x8 : Expr [T8 ], x9 : Expr [T9 ], x10 : Expr [T10 ], x11 : Expr [T11 ], x12 : Expr [T12 ]): Expr [R ] = new Exprs .FunctionAppliedTo [R ](f, Array (x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12))
74
- }
75
-
76
- implicit class AsFunction13 [T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , R ](private val f : Expr [(T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ) => R ]) extends AnyVal {
77
- def apply (x1 : Expr [T1 ], x2 : Expr [T2 ], x3 : Expr [T3 ], x4 : Expr [T4 ], x5 : Expr [T5 ], x6 : Expr [T6 ], x7 : Expr [T7 ], x8 : Expr [T8 ], x9 : Expr [T9 ], x10 : Expr [T10 ], x11 : Expr [T11 ], x12 : Expr [T12 ], x13 : Expr [T13 ]): Expr [R ] = new Exprs .FunctionAppliedTo [R ](f, Array (x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13))
78
- }
79
-
80
- implicit class AsFunction14 [T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , R ](private val f : Expr [(T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ) => R ]) extends AnyVal {
81
- def apply (x1 : Expr [T1 ], x2 : Expr [T2 ], x3 : Expr [T3 ], x4 : Expr [T4 ], x5 : Expr [T5 ], x6 : Expr [T6 ], x7 : Expr [T7 ], x8 : Expr [T8 ], x9 : Expr [T9 ], x10 : Expr [T10 ], x11 : Expr [T11 ], x12 : Expr [T12 ], x13 : Expr [T13 ], x14 : Expr [T14 ]): Expr [R ] = new Exprs .FunctionAppliedTo [R ](f, Array (x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14))
82
- }
83
-
84
- implicit class AsFunction15 [T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , R ](private val f : Expr [(T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ) => R ]) extends AnyVal {
85
- def apply (x1 : Expr [T1 ], x2 : Expr [T2 ], x3 : Expr [T3 ], x4 : Expr [T4 ], x5 : Expr [T5 ], x6 : Expr [T6 ], x7 : Expr [T7 ], x8 : Expr [T8 ], x9 : Expr [T9 ], x10 : Expr [T10 ], x11 : Expr [T11 ], x12 : Expr [T12 ], x13 : Expr [T13 ], x14 : Expr [T14 ], x15 : Expr [T15 ]): Expr [R ] = new Exprs .FunctionAppliedTo [R ](f, Array (x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15))
86
- }
87
-
88
- implicit class AsFunction16 [T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , R ](private val f : Expr [(T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ) => R ]) extends AnyVal {
89
- def apply (x1 : Expr [T1 ], x2 : Expr [T2 ], x3 : Expr [T3 ], x4 : Expr [T4 ], x5 : Expr [T5 ], x6 : Expr [T6 ], x7 : Expr [T7 ], x8 : Expr [T8 ], x9 : Expr [T9 ], x10 : Expr [T10 ], x11 : Expr [T11 ], x12 : Expr [T12 ], x13 : Expr [T13 ], x14 : Expr [T14 ], x15 : Expr [T15 ], x16 : Expr [T16 ]): Expr [R ] = new Exprs .FunctionAppliedTo [R ](f, Array (x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16))
90
- }
91
-
92
- implicit class AsFunction17 [T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , R ](private val f : Expr [(T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ) => R ]) extends AnyVal {
93
- def apply (x1 : Expr [T1 ], x2 : Expr [T2 ], x3 : Expr [T3 ], x4 : Expr [T4 ], x5 : Expr [T5 ], x6 : Expr [T6 ], x7 : Expr [T7 ], x8 : Expr [T8 ], x9 : Expr [T9 ], x10 : Expr [T10 ], x11 : Expr [T11 ], x12 : Expr [T12 ], x13 : Expr [T13 ], x14 : Expr [T14 ], x15 : Expr [T15 ], x16 : Expr [T16 ], x17 : Expr [T17 ]): Expr [R ] = new Exprs .FunctionAppliedTo [R ](f, Array (x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17))
94
- }
95
-
96
- implicit class AsFunction18 [T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , R ](private val f : Expr [(T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ) => R ]) extends AnyVal {
97
- def apply (x1 : Expr [T1 ], x2 : Expr [T2 ], x3 : Expr [T3 ], x4 : Expr [T4 ], x5 : Expr [T5 ], x6 : Expr [T6 ], x7 : Expr [T7 ], x8 : Expr [T8 ], x9 : Expr [T9 ], x10 : Expr [T10 ], x11 : Expr [T11 ], x12 : Expr [T12 ], x13 : Expr [T13 ], x14 : Expr [T14 ], x15 : Expr [T15 ], x16 : Expr [T16 ], x17 : Expr [T17 ], x18 : Expr [T18 ]): Expr [R ] = new Exprs .FunctionAppliedTo [R ](f, Array (x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18))
98
- }
99
-
100
- implicit class AsFunction19 [T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , R ](private val f : Expr [(T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ) => R ]) extends AnyVal {
101
- def apply (x1 : Expr [T1 ], x2 : Expr [T2 ], x3 : Expr [T3 ], x4 : Expr [T4 ], x5 : Expr [T5 ], x6 : Expr [T6 ], x7 : Expr [T7 ], x8 : Expr [T8 ], x9 : Expr [T9 ], x10 : Expr [T10 ], x11 : Expr [T11 ], x12 : Expr [T12 ], x13 : Expr [T13 ], x14 : Expr [T14 ], x15 : Expr [T15 ], x16 : Expr [T16 ], x17 : Expr [T17 ], x18 : Expr [T18 ], x19 : Expr [T19 ]): Expr [R ] = new Exprs .FunctionAppliedTo [R ](f, Array (x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19))
102
- }
103
-
104
- implicit class AsFunction20 [T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , R ](private val f : Expr [(T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ) => R ]) extends AnyVal {
105
- def apply (x1 : Expr [T1 ], x2 : Expr [T2 ], x3 : Expr [T3 ], x4 : Expr [T4 ], x5 : Expr [T5 ], x6 : Expr [T6 ], x7 : Expr [T7 ], x8 : Expr [T8 ], x9 : Expr [T9 ], x10 : Expr [T10 ], x11 : Expr [T11 ], x12 : Expr [T12 ], x13 : Expr [T13 ], x14 : Expr [T14 ], x15 : Expr [T15 ], x16 : Expr [T16 ], x17 : Expr [T17 ], x18 : Expr [T18 ], x19 : Expr [T19 ], x20 : Expr [T20 ]): Expr [R ] = new Exprs .FunctionAppliedTo [R ](f, Array (x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20))
106
- }
107
-
108
- implicit class AsFunction21 [T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , R ](private val f : Expr [(T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ) => R ]) extends AnyVal {
109
- def apply (x1 : Expr [T1 ], x2 : Expr [T2 ], x3 : Expr [T3 ], x4 : Expr [T4 ], x5 : Expr [T5 ], x6 : Expr [T6 ], x7 : Expr [T7 ], x8 : Expr [T8 ], x9 : Expr [T9 ], x10 : Expr [T10 ], x11 : Expr [T11 ], x12 : Expr [T12 ], x13 : Expr [T13 ], x14 : Expr [T14 ], x15 : Expr [T15 ], x16 : Expr [T16 ], x17 : Expr [T17 ], x18 : Expr [T18 ], x19 : Expr [T19 ], x20 : Expr [T20 ], x21 : Expr [T21 ]): Expr [R ] = new Exprs .FunctionAppliedTo [R ](f, Array (x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21))
110
- }
111
-
112
- implicit class AsFunction22 [T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , R ](private val f : Expr [(T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ) => R ]) extends AnyVal {
113
- def apply (x1 : Expr [T1 ], x2 : Expr [T2 ], x3 : Expr [T3 ], x4 : Expr [T4 ], x5 : Expr [T5 ], x6 : Expr [T6 ], x7 : Expr [T7 ], x8 : Expr [T8 ], x9 : Expr [T9 ], x10 : Expr [T10 ], x11 : Expr [T11 ], x12 : Expr [T12 ], x13 : Expr [T13 ], x14 : Expr [T14 ], x15 : Expr [T15 ], x16 : Expr [T16 ], x17 : Expr [T17 ], x18 : Expr [T18 ], x19 : Expr [T19 ], x20 : Expr [T20 ], x21 : Expr [T21 ], x22 : Expr [T22 ]): Expr [R ] = new Exprs .FunctionAppliedTo [R ](f, Array (x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22))
114
- }
115
-
116
- }
117
-
118
15
/** All implementations of Expr[T].
119
16
* These should never be used directly.
120
17
*/
0 commit comments