Skip to content

Commit 155e55c

Browse files
lrhncommit-bot@chromium.org
authored andcommitted
Remove defaultValue parameter from Stream.first/lastWhere.
Change-Id: Id1f642a2f29086a5a7478c771ce16987b340861f Reviewed-on: https://dart-review.googlesource.com/43420 Commit-Queue: Lasse R.H. Nielsen <[email protected]> Reviewed-by: Leaf Petersen <[email protected]>
1 parent 0588816 commit 155e55c

File tree

3 files changed

+26
-12
lines changed

3 files changed

+26
-12
lines changed

pkg/front_end/testcases/shaker/empty_program.dart.outline.expect

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -85,8 +85,8 @@ abstract class Stream<T extends core::Object> extends core::Object {
8585
get first() → self::Future<self::Stream::T>;
8686
get last() → self::Future<self::Stream::T>;
8787
get single() → self::Future<self::Stream::T>;
88-
method firstWhere((self::Stream::T) → core::bool test, {() → dynamic defaultValue, () → self::Stream::T orElse}) → self::Future<self::Stream::T>;
89-
method lastWhere((self::Stream::T) → core::bool test, {() → dynamic defaultValue, () → self::Stream::T orElse}) → self::Future<self::Stream::T>;
88+
method firstWhere((self::Stream::T) → core::bool test, {() → self::Stream::T orElse}) → self::Future<self::Stream::T>;
89+
method lastWhere((self::Stream::T) → core::bool test, {() → self::Stream::T orElse}) → self::Future<self::Stream::T>;
9090
method singleWhere((self::Stream::T) → core::bool test, {() → self::Stream::T orElse}) → self::Future<self::Stream::T>;
9191
method elementAt(core::int index) → self::Future<self::Stream::T>;
9292
method timeout(core::Duration timeLimit, {(self::EventSink<self::Stream::T>) → void onTimeout}) → self::Stream<self::Stream::T>;

sdk/lib/async/stream.dart

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1277,8 +1277,7 @@ abstract class Stream<T> {
12771277
* The [defaultValue] parameter is deprecated, and [orElse] should be used
12781278
* instead.
12791279
*/
1280-
Future<T> firstWhere(bool test(T element),
1281-
{@deprecated dynamic defaultValue(), T orElse()}) {
1280+
Future<T> firstWhere(bool test(T element), {T orElse()}) {
12821281
_Future<T> future = new _Future();
12831282
StreamSubscription subscription;
12841283
subscription = this.listen(
@@ -1291,9 +1290,6 @@ abstract class Stream<T> {
12911290
},
12921291
onError: future._completeError,
12931292
onDone: () {
1294-
if (orElse == null && defaultValue != null) {
1295-
orElse = () => defaultValue() as T;
1296-
}
12971293
if (orElse != null) {
12981294
_runUserCode(orElse, future._complete, future._completeError);
12991295
return;
@@ -1322,8 +1318,7 @@ abstract class Stream<T> {
13221318
* The [defaultValue] parameter is deprecated, and [orElse] should be used
13231319
* instead.
13241320
*/
1325-
Future<T> lastWhere(bool test(T element),
1326-
{@deprecated dynamic defaultValue(), T orElse()}) {
1321+
Future<T> lastWhere(bool test(T element), {T orElse()}) {
13271322
_Future<T> future = new _Future();
13281323
T result = null;
13291324
bool foundResult = false;
@@ -1343,9 +1338,6 @@ abstract class Stream<T> {
13431338
future._complete(result);
13441339
return;
13451340
}
1346-
if (orElse == null && defaultValue != null) {
1347-
orElse = () => defaultValue() as T;
1348-
}
13491341
if (orElse != null) {
13501342
_runUserCode(orElse, future._complete, future._completeError);
13511343
return;

tests/co19/co19-co19.status

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,28 @@ LibTest/typed_data/Uint8ClampedList/last_A01_t02: RuntimeError # co19 issue 130
3838
LibTest/typed_data/Uint8List/first_A01_t02: RuntimeError # co19 issue 130
3939
LibTest/typed_data/Uint8List/last_A01_t02: RuntimeError # co19 issue 130
4040

41+
# Tests that fail everywhere, including the analyzer.
42+
[ $strong ]
43+
Language/Expressions/Additive_Expressions/syntax_t01/07: CompileTimeError
44+
LibTest/async/Stream/firstWhere_A01_t01: CompileTimeError # co19 issue 137
45+
LibTest/async/Stream/firstWhere_A02_t01: CompileTimeError # co19 issue 137
46+
LibTest/async/Stream/lastWhere_A01_t01: CompileTimeError # co19 issue 137
47+
LibTest/async/Stream/lastWhere_A02_t01: CompileTimeError # co19 issue 137
48+
LibTest/isolate/ReceivePort/firstWhere_A01_t01: CompileTimeError # co19 issue 137
49+
LibTest/isolate/ReceivePort/firstWhere_A02_t01: CompileTimeError # co19 issue 137
50+
LibTest/isolate/ReceivePort/lastWhere_A01_t01: CompileTimeError # co19 issue 137
51+
LibTest/isolate/ReceivePort/lastWhere_A02_t01: CompileTimeError # co19 issue 137
52+
53+
[ !$strong ]
54+
LibTest/async/Stream/firstWhere_A01_t01: RuntimeError # co19 issue 137
55+
LibTest/async/Stream/firstWhere_A02_t01: RuntimeError # co19 issue 137
56+
LibTest/async/Stream/lastWhere_A01_t01: RuntimeError # co19 issue 137
57+
LibTest/async/Stream/lastWhere_A02_t01: RuntimeError # co19 issue 137
58+
LibTest/isolate/ReceivePort/firstWhere_A01_t01: RuntimeError # co19 issue 137
59+
LibTest/isolate/ReceivePort/firstWhere_A02_t01: RuntimeError # co19 issue 137
60+
LibTest/isolate/ReceivePort/lastWhere_A01_t01: RuntimeError # co19 issue 137
61+
LibTest/isolate/ReceivePort/lastWhere_A02_t01: RuntimeError # co19 issue 137
62+
4163
# Tests that fail on every runtime, but not on the analyzer.
4264
[ $compiler != dart2analyzer && $compiler != fasta ]
4365
Language/Classes/same_name_type_variable_t04: Pass, MissingCompileTimeError, Fail # Issue 14513,25525

0 commit comments

Comments
 (0)