@@ -6,6 +6,7 @@ import _root_.cucumber.runtime.scala.ScalaStepDefinition
6
6
import _root_ .cucumber .runtime .HookDefinition
7
7
import _root_ .cucumber .runtime .StepDefinition
8
8
import collection .mutable .ArrayBuffer
9
+ import java .lang .reflect .Type
9
10
10
11
/**
11
12
* Base trait for a scala step definition implementation.
@@ -57,7 +58,7 @@ trait ScalaDsl { self =>
57
58
def apply (f : => Unit ){ apply(f _) }
58
59
59
60
def apply (fun : Fun0 ) {
60
- register(Nil ) {case Nil => fun.f()}
61
+ register(Array [ Type ]() ) {case Nil => fun.f()}
61
62
}
62
63
63
64
/**
@@ -91,22 +92,22 @@ trait ScalaDsl { self =>
91
92
*/
92
93
93
94
def apply [T1 ](f : (T1 ) => Any )(implicit m1: Manifest [T1 ]) {
94
- register(List (m1 )) {
95
+ register(functionParams(f )) {
95
96
case List (a1: AnyRef ) =>
96
97
f(a1.asInstanceOf [T1 ])
97
98
}
98
99
}
99
100
100
101
def apply [T1 , T2 ](f : (T1 , T2 ) => Any )(implicit m1: Manifest [T1 ], m2: Manifest [T2 ]) {
101
- register(List (m1, m2 )) {
102
+ register(functionParams(f )) {
102
103
case List (a1: AnyRef , a2: AnyRef ) =>
103
104
f(a1.asInstanceOf [T1 ],
104
105
a2.asInstanceOf [T2 ])
105
106
}
106
107
}
107
108
108
109
def apply [T1 , T2 , T3 ](f : (T1 , T2 , T3 ) => Any )(implicit m1: Manifest [T1 ], m2: Manifest [T2 ], m3: Manifest [T3 ]) {
109
- register(List (m1, m2, m3 )) {
110
+ register(functionParams(f )) {
110
111
case List (a1: AnyRef , a2: AnyRef , a3: AnyRef ) =>
111
112
f(a1.asInstanceOf [T1 ],
112
113
a2.asInstanceOf [T2 ],
@@ -115,7 +116,7 @@ trait ScalaDsl { self =>
115
116
}
116
117
117
118
def apply [T1 , T2 , T3 , T4 ](f : (T1 , T2 , T3 , T4 ) => Any )(implicit m1: Manifest [T1 ], m2: Manifest [T2 ], m3: Manifest [T3 ], m4: Manifest [T4 ]) {
118
- register(List (m1, m2, m3, m4 )) {
119
+ register(functionParams(f )) {
119
120
case List (a1: AnyRef , a2: AnyRef , a3: AnyRef , a4: AnyRef ) =>
120
121
f(a1.asInstanceOf [T1 ],
121
122
a2.asInstanceOf [T2 ],
@@ -125,7 +126,7 @@ trait ScalaDsl { self =>
125
126
}
126
127
127
128
def apply [T1 , T2 , T3 , T4 , T5 ](f : (T1 , T2 , T3 , T4 , T5 ) => Any )(implicit m1: Manifest [T1 ], m2: Manifest [T2 ], m3: Manifest [T3 ], m4: Manifest [T4 ], m5: Manifest [T5 ]) {
128
- register(List (m1, m2, m3, m4, m5 )) {
129
+ register(functionParams(f )) {
129
130
case List (a1: AnyRef , a2: AnyRef , a3: AnyRef , a4: AnyRef , a5: AnyRef ) =>
130
131
f(a1.asInstanceOf [T1 ],
131
132
a2.asInstanceOf [T2 ],
@@ -136,7 +137,7 @@ trait ScalaDsl { self =>
136
137
}
137
138
138
139
def apply [T1 , T2 , T3 , T4 , T5 , T6 ](f : (T1 , T2 , T3 , T4 , T5 , T6 ) => Any )(implicit m1: Manifest [T1 ], m2: Manifest [T2 ], m3: Manifest [T3 ], m4: Manifest [T4 ], m5: Manifest [T5 ], m6: Manifest [T6 ]) {
139
- register(List (m1, m2, m3, m4, m5, m6 )) {
140
+ register(functionParams(f )) {
140
141
case List (a1: AnyRef , a2: AnyRef , a3: AnyRef , a4: AnyRef , a5: AnyRef , a6: AnyRef ) =>
141
142
f(a1.asInstanceOf [T1 ],
142
143
a2.asInstanceOf [T2 ],
@@ -148,7 +149,7 @@ trait ScalaDsl { self =>
148
149
}
149
150
150
151
def apply [T1 , T2 , T3 , T4 , T5 , T6 , T7 ](f : (T1 , T2 , T3 , T4 , T5 , T6 , T7 ) => Any )(implicit m1: Manifest [T1 ], m2: Manifest [T2 ], m3: Manifest [T3 ], m4: Manifest [T4 ], m5: Manifest [T5 ], m6: Manifest [T6 ], m7: Manifest [T7 ]) {
151
- register(List (m1, m2, m3, m4, m5, m6, m7 )) {
152
+ register(functionParams(f )) {
152
153
case List (a1: AnyRef , a2: AnyRef , a3: AnyRef , a4: AnyRef , a5: AnyRef , a6: AnyRef , a7: AnyRef ) =>
153
154
f(a1.asInstanceOf [T1 ],
154
155
a2.asInstanceOf [T2 ],
@@ -161,7 +162,7 @@ trait ScalaDsl { self =>
161
162
}
162
163
163
164
def apply [T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ](f : (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ) => Any )(implicit m1: Manifest [T1 ], m2: Manifest [T2 ], m3: Manifest [T3 ], m4: Manifest [T4 ], m5: Manifest [T5 ], m6: Manifest [T6 ], m7: Manifest [T7 ], m8: Manifest [T8 ]) {
164
- register(List (m1, m2, m3, m4, m5, m6, m7, m8 )) {
165
+ register(functionParams(f )) {
165
166
case List (a1: AnyRef , a2: AnyRef , a3: AnyRef , a4: AnyRef , a5: AnyRef , a6: AnyRef , a7: AnyRef , a8: AnyRef ) =>
166
167
f(a1.asInstanceOf [T1 ],
167
168
a2.asInstanceOf [T2 ],
@@ -175,7 +176,7 @@ trait ScalaDsl { self =>
175
176
}
176
177
177
178
def apply [T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ](f : (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ) => Any )(implicit m1: Manifest [T1 ], m2: Manifest [T2 ], m3: Manifest [T3 ], m4: Manifest [T4 ], m5: Manifest [T5 ], m6: Manifest [T6 ], m7: Manifest [T7 ], m8: Manifest [T8 ], m9: Manifest [T9 ]) {
178
- register(List (m1, m2, m3, m4, m5, m6, m7, m8, m9 )) {
179
+ register(functionParams(f )) {
179
180
case List (a1: AnyRef , a2: AnyRef , a3: AnyRef , a4: AnyRef , a5: AnyRef , a6: AnyRef , a7: AnyRef , a8: AnyRef , a9: AnyRef ) =>
180
181
f(a1.asInstanceOf [T1 ],
181
182
a2.asInstanceOf [T2 ],
@@ -190,7 +191,7 @@ trait ScalaDsl { self =>
190
191
}
191
192
192
193
def apply [T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ](f : (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ) => Any )(implicit m1: Manifest [T1 ], m2: Manifest [T2 ], m3: Manifest [T3 ], m4: Manifest [T4 ], m5: Manifest [T5 ], m6: Manifest [T6 ], m7: Manifest [T7 ], m8: Manifest [T8 ], m9: Manifest [T9 ], m10: Manifest [T10 ]) {
193
- register(List (m1, m2, m3, m4, m5, m6, m7, m8, m9, m10 )) {
194
+ register(functionParams(f )) {
194
195
case List (a1: AnyRef , a2: AnyRef , a3: AnyRef , a4: AnyRef , a5: AnyRef , a6: AnyRef , a7: AnyRef , a8: AnyRef , a9: AnyRef , a10: AnyRef ) =>
195
196
f(a1.asInstanceOf [T1 ],
196
197
a2.asInstanceOf [T2 ],
@@ -206,7 +207,7 @@ trait ScalaDsl { self =>
206
207
}
207
208
208
209
def apply [T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ](f : (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ) => Any )(implicit m1: Manifest [T1 ], m2: Manifest [T2 ], m3: Manifest [T3 ], m4: Manifest [T4 ], m5: Manifest [T5 ], m6: Manifest [T6 ], m7: Manifest [T7 ], m8: Manifest [T8 ], m9: Manifest [T9 ], m10: Manifest [T10 ], m11: Manifest [T11 ]) {
209
- register(List (m1, m2, m3, m4, m5, m6, m7, m8, m9, m10, m11 )) {
210
+ register(functionParams(f )) {
210
211
case List (a1: AnyRef , a2: AnyRef , a3: AnyRef , a4: AnyRef , a5: AnyRef , a6: AnyRef , a7: AnyRef , a8: AnyRef , a9: AnyRef , a10: AnyRef , a11: AnyRef ) =>
211
212
f(a1.asInstanceOf [T1 ],
212
213
a2.asInstanceOf [T2 ],
@@ -223,7 +224,7 @@ trait ScalaDsl { self =>
223
224
}
224
225
225
226
def apply [T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ](f : (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ) => Any )(implicit m1: Manifest [T1 ], m2: Manifest [T2 ], m3: Manifest [T3 ], m4: Manifest [T4 ], m5: Manifest [T5 ], m6: Manifest [T6 ], m7: Manifest [T7 ], m8: Manifest [T8 ], m9: Manifest [T9 ], m10: Manifest [T10 ], m11: Manifest [T11 ], m12: Manifest [T12 ]) {
226
- register(List (m1, m2, m3, m4, m5, m6, m7, m8, m9, m10, m11, m12 )) {
227
+ register(functionParams(f )) {
227
228
case List (a1: AnyRef , a2: AnyRef , a3: AnyRef , a4: AnyRef , a5: AnyRef , a6: AnyRef , a7: AnyRef , a8: AnyRef , a9: AnyRef , a10: AnyRef , a11: AnyRef , a12: AnyRef ) =>
228
229
f(a1.asInstanceOf [T1 ],
229
230
a2.asInstanceOf [T2 ],
@@ -241,7 +242,7 @@ trait ScalaDsl { self =>
241
242
}
242
243
243
244
def apply [T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ](f : (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ) => Any )(implicit m1: Manifest [T1 ], m2: Manifest [T2 ], m3: Manifest [T3 ], m4: Manifest [T4 ], m5: Manifest [T5 ], m6: Manifest [T6 ], m7: Manifest [T7 ], m8: Manifest [T8 ], m9: Manifest [T9 ], m10: Manifest [T10 ], m11: Manifest [T11 ], m12: Manifest [T12 ], m13: Manifest [T13 ]) {
244
- register(List (m1, m2, m3, m4, m5, m6, m7, m8, m9, m10, m11, m12, m13 )) {
245
+ register(functionParams(f )) {
245
246
case List (a1: AnyRef , a2: AnyRef , a3: AnyRef , a4: AnyRef , a5: AnyRef , a6: AnyRef , a7: AnyRef , a8: AnyRef , a9: AnyRef , a10: AnyRef , a11: AnyRef , a12: AnyRef , a13: AnyRef ) =>
246
247
f(a1.asInstanceOf [T1 ],
247
248
a2.asInstanceOf [T2 ],
@@ -260,7 +261,7 @@ trait ScalaDsl { self =>
260
261
}
261
262
262
263
def apply [T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ](f : (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ) => Any )(implicit m1: Manifest [T1 ], m2: Manifest [T2 ], m3: Manifest [T3 ], m4: Manifest [T4 ], m5: Manifest [T5 ], m6: Manifest [T6 ], m7: Manifest [T7 ], m8: Manifest [T8 ], m9: Manifest [T9 ], m10: Manifest [T10 ], m11: Manifest [T11 ], m12: Manifest [T12 ], m13: Manifest [T13 ], m14: Manifest [T14 ]) {
263
- register(List (m1, m2, m3, m4, m5, m6, m7, m8, m9, m10, m11, m12, m13, m14 )) {
264
+ register(functionParams(f )) {
264
265
case List (a1: AnyRef , a2: AnyRef , a3: AnyRef , a4: AnyRef , a5: AnyRef , a6: AnyRef , a7: AnyRef , a8: AnyRef , a9: AnyRef , a10: AnyRef , a11: AnyRef , a12: AnyRef , a13: AnyRef , a14: AnyRef ) =>
265
266
f(a1.asInstanceOf [T1 ],
266
267
a2.asInstanceOf [T2 ],
@@ -280,7 +281,7 @@ trait ScalaDsl { self =>
280
281
}
281
282
282
283
def apply [T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ](f : (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ) => Any )(implicit m1: Manifest [T1 ], m2: Manifest [T2 ], m3: Manifest [T3 ], m4: Manifest [T4 ], m5: Manifest [T5 ], m6: Manifest [T6 ], m7: Manifest [T7 ], m8: Manifest [T8 ], m9: Manifest [T9 ], m10: Manifest [T10 ], m11: Manifest [T11 ], m12: Manifest [T12 ], m13: Manifest [T13 ], m14: Manifest [T14 ], m15: Manifest [T15 ]) {
283
- register(List (m1, m2, m3, m4, m5, m6, m7, m8, m9, m10, m11, m12, m13, m14, m15 )) {
284
+ register(functionParams(f )) {
284
285
case List (a1: AnyRef , a2: AnyRef , a3: AnyRef , a4: AnyRef , a5: AnyRef , a6: AnyRef , a7: AnyRef , a8: AnyRef , a9: AnyRef , a10: AnyRef , a11: AnyRef , a12: AnyRef , a13: AnyRef , a14: AnyRef , a15: AnyRef ) =>
285
286
f(a1.asInstanceOf [T1 ],
286
287
a2.asInstanceOf [T2 ],
@@ -301,7 +302,7 @@ trait ScalaDsl { self =>
301
302
}
302
303
303
304
def apply [T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ](f : (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ) => Any )(implicit m1: Manifest [T1 ], m2: Manifest [T2 ], m3: Manifest [T3 ], m4: Manifest [T4 ], m5: Manifest [T5 ], m6: Manifest [T6 ], m7: Manifest [T7 ], m8: Manifest [T8 ], m9: Manifest [T9 ], m10: Manifest [T10 ], m11: Manifest [T11 ], m12: Manifest [T12 ], m13: Manifest [T13 ], m14: Manifest [T14 ], m15: Manifest [T15 ], m16: Manifest [T16 ]) {
304
- register(List (m1, m2, m3, m4, m5, m6, m7, m8, m9, m10, m11, m12, m13, m14, m15, m16 )) {
305
+ register(functionParams(f )) {
305
306
case List (a1: AnyRef , a2: AnyRef , a3: AnyRef , a4: AnyRef , a5: AnyRef , a6: AnyRef , a7: AnyRef , a8: AnyRef , a9: AnyRef , a10: AnyRef , a11: AnyRef , a12: AnyRef , a13: AnyRef , a14: AnyRef , a15: AnyRef , a16: AnyRef ) =>
306
307
f(a1.asInstanceOf [T1 ],
307
308
a2.asInstanceOf [T2 ],
@@ -323,7 +324,7 @@ trait ScalaDsl { self =>
323
324
}
324
325
325
326
def apply [T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ](f : (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ) => Any )(implicit m1: Manifest [T1 ], m2: Manifest [T2 ], m3: Manifest [T3 ], m4: Manifest [T4 ], m5: Manifest [T5 ], m6: Manifest [T6 ], m7: Manifest [T7 ], m8: Manifest [T8 ], m9: Manifest [T9 ], m10: Manifest [T10 ], m11: Manifest [T11 ], m12: Manifest [T12 ], m13: Manifest [T13 ], m14: Manifest [T14 ], m15: Manifest [T15 ], m16: Manifest [T16 ], m17: Manifest [T17 ]) {
326
- register(List (m1, m2, m3, m4, m5, m6, m7, m8, m9, m10, m11, m12, m13, m14, m15, m16, m17 )) {
327
+ register(functionParams(f )) {
327
328
case List (a1: AnyRef , a2: AnyRef , a3: AnyRef , a4: AnyRef , a5: AnyRef , a6: AnyRef , a7: AnyRef , a8: AnyRef , a9: AnyRef , a10: AnyRef , a11: AnyRef , a12: AnyRef , a13: AnyRef , a14: AnyRef , a15: AnyRef , a16: AnyRef , a17: AnyRef ) =>
328
329
f(a1.asInstanceOf [T1 ],
329
330
a2.asInstanceOf [T2 ],
@@ -346,7 +347,7 @@ trait ScalaDsl { self =>
346
347
}
347
348
348
349
def apply [T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ](f : (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ) => Any )(implicit m1: Manifest [T1 ], m2: Manifest [T2 ], m3: Manifest [T3 ], m4: Manifest [T4 ], m5: Manifest [T5 ], m6: Manifest [T6 ], m7: Manifest [T7 ], m8: Manifest [T8 ], m9: Manifest [T9 ], m10: Manifest [T10 ], m11: Manifest [T11 ], m12: Manifest [T12 ], m13: Manifest [T13 ], m14: Manifest [T14 ], m15: Manifest [T15 ], m16: Manifest [T16 ], m17: Manifest [T17 ], m18: Manifest [T18 ]) {
349
- register(List (m1, m2, m3, m4, m5, m6, m7, m8, m9, m10, m11, m12, m13, m14, m15, m16, m17, m18 )) {
350
+ register(functionParams(f )) {
350
351
case List (a1: AnyRef , a2: AnyRef , a3: AnyRef , a4: AnyRef , a5: AnyRef , a6: AnyRef , a7: AnyRef , a8: AnyRef , a9: AnyRef , a10: AnyRef , a11: AnyRef , a12: AnyRef , a13: AnyRef , a14: AnyRef , a15: AnyRef , a16: AnyRef , a17: AnyRef , a18: AnyRef ) =>
351
352
f(a1.asInstanceOf [T1 ],
352
353
a2.asInstanceOf [T2 ],
@@ -370,7 +371,7 @@ trait ScalaDsl { self =>
370
371
}
371
372
372
373
def apply [T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ](f : (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ) => Any )(implicit m1: Manifest [T1 ], m2: Manifest [T2 ], m3: Manifest [T3 ], m4: Manifest [T4 ], m5: Manifest [T5 ], m6: Manifest [T6 ], m7: Manifest [T7 ], m8: Manifest [T8 ], m9: Manifest [T9 ], m10: Manifest [T10 ], m11: Manifest [T11 ], m12: Manifest [T12 ], m13: Manifest [T13 ], m14: Manifest [T14 ], m15: Manifest [T15 ], m16: Manifest [T16 ], m17: Manifest [T17 ], m18: Manifest [T18 ], m19: Manifest [T19 ]) {
373
- register(List (m1, m2, m3, m4, m5, m6, m7, m8, m9, m10, m11, m12, m13, m14, m15, m16, m17, m18, m19 )) {
374
+ register(functionParams(f )) {
374
375
case List (a1: AnyRef , a2: AnyRef , a3: AnyRef , a4: AnyRef , a5: AnyRef , a6: AnyRef , a7: AnyRef , a8: AnyRef , a9: AnyRef , a10: AnyRef , a11: AnyRef , a12: AnyRef , a13: AnyRef , a14: AnyRef , a15: AnyRef , a16: AnyRef , a17: AnyRef , a18: AnyRef , a19: AnyRef ) =>
375
376
f(a1.asInstanceOf [T1 ],
376
377
a2.asInstanceOf [T2 ],
@@ -395,7 +396,7 @@ trait ScalaDsl { self =>
395
396
}
396
397
397
398
def apply [T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ](f : (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ) => Any )(implicit m1: Manifest [T1 ], m2: Manifest [T2 ], m3: Manifest [T3 ], m4: Manifest [T4 ], m5: Manifest [T5 ], m6: Manifest [T6 ], m7: Manifest [T7 ], m8: Manifest [T8 ], m9: Manifest [T9 ], m10: Manifest [T10 ], m11: Manifest [T11 ], m12: Manifest [T12 ], m13: Manifest [T13 ], m14: Manifest [T14 ], m15: Manifest [T15 ], m16: Manifest [T16 ], m17: Manifest [T17 ], m18: Manifest [T18 ], m19: Manifest [T19 ], m20: Manifest [T20 ]) {
398
- register(List (m1, m2, m3, m4, m5, m6, m7, m8, m9, m10, m11, m12, m13, m14, m15, m16, m17, m18, m19, m20 )) {
399
+ register(functionParams(f )) {
399
400
case List (a1: AnyRef , a2: AnyRef , a3: AnyRef , a4: AnyRef , a5: AnyRef , a6: AnyRef , a7: AnyRef , a8: AnyRef , a9: AnyRef , a10: AnyRef , a11: AnyRef , a12: AnyRef , a13: AnyRef , a14: AnyRef , a15: AnyRef , a16: AnyRef , a17: AnyRef , a18: AnyRef , a19: AnyRef , a20: AnyRef ) =>
400
401
f(a1.asInstanceOf [T1 ],
401
402
a2.asInstanceOf [T2 ],
@@ -421,7 +422,7 @@ trait ScalaDsl { self =>
421
422
}
422
423
423
424
def apply [T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ](f : (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ) => Any )(implicit m1: Manifest [T1 ], m2: Manifest [T2 ], m3: Manifest [T3 ], m4: Manifest [T4 ], m5: Manifest [T5 ], m6: Manifest [T6 ], m7: Manifest [T7 ], m8: Manifest [T8 ], m9: Manifest [T9 ], m10: Manifest [T10 ], m11: Manifest [T11 ], m12: Manifest [T12 ], m13: Manifest [T13 ], m14: Manifest [T14 ], m15: Manifest [T15 ], m16: Manifest [T16 ], m17: Manifest [T17 ], m18: Manifest [T18 ], m19: Manifest [T19 ], m20: Manifest [T20 ], m21: Manifest [T21 ]) {
424
- register(List (m1, m2, m3, m4, m5, m6, m7, m8, m9, m10, m11, m12, m13, m14, m15, m16, m17, m18, m19, m20, m21 )) {
425
+ register(functionParams(f )) {
425
426
case List (a1: AnyRef , a2: AnyRef , a3: AnyRef , a4: AnyRef , a5: AnyRef , a6: AnyRef , a7: AnyRef , a8: AnyRef , a9: AnyRef , a10: AnyRef , a11: AnyRef , a12: AnyRef , a13: AnyRef , a14: AnyRef , a15: AnyRef , a16: AnyRef , a17: AnyRef , a18: AnyRef , a19: AnyRef , a20: AnyRef , a21: AnyRef ) =>
426
427
f(a1.asInstanceOf [T1 ],
427
428
a2.asInstanceOf [T2 ],
@@ -448,7 +449,7 @@ trait ScalaDsl { self =>
448
449
}
449
450
450
451
def apply [T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ](f : (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ) => Any )(implicit m1: Manifest [T1 ], m2: Manifest [T2 ], m3: Manifest [T3 ], m4: Manifest [T4 ], m5: Manifest [T5 ], m6: Manifest [T6 ], m7: Manifest [T7 ], m8: Manifest [T8 ], m9: Manifest [T9 ], m10: Manifest [T10 ], m11: Manifest [T11 ], m12: Manifest [T12 ], m13: Manifest [T13 ], m14: Manifest [T14 ], m15: Manifest [T15 ], m16: Manifest [T16 ], m17: Manifest [T17 ], m18: Manifest [T18 ], m19: Manifest [T19 ], m20: Manifest [T20 ], m21: Manifest [T21 ], m22: Manifest [T22 ]) {
451
- register(List (m1, m2, m3, m4, m5, m6, m7, m8, m9, m10, m11, m12, m13, m14, m15, m16, m17, m18, m19, m20, m21, m22 )) {
452
+ register(functionParams(f )) {
452
453
case List (a1: AnyRef , a2: AnyRef , a3: AnyRef , a4: AnyRef , a5: AnyRef , a6: AnyRef , a7: AnyRef , a8: AnyRef , a9: AnyRef , a10: AnyRef , a11: AnyRef , a12: AnyRef , a13: AnyRef , a14: AnyRef , a15: AnyRef , a16: AnyRef , a17: AnyRef , a18: AnyRef , a19: AnyRef , a20: AnyRef , a21: AnyRef , a22: AnyRef ) =>
453
454
f(a1.asInstanceOf [T1 ],
454
455
a2.asInstanceOf [T2 ],
@@ -475,9 +476,9 @@ trait ScalaDsl { self =>
475
476
}
476
477
}
477
478
478
- private def register (manifests : List [ Manifest [_]] )(pf : PartialFunction [List [Any ], Any ]){
479
+ private def register (types : Array [ Type ] )(pf : PartialFunction [List [Any ], Any ]) = {
479
480
val frame : StackTraceElement = obtainFrame
480
- stepDefinitions += new ScalaStepDefinition (frame, name, regex, manifests.map(_.erasure) , pf)
481
+ stepDefinitions += new ScalaStepDefinition (frame, name, regex, types , pf)
481
482
}
482
483
483
484
/**
@@ -490,6 +491,7 @@ trait ScalaDsl { self =>
490
491
frames.find(_.getClassName == currentClass).get
491
492
}
492
493
494
+ private def functionParams (f : Any ) =
495
+ f.getClass.getDeclaredMethods.filterNot(_.isBridge).head.getGenericParameterTypes
493
496
}
494
-
495
497
}
0 commit comments