@@ -46,7 +46,7 @@ typedef RunStepWrapper = Future<T> Function<T>(
46
46
/// mocks/fakes in a testing setup.
47
47
@sealed
48
48
class Runner {
49
- final Map <Step <Object >, dynamic > _cache = {};
49
+ final Map <Step <Object ? >, dynamic > _cache = {};
50
50
final RunStepWrapper _wrapRunStep;
51
51
52
52
/// Create a [Runner] instance with an empty cache.
@@ -94,13 +94,7 @@ class Runner {
94
94
/// ```
95
95
Runner ({
96
96
RunStepWrapper wrapRunStep = _defaultRunStep,
97
- }) : _wrapRunStep = wrapRunStep {
98
- // Workaround Dart 2.8.1 regression reported in:
99
- // https://github.com/dart-lang/sdk/issues/41871
100
- if (wrapRunStep == null ) {
101
- throw ArgumentError .notNull ('wrapRunStep' );
102
- }
103
- }
97
+ }) : _wrapRunStep = wrapRunStep;
104
98
105
99
/// Override [step] with [value] , ensuring that [step] evaluates to [value]
106
100
/// when [run] is called in this [Runner] .
@@ -148,8 +142,6 @@ class Runner {
148
142
/// }
149
143
/// ```
150
144
void override <T , S extends Step <T >>(S step, FutureOr <T > value) {
151
- ArgumentError .checkNotNull (step, 'step' );
152
-
153
145
if (_cache.containsKey (step)) {
154
146
throw StateError ('Value for $step is already cached' );
155
147
}
@@ -185,17 +177,13 @@ class Runner {
185
177
/// assert(myComponent1 == myComponent2);
186
178
/// }
187
179
/// ```
188
- Future <T > run <T >(Step <T > step) {
189
- ArgumentError .checkNotNull (step, 'step' );
190
-
191
- return _cache.putIfAbsent (
192
- step,
193
- () => step._create (
194
- this ,
195
- (fn) => _wrapRunStep (step, () => Future .value (fn ())),
196
- ),
197
- );
198
- }
180
+ Future <T > run <T >(Step <T > step) => _cache.putIfAbsent (
181
+ step,
182
+ () => step._create (
183
+ this ,
184
+ (fn) => _wrapRunStep (step, () => Future .value (fn ())),
185
+ ),
186
+ );
199
187
}
200
188
201
189
/// A [Step] is a function that may depend on the result of other steps.
@@ -238,7 +226,7 @@ class Step<T> {
238
226
/// depend on other steps and so forth. However, as the set of dependencies
239
227
/// must be specified when a [Step] is created, it is not possible for there
240
228
/// to be any dependency cycles.
241
- final Iterable <Step <Object >> directDependencies;
229
+ final Iterable <Step <Object ? >> directDependencies;
242
230
243
231
/// Internal method for creating an [T] given a [Runner] [r] that evaluate
244
232
/// the [directDependencies] .
@@ -258,7 +246,7 @@ class Step<T> {
258
246
@override
259
247
String toString () => 'Step[$name ]' ;
260
248
261
- Step ._(this .name, this ._create, List <Step <Object >> dependencies)
249
+ Step ._(this .name, this ._create, List <Step <Object ? >> dependencies)
262
250
: directDependencies = UnmodifiableListView (dependencies);
263
251
264
252
/// Define a [Step] using a [StepBuilder] .
@@ -299,10 +287,7 @@ class Step<T> {
299
287
/// // Setup Server using router and database
300
288
/// });
301
289
/// ```
302
- static StepBuilder define (String name) {
303
- ArgumentError .checkNotNull (name, 'name' );
304
- return StepBuilder ._(name);
305
- }
290
+ static StepBuilder define (String name) => StepBuilder ._(name);
306
291
}
307
292
308
293
/// Builder for creating a [Step] .
@@ -321,7 +306,6 @@ class StepBuilder {
321
306
/// This methods returns a new builder to be used as an intermediate result in
322
307
/// the expression defining a step. See [Step.define] for how to define steps.
323
308
StepBuilder1 <A > dep <A >(Step <A > stepA) {
324
- ArgumentError .checkNotNull (stepA, 'stepA' );
325
309
return StepBuilder1 ._(_name, stepA);
326
310
}
327
311
@@ -331,7 +315,6 @@ class StepBuilder {
331
315
/// This methods returns a new builder to be used as an intermediate result in
332
316
/// the expression defining a step. See [Step.define] for how to define steps.
333
317
StepBuilderN <S > deps <S >(Iterable <Step <S >> dependencies) {
334
- ArgumentError .checkNotNull (dependencies, 'dependencies' );
335
318
final dependencies_ = List <Step <S >>.from (dependencies);
336
319
return StepBuilderN ._(_name, dependencies_);
337
320
}
@@ -345,7 +328,6 @@ class StepBuilder {
345
328
/// This method returns the [Step] built by the builder, see [Step.define] for
346
329
/// how to define steps using this API.
347
330
Step <T > build <T >(FutureOr <T > Function () runStep) {
348
- ArgumentError .checkNotNull (runStep, 'runStep' );
349
331
return Step ._(_name, (r, wrap) async {
350
332
return await wrap (() => runStep ());
351
333
}, []);
@@ -399,7 +381,6 @@ class StepBuilder1<A> {
399
381
/// This methods returns a new builder to be used as an intermediate result in
400
382
/// the expression defining a step. See [Step.define] for how to define steps.
401
383
StepBuilder2 <A , B > dep <B >(Step <B > stepB) {
402
- ArgumentError .checkNotNull (stepB, 'stepB' );
403
384
return StepBuilder2 ._(_name, _a, stepB);
404
385
}
405
386
@@ -442,7 +423,6 @@ class StepBuilder2<A, B> {
442
423
/// This methods returns a new builder to be used as an intermediate result in
443
424
/// the expression defining a step. See [Step.define] for how to define steps.
444
425
StepBuilder3 <A , B , C > dep <C >(Step <C > stepC) {
445
- ArgumentError .checkNotNull (stepC, 'stepC' );
446
426
return StepBuilder3 ._(_name, _a, _b, stepC);
447
427
}
448
428
@@ -493,7 +473,6 @@ class StepBuilder3<A, B, C> {
493
473
/// This methods returns a new builder to be used as an intermediate result in
494
474
/// the expression defining a step. See [Step.define] for how to define steps.
495
475
StepBuilder4 <A , B , C , D > dep <D >(Step <D > stepD) {
496
- ArgumentError .checkNotNull (stepD, 'stepD' );
497
476
return StepBuilder4 ._(_name, _a, _b, _c, stepD);
498
477
}
499
478
@@ -517,7 +496,6 @@ class StepBuilder3<A, B, C> {
517
496
)
518
497
runStep,
519
498
) {
520
- ArgumentError .checkNotNull (runStep, 'runStep' );
521
499
return Step ._(_name, (r, wrap) async {
522
500
final a_ = r.run (_a);
523
501
final b_ = r.run (_b);
@@ -557,7 +535,6 @@ class StepBuilder4<A, B, C, D> {
557
535
/// This methods returns a new builder to be used as an intermediate result in
558
536
/// the expression defining a step. See [Step.define] for how to define steps.
559
537
StepBuilder5 <A , B , C , D , E > dep <E >(Step <E > stepE) {
560
- ArgumentError .checkNotNull (stepE, 'stepE' );
561
538
return StepBuilder5 ._(_name, _a, _b, _c, _d, stepE);
562
539
}
563
540
@@ -582,7 +559,6 @@ class StepBuilder4<A, B, C, D> {
582
559
)
583
560
runStep,
584
561
) {
585
- ArgumentError .checkNotNull (runStep, 'runStep' );
586
562
return Step ._(_name, (r, wrap) async {
587
563
final a_ = r.run (_a);
588
564
final b_ = r.run (_b);
@@ -626,7 +602,6 @@ class StepBuilder5<A, B, C, D, E> {
626
602
/// This methods returns a new builder to be used as an intermediate result in
627
603
/// the expression defining a step. See [Step.define] for how to define steps.
628
604
StepBuilder6 <A , B , C , D , E , F > dep <F >(Step <F > stepF) {
629
- ArgumentError .checkNotNull (stepF, 'stepF' );
630
605
return StepBuilder6 ._(_name, _a, _b, _c, _d, _e, stepF);
631
606
}
632
607
@@ -652,7 +627,6 @@ class StepBuilder5<A, B, C, D, E> {
652
627
)
653
628
runStep,
654
629
) {
655
- ArgumentError .checkNotNull (runStep, 'runStep' );
656
630
return Step ._(_name, (r, wrap) async {
657
631
final a_ = r.run (_a);
658
632
final b_ = r.run (_b);
@@ -700,7 +674,6 @@ class StepBuilder6<A, B, C, D, E, F> {
700
674
/// This methods returns a new builder to be used as an intermediate result in
701
675
/// the expression defining a step. See [Step.define] for how to define steps.
702
676
StepBuilder7 <A , B , C , D , E , F , G > dep <G >(Step <G > stepG) {
703
- ArgumentError .checkNotNull (stepG, 'stepG' );
704
677
return StepBuilder7 ._(_name, _a, _b, _c, _d, _e, _f, stepG);
705
678
}
706
679
@@ -727,7 +700,6 @@ class StepBuilder6<A, B, C, D, E, F> {
727
700
)
728
701
runStep,
729
702
) {
730
- ArgumentError .checkNotNull (runStep, 'runStep' );
731
703
return Step ._(_name, (r, wrap) async {
732
704
final a_ = r.run (_a);
733
705
final b_ = r.run (_b);
@@ -779,7 +751,6 @@ class StepBuilder7<A, B, C, D, E, F, G> {
779
751
/// This methods returns a new builder to be used as an intermediate result in
780
752
/// the expression defining a step. See [Step.define] for how to define steps.
781
753
StepBuilder8 <A , B , C , D , E , F , G , H > dep <H >(Step <H > stepH) {
782
- ArgumentError .checkNotNull (stepH, 'stepH' );
783
754
return StepBuilder8 ._(_name, _a, _b, _c, _d, _e, _f, _g, stepH);
784
755
}
785
756
@@ -807,7 +778,6 @@ class StepBuilder7<A, B, C, D, E, F, G> {
807
778
)
808
779
runStep,
809
780
) {
810
- ArgumentError .checkNotNull (runStep, 'runStep' );
811
781
return Step ._(_name, (r, wrap) async {
812
782
final a_ = r.run (_a);
813
783
final b_ = r.run (_b);
@@ -863,7 +833,6 @@ class StepBuilder8<A, B, C, D, E, F, G, H> {
863
833
/// This methods returns a new builder to be used as an intermediate result in
864
834
/// the expression defining a step. See [Step.define] for how to define steps.
865
835
StepBuilder9 <A , B , C , D , E , F , G , H , I > dep <I >(Step <I > stepI) {
866
- ArgumentError .checkNotNull (stepI, 'stepI' );
867
836
return StepBuilder9 ._(_name, _a, _b, _c, _d, _e, _f, _g, _h, stepI);
868
837
}
869
838
@@ -892,7 +861,6 @@ class StepBuilder8<A, B, C, D, E, F, G, H> {
892
861
)
893
862
runStep,
894
863
) {
895
- ArgumentError .checkNotNull (runStep, 'runStep' );
896
864
return Step ._(_name, (r, wrap) async {
897
865
final a_ = r.run (_a);
898
866
final b_ = r.run (_b);
@@ -983,7 +951,6 @@ class StepBuilder9<A, B, C, D, E, F, G, H, I> {
983
951
)
984
952
runStep,
985
953
) {
986
- ArgumentError .checkNotNull (runStep, 'runStep' );
987
954
return Step ._(_name, (r, wrap) async {
988
955
final a_ = r.run (_a);
989
956
final b_ = r.run (_b);
@@ -1068,7 +1035,6 @@ class StepBuilder9N<A, B, C, D, E, F, G, H, I, S> {
1068
1035
)
1069
1036
runStep,
1070
1037
) {
1071
- ArgumentError .checkNotNull (runStep, 'runStep' );
1072
1038
return Step ._(_name, (r, wrap) async {
1073
1039
final a_ = r.run (_a);
1074
1040
final b_ = r.run (_b);
0 commit comments