66package parsley
77
88import lift ._
9+ import parsley .errors .combinator ._
910
1011/** This module contains the definition of 23 basic ''generic parser bridge traits'', which
1112 * are used to implement the ''Parser Bridge'' pattern for types that do not require metadata.
@@ -25,13 +26,43 @@ import lift._
2526object generic {
2627 // $COVERAGE-OFF$
2728 // scalastyle:off parameter.number ensure.single.space.after.token
29+ /** This generically allows for the tagging of parsers via its `error` combinator:
30+ * as it happens, both labels and reasons are very often attached to bridges.
31+ *
32+ * @since 5.0.0
33+ */
34+ trait ErrorBridge {
35+ /** The labels that should be associated with a failure to parse this bridge.
36+ *
37+ * The default, `Nil`, will not affect the labelling of the original error.
38+ */
39+ def labels : List [String ] = Nil
40+ /** The reason that should be associated with a failure to parse this bridge.
41+ *
42+ * The default, `None`, will not add any reasons.
43+ */
44+ def reason : Option [String ] = None
45+
46+ /** Applies the error components described by `labels` and `reason` to the given
47+ * parser.
48+ *
49+ * @note this should be used within a bridge's apply and the `from` combinator.
50+ */
51+ protected final def error [T ](p : Parsley [T ]): Parsley [T ] = applyReason(applyLabels(p))
52+ private def applyLabels [T ](p : Parsley [T ]): Parsley [T ] = labels match {
53+ case Nil => p
54+ case l0 :: ls => p.label(l0, ls : _* )
55+ }
56+ private def applyReason [T ](p : Parsley [T ]): Parsley [T ] = reason.foldLeft(p)(_.explain(_))
57+ }
58+
2859 /** Generic bridge trait enabling the `<#`/`from` combinator on this type:
2960 * this is useful when the constructor is not applied immediately,
3061 * like when using `precedence`. It does not track any metadata.
3162 *
3263 * @since 4.0.0
3364 */
34- trait ParserSingletonBridge [+ A ] {
65+ trait ParserSingletonBridge [+ A ] extends ErrorBridge {
3566 /** The abstract hook method: what value is the singleton representing?
3667 * @since 4.0.0
3768 */
@@ -48,7 +79,7 @@ object generic {
4879 *
4980 * @param op the parser that should be parsed before returning `con`.
5081 */
51- final def from (op : Parsley [_]): Parsley [A ] = op.as(con)
82+ final def from (op : Parsley [_]): Parsley [A ] = error( op.as(con) )
5283 }
5384
5485 /** Generic bridge trait for singleton objects that simply return themselves
@@ -69,7 +100,7 @@ object generic {
69100 def apply (x1 : T1 ): R
70101 /** The template method: this is the method that can be used to
71102 * sequence and combine the results of all the parsers. */
72- def apply (x1 : Parsley [T1 ]): Parsley [R ] = lift1(this .con, x1)
103+ def apply (x1 : Parsley [T1 ]): Parsley [R ] = error( lift1(this .con, x1) )
73104 /** @inheritdoc */
74105 override final def con : T1 => R = this .apply(_)
75106 }
@@ -82,7 +113,7 @@ object generic {
82113 def apply (x1 : T1 , x2 : T2 ): R
83114 /** The template method: this is the method that can be used to
84115 * sequence and combine the results of all the parsers. */
85- def apply (x1 : Parsley [T1 ], x2 : => Parsley [T2 ]): Parsley [R ] = lift2(this .con, x1, x2)
116+ def apply (x1 : Parsley [T1 ], x2 : => Parsley [T2 ]): Parsley [R ] = error( lift2(this .con, x1, x2) )
86117 /** @inheritdoc */
87118 override final def con : (T1 , T2 ) => R = this .apply(_, _)
88119 }
@@ -95,7 +126,7 @@ object generic {
95126 def apply (x1 : T1 , x2 : T2 , x3 : T3 ): R
96127 /** The template method: this is the method that can be used to
97128 * sequence and combine the results of all the parsers. */
98- def apply (x1 : Parsley [T1 ], x2 : => Parsley [T2 ], x3 : => Parsley [T3 ]): Parsley [R ] = lift3(this .con, x1, x2, x3)
129+ def apply (x1 : Parsley [T1 ], x2 : => Parsley [T2 ], x3 : => Parsley [T3 ]): Parsley [R ] = error( lift3(this .con, x1, x2, x3) )
99130 /** @inheritdoc */
100131 override final def con : (T1 , T2 , T3 ) => R = this .apply(_, _, _)
101132 }
@@ -108,7 +139,7 @@ object generic {
108139 def apply (x1 : T1 , x2 : T2 , x3 : T3 , x4 : T4 ): R
109140 /** The template method: this is the method that can be used to
110141 * sequence and combine the results of all the parsers. */
111- def apply (x1 : Parsley [T1 ], x2 : => Parsley [T2 ], x3 : => Parsley [T3 ], x4 : => Parsley [T4 ]): Parsley [R ] = lift4(this .con, x1, x2, x3, x4)
142+ def apply (x1 : Parsley [T1 ], x2 : => Parsley [T2 ], x3 : => Parsley [T3 ], x4 : => Parsley [T4 ]): Parsley [R ] = error( lift4(this .con, x1, x2, x3, x4) )
112143 /** @inheritdoc */
113144 override final def con : (T1 , T2 , T3 , T4 ) => R = this .apply(_, _, _, _)
114145 }
@@ -121,7 +152,9 @@ object generic {
121152 def apply (x1 : T1 , x2 : T2 , x3 : T3 , x4 : T4 , x5 : T5 ): R
122153 /** The template method: this is the method that can be used to
123154 * sequence and combine the results of all the parsers. */
124- def apply (x1 : Parsley [T1 ], x2 : => Parsley [T2 ], x3 : => Parsley [T3 ], x4 : => Parsley [T4 ], x5 : => Parsley [T5 ]): Parsley [R ] = lift5(this .con, x1, x2, x3, x4, x5)
155+ def apply (x1 : Parsley [T1 ], x2 : => Parsley [T2 ], x3 : => Parsley [T3 ], x4 : => Parsley [T4 ], x5 : => Parsley [T5 ]): Parsley [R ] = error {
156+ lift5(this .con, x1, x2, x3, x4, x5)
157+ }
125158 /** @inheritdoc */
126159 override final def con : (T1 , T2 , T3 , T4 , T5 ) => R = this .apply(_, _, _, _, _)
127160 }
@@ -134,8 +167,9 @@ object generic {
134167 def apply (x1 : T1 , x2 : T2 , x3 : T3 , x4 : T4 , x5 : T5 , x6 : T6 ): R
135168 /** The template method: this is the method that can be used to
136169 * sequence and combine the results of all the parsers. */
137- def apply (x1 : Parsley [T1 ], x2 : => Parsley [T2 ], x3 : => Parsley [T3 ], x4 : => Parsley [T4 ], x5 : => Parsley [T5 ], x6 : => Parsley [T6 ]): Parsley [R ] =
170+ def apply (x1 : Parsley [T1 ], x2 : => Parsley [T2 ], x3 : => Parsley [T3 ], x4 : => Parsley [T4 ], x5 : => Parsley [T5 ], x6 : => Parsley [T6 ]): Parsley [R ] = error {
138171 lift6(this .con, x1, x2, x3, x4, x5, x6)
172+ }
139173 /** @inheritdoc */
140174 override final def con : (T1 , T2 , T3 , T4 , T5 , T6 ) => R = this .apply(_, _, _, _, _, _)
141175 }
@@ -149,8 +183,9 @@ object generic {
149183 /** The template method: this is the method that can be used to
150184 * sequence and combine the results of all the parsers. */
151185 def apply (x1 : Parsley [T1 ], x2 : => Parsley [T2 ], x3 : => Parsley [T3 ], x4 : => Parsley [T4 ], x5 : => Parsley [T5 ], x6 : => Parsley [T6 ],
152- x7 : => Parsley [T7 ]): Parsley [R ] =
186+ x7 : => Parsley [T7 ]): Parsley [R ] = error {
153187 lift7(this .con, x1, x2, x3, x4, x5, x6, x7)
188+ }
154189 /** @inheritdoc */
155190 override final def con : (T1 , T2 , T3 , T4 , T5 , T6 , T7 ) => R = this .apply(_, _, _, _, _, _, _)
156191 }
@@ -164,8 +199,9 @@ object generic {
164199 /** The template method: this is the method that can be used to
165200 * sequence and combine the results of all the parsers. */
166201 def apply (x1 : Parsley [T1 ], x2 : => Parsley [T2 ], x3 : => Parsley [T3 ], x4 : => Parsley [T4 ], x5 : => Parsley [T5 ], x6 : => Parsley [T6 ],
167- x7 : => Parsley [T7 ], x8 : => Parsley [T8 ]): Parsley [R ] =
202+ x7 : => Parsley [T7 ], x8 : => Parsley [T8 ]): Parsley [R ] = error {
168203 lift8(this .con, x1, x2, x3, x4, x5, x6, x7, x8)
204+ }
169205 /** @inheritdoc */
170206 override final def con : (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ) => R = this .apply(_, _, _, _, _, _, _, _)
171207 }
@@ -179,8 +215,9 @@ object generic {
179215 /** The template method: this is the method that can be used to
180216 * sequence and combine the results of all the parsers. */
181217 def apply (x1 : Parsley [T1 ], x2 : => Parsley [T2 ], x3 : => Parsley [T3 ], x4 : => Parsley [T4 ], x5 : => Parsley [T5 ], x6 : => Parsley [T6 ],
182- x7 : => Parsley [T7 ], x8 : => Parsley [T8 ], x9 : => Parsley [T9 ]): Parsley [R ] =
218+ x7 : => Parsley [T7 ], x8 : => Parsley [T8 ], x9 : => Parsley [T9 ]): Parsley [R ] = error {
183219 lift9(this .con, x1, x2, x3, x4, x5, x6, x7, x8, x9)
220+ }
184221 /** @inheritdoc */
185222 override final def con : (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ) => R = this .apply(_, _, _, _, _, _, _, _, _)
186223 }
@@ -194,8 +231,9 @@ object generic {
194231 /** The template method: this is the method that can be used to
195232 * sequence and combine the results of all the parsers. */
196233 def apply (x1 : Parsley [T1 ], x2 : => Parsley [T2 ], x3 : => Parsley [T3 ], x4 : => Parsley [T4 ], x5 : => Parsley [T5 ], x6 : => Parsley [T6 ],
197- x7 : => Parsley [T7 ], x8 : => Parsley [T8 ], x9 : => Parsley [T9 ], x10 : => Parsley [T10 ]): Parsley [R ] =
234+ x7 : => Parsley [T7 ], x8 : => Parsley [T8 ], x9 : => Parsley [T9 ], x10 : => Parsley [T10 ]): Parsley [R ] = error {
198235 lift10(this .con, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10)
236+ }
199237 /** @inheritdoc */
200238 override final def con : (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ) => R = this .apply(_, _, _, _, _, _, _, _, _, _)
201239 }
@@ -210,8 +248,9 @@ object generic {
210248 /** The template method: this is the method that can be used to
211249 * sequence and combine the results of all the parsers. */
212250 def apply (x1 : Parsley [T1 ], x2 : => Parsley [T2 ], x3 : => Parsley [T3 ], x4 : => Parsley [T4 ], x5 : => Parsley [T5 ], x6 : => Parsley [T6 ],
213- x7 : => Parsley [T7 ], x8 : => Parsley [T8 ], x9 : => Parsley [T9 ], x10 : => Parsley [T10 ], x11 : => Parsley [T11 ]): Parsley [R ] =
251+ x7 : => Parsley [T7 ], x8 : => Parsley [T8 ], x9 : => Parsley [T9 ], x10 : => Parsley [T10 ], x11 : => Parsley [T11 ]): Parsley [R ] = error {
214252 lift11(this .con, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11)
253+ }
215254 /** @inheritdoc */
216255 override final def con : (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ) => R = this .apply(_, _, _, _, _, _, _, _, _, _, _)
217256 }
@@ -226,8 +265,9 @@ object generic {
226265 /** The template method: this is the method that can be used to
227266 * sequence and combine the results of all the parsers. */
228267 def apply (x1 : Parsley [T1 ], x2 : => Parsley [T2 ], x3 : => Parsley [T3 ], x4 : => Parsley [T4 ], x5 : => Parsley [T5 ], x6 : => Parsley [T6 ],
229- x7 : => Parsley [T7 ], x8 : => Parsley [T8 ], x9 : => Parsley [T9 ], x10 : => Parsley [T10 ], x11 : => Parsley [T11 ], x12 : => Parsley [T12 ]): Parsley [R ] =
268+ x7 : => Parsley [T7 ], x8 : => Parsley [T8 ], x9 : => Parsley [T9 ], x10 : => Parsley [T10 ], x11 : => Parsley [T11 ], x12 : => Parsley [T12 ]): Parsley [R ] = error {
230269 lift12(this .con, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)
270+ }
231271 /** @inheritdoc */
232272 override final def con : (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ) => R = this .apply(_, _, _, _, _, _, _, _, _, _, _, _)
233273 }
@@ -243,8 +283,9 @@ object generic {
243283 * sequence and combine the results of all the parsers. */
244284 def apply (x1 : Parsley [T1 ], x2 : => Parsley [T2 ], x3 : => Parsley [T3 ], x4 : => Parsley [T4 ], x5 : => Parsley [T5 ], x6 : => Parsley [T6 ],
245285 x7 : => Parsley [T7 ], x8 : => Parsley [T8 ], x9 : => Parsley [T9 ], x10 : => Parsley [T10 ], x11 : => Parsley [T11 ], x12 : => Parsley [T12 ],
246- x13 : => Parsley [T13 ]): Parsley [R ] =
286+ x13 : => Parsley [T13 ]): Parsley [R ] = error {
247287 lift13(this .con, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13)
288+ }
248289 /** @inheritdoc */
249290 override final def con : (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ) => R = this .apply(_, _, _, _, _, _, _, _, _, _, _, _, _)
250291 }
@@ -260,8 +301,9 @@ object generic {
260301 * sequence and combine the results of all the parsers. */
261302 def apply (x1 : Parsley [T1 ], x2 : => Parsley [T2 ], x3 : => Parsley [T3 ], x4 : => Parsley [T4 ], x5 : => Parsley [T5 ], x6 : => Parsley [T6 ],
262303 x7 : => Parsley [T7 ], x8 : => Parsley [T8 ], x9 : => Parsley [T9 ], x10 : => Parsley [T10 ], x11 : => Parsley [T11 ], x12 : => Parsley [T12 ],
263- x13 : => Parsley [T13 ], x14 : => Parsley [T14 ]): Parsley [R ] =
304+ x13 : => Parsley [T13 ], x14 : => Parsley [T14 ]): Parsley [R ] = error {
264305 lift14(this .con, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14)
306+ }
265307 /** @inheritdoc */
266308 override final def con : (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ) => R = this .apply(_, _, _, _, _, _, _, _, _, _, _, _, _, _)
267309 }
@@ -277,8 +319,9 @@ object generic {
277319 * sequence and combine the results of all the parsers. */
278320 def apply (x1 : Parsley [T1 ], x2 : => Parsley [T2 ], x3 : => Parsley [T3 ], x4 : => Parsley [T4 ], x5 : => Parsley [T5 ], x6 : => Parsley [T6 ],
279321 x7 : => Parsley [T7 ], x8 : => Parsley [T8 ], x9 : => Parsley [T9 ], x10 : => Parsley [T10 ], x11 : => Parsley [T11 ], x12 : => Parsley [T12 ],
280- x13 : => Parsley [T13 ], x14 : => Parsley [T14 ], x15 : => Parsley [T15 ]): Parsley [R ] =
322+ x13 : => Parsley [T13 ], x14 : => Parsley [T14 ], x15 : => Parsley [T15 ]): Parsley [R ] = error {
281323 lift15(this .con, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15)
324+ }
282325 /** @inheritdoc */
283326 override final def con : (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ) => R =
284327 this .apply(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
@@ -296,8 +339,9 @@ object generic {
296339 * sequence and combine the results of all the parsers. */
297340 def apply (x1 : Parsley [T1 ], x2 : => Parsley [T2 ], x3 : => Parsley [T3 ], x4 : => Parsley [T4 ], x5 : => Parsley [T5 ], x6 : => Parsley [T6 ],
298341 x7 : => Parsley [T7 ], x8 : => Parsley [T8 ], x9 : => Parsley [T9 ], x10 : => Parsley [T10 ], x11 : => Parsley [T11 ], x12 : => Parsley [T12 ],
299- x13 : => Parsley [T13 ], x14 : => Parsley [T14 ], x15 : => Parsley [T15 ], x16 : => Parsley [T16 ]): Parsley [R ] =
342+ x13 : => Parsley [T13 ], x14 : => Parsley [T14 ], x15 : => Parsley [T15 ], x16 : => Parsley [T16 ]): Parsley [R ] = error {
300343 lift16(this .con, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16)
344+ }
301345 /** @inheritdoc */
302346 override final def con : (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ) => R =
303347 this .apply(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
@@ -315,8 +359,9 @@ object generic {
315359 * sequence and combine the results of all the parsers. */
316360 def apply (x1 : Parsley [T1 ], x2 : => Parsley [T2 ], x3 : => Parsley [T3 ], x4 : => Parsley [T4 ], x5 : => Parsley [T5 ], x6 : => Parsley [T6 ],
317361 x7 : => Parsley [T7 ], x8 : => Parsley [T8 ], x9 : => Parsley [T9 ], x10 : => Parsley [T10 ], x11 : => Parsley [T11 ], x12 : => Parsley [T12 ],
318- x13 : => Parsley [T13 ], x14 : => Parsley [T14 ], x15 : => Parsley [T15 ], x16 : => Parsley [T16 ], x17 : => Parsley [T17 ]): Parsley [R ] =
362+ x13 : => Parsley [T13 ], x14 : => Parsley [T14 ], x15 : => Parsley [T15 ], x16 : => Parsley [T16 ], x17 : => Parsley [T17 ]): Parsley [R ] = error {
319363 lift17(this .con, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17)
364+ }
320365 /** @inheritdoc */
321366 override final def con : (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ) => R =
322367 this .apply(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
@@ -335,7 +380,7 @@ object generic {
335380 def apply (x1 : Parsley [T1 ], x2 : => Parsley [T2 ], x3 : => Parsley [T3 ], x4 : => Parsley [T4 ], x5 : => Parsley [T5 ], x6 : => Parsley [T6 ],
336381 x7 : => Parsley [T7 ], x8 : => Parsley [T8 ], x9 : => Parsley [T9 ], x10 : => Parsley [T10 ], x11 : => Parsley [T11 ], x12 : => Parsley [T12 ],
337382 x13 : => Parsley [T13 ], x14 : => Parsley [T14 ], x15 : => Parsley [T15 ], x16 : => Parsley [T16 ], x17 : => Parsley [T17 ], x18 : => Parsley [T18 ]): Parsley [R ] =
338- lift18(this .con, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18)
383+ error( lift18(this .con, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18) )
339384 /** @inheritdoc */
340385 override final def con : (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ) => R =
341386 this .apply(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
@@ -354,8 +399,9 @@ object generic {
354399 def apply (x1 : Parsley [T1 ], x2 : => Parsley [T2 ], x3 : => Parsley [T3 ], x4 : => Parsley [T4 ], x5 : => Parsley [T5 ], x6 : => Parsley [T6 ],
355400 x7 : => Parsley [T7 ], x8 : => Parsley [T8 ], x9 : => Parsley [T9 ], x10 : => Parsley [T10 ], x11 : => Parsley [T11 ], x12 : => Parsley [T12 ],
356401 x13 : => Parsley [T13 ], x14 : => Parsley [T14 ], x15 : => Parsley [T15 ], x16 : => Parsley [T16 ], x17 : => Parsley [T17 ], x18 : => Parsley [T18 ],
357- x19 : => Parsley [T19 ]): Parsley [R ] =
402+ x19 : => Parsley [T19 ]): Parsley [R ] = error {
358403 lift19(this .con, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19)
404+ }
359405 /** @inheritdoc */
360406 override final def con : (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ) => R =
361407 this .apply(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
@@ -374,8 +420,9 @@ object generic {
374420 def apply (x1 : Parsley [T1 ], x2 : => Parsley [T2 ], x3 : => Parsley [T3 ], x4 : => Parsley [T4 ], x5 : => Parsley [T5 ], x6 : => Parsley [T6 ],
375421 x7 : => Parsley [T7 ], x8 : => Parsley [T8 ], x9 : => Parsley [T9 ], x10 : => Parsley [T10 ], x11 : => Parsley [T11 ], x12 : => Parsley [T12 ],
376422 x13 : => Parsley [T13 ], x14 : => Parsley [T14 ], x15 : => Parsley [T15 ], x16 : => Parsley [T16 ], x17 : => Parsley [T17 ], x18 : => Parsley [T18 ],
377- x19 : => Parsley [T19 ], x20 : => Parsley [T20 ]): Parsley [R ] =
423+ x19 : => Parsley [T19 ], x20 : => Parsley [T20 ]): Parsley [R ] = error {
378424 lift20(this .con, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20)
425+ }
379426 /** @inheritdoc */
380427 override final def con : (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ) => R =
381428 this .apply(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
@@ -394,8 +441,9 @@ object generic {
394441 def apply (x1 : Parsley [T1 ], x2 : => Parsley [T2 ], x3 : => Parsley [T3 ], x4 : => Parsley [T4 ], x5 : => Parsley [T5 ], x6 : => Parsley [T6 ],
395442 x7 : => Parsley [T7 ], x8 : => Parsley [T8 ], x9 : => Parsley [T9 ], x10 : => Parsley [T10 ], x11 : => Parsley [T11 ], x12 : => Parsley [T12 ],
396443 x13 : => Parsley [T13 ], x14 : => Parsley [T14 ], x15 : => Parsley [T15 ], x16 : => Parsley [T16 ], x17 : => Parsley [T17 ], x18 : => Parsley [T18 ],
397- x19 : => Parsley [T19 ], x20 : => Parsley [T20 ], x21 : => Parsley [T21 ]): Parsley [R ] =
444+ x19 : => Parsley [T19 ], x20 : => Parsley [T20 ], x21 : => Parsley [T21 ]): Parsley [R ] = error {
398445 lift21(this .con, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21)
446+ }
399447 /** @inheritdoc */
400448 override final def con : (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ) => R =
401449 this .apply(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
@@ -414,8 +462,9 @@ object generic {
414462 def apply (x1 : Parsley [T1 ], x2 : => Parsley [T2 ], x3 : => Parsley [T3 ], x4 : => Parsley [T4 ], x5 : => Parsley [T5 ], x6 : => Parsley [T6 ],
415463 x7 : => Parsley [T7 ], x8 : => Parsley [T8 ], x9 : => Parsley [T9 ], x10 : => Parsley [T10 ], x11 : => Parsley [T11 ], x12 : => Parsley [T12 ],
416464 x13 : => Parsley [T13 ], x14 : => Parsley [T14 ], x15 : => Parsley [T15 ], x16 : => Parsley [T16 ], x17 : => Parsley [T17 ], x18 : => Parsley [T18 ],
417- x19 : => Parsley [T19 ], x20 : => Parsley [T20 ], x21 : => Parsley [T21 ], x22 : => Parsley [T22 ]): Parsley [R ] =
465+ x19 : => Parsley [T19 ], x20 : => Parsley [T20 ], x21 : => Parsley [T21 ], x22 : => Parsley [T22 ]): Parsley [R ] = error {
418466 lift22(this .con, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22)
467+ }
419468 /** @inheritdoc */
420469 override final def con : (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ) => R =
421470 this .apply(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
0 commit comments