Skip to content

Commit 50c745f

Browse files
committed
Added labels and reason as part of ErrorBridge
1 parent e66e6a9 commit 50c745f

File tree

1 file changed

+73
-24
lines changed

1 file changed

+73
-24
lines changed

parsley/shared/src/main/scala/parsley/generic.scala

Lines changed: 73 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
package parsley
77

88
import 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._
2526
object 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

Comments
 (0)