Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(171)

Unified Diff: packages/unittest/lib/src/expected_function.dart

Issue 2989763002: Update charted to 0.4.8 and roll (Closed)
Patch Set: Removed Cutch from list of reviewers Created 3 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « packages/unittest/lib/html_config.dart ('k') | packages/unittest/lib/src/matcher/iterable_matchers.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: packages/unittest/lib/src/expected_function.dart
diff --git a/packages/unittest/lib/src/expected_function.dart b/packages/unittest/lib/src/expected_function.dart
index 7373c7550829fdb9b010a9a71de3ef77bf9f65a4..5a92d14a4e466f7a91fc7a1ec9e9c82b1ce50b35 100644
--- a/packages/unittest/lib/src/expected_function.dart
+++ b/packages/unittest/lib/src/expected_function.dart
@@ -30,7 +30,7 @@ typedef bool _IsDoneCallback();
///
/// The wrapper function is accessible via [func]. It supports up to six
/// optional and/or required positional arguments, but no named arguments.
-class ExpectedFunction {
+class ExpectedFunction<T> {
/// The wrapped callback.
final Function _callback;
@@ -125,43 +125,60 @@ class ExpectedFunction {
/// Returns a function that has the same number of positional arguments as the
/// wrapped function (up to a total of 6).
Function get func {
- if (_callback is _Func6) return _max6;
- if (_callback is _Func5) return _max5;
- if (_callback is _Func4) return _max4;
- if (_callback is _Func3) return _max3;
- if (_callback is _Func2) return _max2;
- if (_callback is _Func1) return _max1;
- if (_callback is _Func0) return _max0;
+ if (_callback is _Func6) return max6;
+ if (_callback is _Func5) return max5;
+ if (_callback is _Func4) return max4;
+ if (_callback is _Func3) return max3;
+ if (_callback is _Func2) return max2;
+ if (_callback is _Func1) return max1;
+ if (_callback is _Func0) return max0;
throw new ArgumentError(
'The wrapped function has more than 6 required arguments');
}
+ T max0() => max6();
+
// This indirection is critical. It ensures the returned function has an
// argument count of zero.
- _max0() => _max6();
-
- _max1([a0 = _PLACEHOLDER]) => _max6(a0);
-
- _max2([a0 = _PLACEHOLDER, a1 = _PLACEHOLDER]) => _max6(a0, a1);
-
- _max3([a0 = _PLACEHOLDER, a1 = _PLACEHOLDER, a2 = _PLACEHOLDER]) =>
- _max6(a0, a1, a2);
-
- _max4([a0 = _PLACEHOLDER, a1 = _PLACEHOLDER, a2 = _PLACEHOLDER,
- a3 = _PLACEHOLDER]) => _max6(a0, a1, a2, a3);
-
- _max5([a0 = _PLACEHOLDER, a1 = _PLACEHOLDER, a2 = _PLACEHOLDER,
- a3 = _PLACEHOLDER, a4 = _PLACEHOLDER]) => _max6(a0, a1, a2, a3, a4);
-
- _max6([a0 = _PLACEHOLDER, a1 = _PLACEHOLDER, a2 = _PLACEHOLDER,
- a3 = _PLACEHOLDER, a4 = _PLACEHOLDER, a5 = _PLACEHOLDER]) =>
+ T max1([Object a0 = _PLACEHOLDER]) => max6(a0);
+
+ T max2([Object a0 = _PLACEHOLDER, Object a1 = _PLACEHOLDER]) => max6(a0, a1);
+
+ T max3(
+ [Object a0 = _PLACEHOLDER,
+ Object a1 = _PLACEHOLDER,
+ Object a2 = _PLACEHOLDER]) =>
+ max6(a0, a1, a2);
+
+ T max4(
+ [Object a0 = _PLACEHOLDER,
+ Object a1 = _PLACEHOLDER,
+ Object a2 = _PLACEHOLDER,
+ Object a3 = _PLACEHOLDER]) =>
+ max6(a0, a1, a2, a3);
+
+ T max5(
+ [Object a0 = _PLACEHOLDER,
+ Object a1 = _PLACEHOLDER,
+ Object a2 = _PLACEHOLDER,
+ Object a3 = _PLACEHOLDER,
+ Object a4 = _PLACEHOLDER]) =>
+ max6(a0, a1, a2, a3, a4);
+
+ T max6(
+ [Object a0 = _PLACEHOLDER,
+ Object a1 = _PLACEHOLDER,
+ Object a2 = _PLACEHOLDER,
+ Object a3 = _PLACEHOLDER,
+ Object a4 = _PLACEHOLDER,
+ Object a5 = _PLACEHOLDER]) =>
_run([a0, a1, a2, a3, a4, a5].where((a) => a != _PLACEHOLDER));
/// Runs the wrapped function with [args] and returns its return value.
///
/// This will pass any errors on to [_testCase] and return `null`.
- _run(Iterable args) {
+ T _run(Iterable args) {
try {
_actualCalls++;
if (_testCase.isComplete) {
@@ -177,10 +194,10 @@ class ExpectedFunction {
return null;
} else if (_maxExpectedCalls >= 0 && _actualCalls > _maxExpectedCalls) {
throw new TestFailure('Callback ${_id}called more times than expected '
- '($_maxExpectedCalls).$_reason');
+ '($_maxExpectedCalls).$_reason');
}
- return Function.apply(_callback, args.toList());
+ return Function.apply(_callback, args.toList()) as T;
} catch (error, stackTrace) {
_testCase.registerException(error, stackTrace);
return null;
« no previous file with comments | « packages/unittest/lib/html_config.dart ('k') | packages/unittest/lib/src/matcher/iterable_matchers.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698