Skip to content

Commit 9b4b9ae

Browse files
johnniwinthercommit-bot@chromium.org
authored andcommitted
[cfe] Fix expectations after adding of FutureOrType
Change-Id: Ia4a6e18062ad215b0db5b44ee447ad615c28690e Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/151231 Reviewed-by: Johnni Winther <[email protected]> Reviewed-by: Dmitry Stefantsov <[email protected]> Commit-Queue: Johnni Winther <[email protected]>
1 parent 2fbe5c1 commit 9b4b9ae

File tree

5 files changed

+27
-28
lines changed

5 files changed

+27
-28
lines changed

pkg/front_end/testcases/nnbd/issue41697.dart.outline.expect

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,15 @@
11
library /*isNonNullableByDefault*/;
22
import self as self;
33
import "dart:core" as core;
4-
import "dart:async" as asy;
54

65
import "dart:async";
76

87
typedef G<invariant T extends core::Object? = dynamic> = <S extends T% = dynamic>(S%) → void;
9-
typedef H<invariant T extends core::Object? = dynamic> = <S extends asy::FutureOr<T%> = dynamic>(S, asy::FutureOr<T%>) → void;
8+
typedef H<invariant T extends core::Object? = dynamic> = <S extends FutureOr<T%> = dynamic>(S%, FutureOr<T%>) → void;
109
class C<T extends core::Object? = dynamic> extends core::Object {
1110
generic-covariant-impl field <S extends self::C::T% = dynamic>(S%) → void field1;
12-
generic-covariant-impl field <S extends asy::FutureOr<self::C::T%> = dynamic>(S, asy::FutureOr<self::C::T%>) → void field2;
13-
constructor •(<S extends self::C::T% = dynamic>(S%) → void field1, <S extends asy::FutureOr<self::C::T%> = dynamic>(S, asy::FutureOr<self::C::T%>) → void field2) → self::C<self::C::T%>
11+
generic-covariant-impl field <S extends FutureOr<self::C::T%> = dynamic>(S%, FutureOr<self::C::T%>) → void field2;
12+
constructor •(<S extends self::C::T% = dynamic>(S%) → void field1, <S extends FutureOr<self::C::T%> = dynamic>(S%, FutureOr<self::C::T%>) → void field2) → self::C<self::C::T%>
1413
;
1514
}
1615
static method test1(self::C<core::num> c) → dynamic

pkg/front_end/testcases/nnbd/issue41697.dart.strong.expect

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,19 +21,19 @@ import "dart:async" as asy;
2121
import "dart:async";
2222

2323
typedef G<invariant T extends core::Object? = dynamic> = <S extends T% = dynamic>(S%) → void;
24-
typedef H<invariant T extends core::Object? = dynamic> = <S extends asy::FutureOr<T%> = dynamic>(S, asy::FutureOr<T%>) → void;
24+
typedef H<invariant T extends core::Object? = dynamic> = <S extends FutureOr<T%> = dynamic>(S%, FutureOr<T%>) → void;
2525
class C<T extends core::Object? = dynamic> extends core::Object {
2626
generic-covariant-impl field <S extends self::C::T% = dynamic>(S%) → void field1;
27-
generic-covariant-impl field <S extends asy::FutureOr<self::C::T%> = dynamic>(S, asy::FutureOr<self::C::T%>) → void field2;
28-
constructor •(<S extends self::C::T% = dynamic>(S%) → void field1, <S extends asy::FutureOr<self::C::T%> = dynamic>(S, asy::FutureOr<self::C::T%>) → void field2) → self::C<self::C::T%>
27+
generic-covariant-impl field <S extends FutureOr<self::C::T%> = dynamic>(S%, FutureOr<self::C::T%>) → void field2;
28+
constructor •(<S extends self::C::T% = dynamic>(S%) → void field1, <S extends FutureOr<self::C::T%> = dynamic>(S%, FutureOr<self::C::T%>) → void field2) → self::C<self::C::T%>
2929
: self::C::field1 = field1, self::C::field2 = field2, super core::Object::•()
3030
;
3131
}
3232
static method test1(self::C<core::num> c) → dynamic {
3333
<S extends core::num = core::num>(S) → core::num f1 = c.{self::C::field1} = <S extends core::num = core::num>(S s) → core::num {
3434
return s.{core::num::+}(1);
3535
};
36-
<S extends asy::FutureOr<core::num> = asy::FutureOr<core::num>>(S, asy::FutureOr<core::num>) → asy::Future<core::num> f2 = c.{self::C::field2} = <S extends asy::FutureOr<core::num> = asy::FutureOr<core::num>>(S s, asy::FutureOr<core::num> t) → asy::Future<core::num> async {
36+
<S extends FutureOr<core::num> = FutureOr<core::num>>(S, FutureOr<core::num>) → asy::Future<core::num> f2 = c.{self::C::field2} = <S extends FutureOr<core::num> = FutureOr<core::num>>(S s, FutureOr<core::num>t) → asy::Future<core::num> async {
3737
return (await t).{core::num::+}(1);
3838
};
3939
}
@@ -43,7 +43,7 @@ static method test2(self::C<core::num?> c) → dynamic {
4343
return s + 1; // error
4444
^" in s.{core::num::+}(1);
4545
};
46-
<S extends asy::FutureOr<core::num?> = asy::FutureOr<core::num?>>(S, asy::FutureOr<core::num?>) → asy::Future<core::num> f2 = c.{self::C::field2} = <S extends asy::FutureOr<core::num?> = asy::FutureOr<core::num?>>(S s, asy::FutureOr<core::num?> t) → asy::Future<core::num> async {
46+
<S extends FutureOr<core::num?> = FutureOr<core::num?>>(S%, FutureOr<core::num?>) → asy::Future<core::num> f2 = c.{self::C::field2} = <S extends FutureOr<core::num?> = FutureOr<core::num?>>(S% s, FutureOr<core::num?>t) → asy::Future<core::num> async {
4747
return let final<BottomType> #t2 = invalid-expression "pkg/front_end/testcases/nnbd/issue41697.dart:36:22: Error: Operator '+' cannot be called on 'num?' because it is potentially null.
4848
return (await t) + 1; // error
4949
^" in (await t).{core::num::+}(1);

pkg/front_end/testcases/nnbd/issue41697.dart.strong.transformed.expect

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -22,21 +22,21 @@ import "dart:_internal" as _in;
2222
import "dart:async";
2323

2424
typedef G<invariant T extends core::Object? = dynamic> = <S extends T% = dynamic>(S%) → void;
25-
typedef H<invariant T extends core::Object? = dynamic> = <S extends asy::FutureOr<T%> = dynamic>(S, asy::FutureOr<T%>) → void;
25+
typedef H<invariant T extends core::Object? = dynamic> = <S extends FutureOr<T%> = dynamic>(S%, FutureOr<T%>) → void;
2626
class C<T extends core::Object? = dynamic> extends core::Object {
2727
generic-covariant-impl field <S extends self::C::T% = dynamic>(S%) → void field1;
28-
generic-covariant-impl field <S extends asy::FutureOr<self::C::T%> = dynamic>(S, asy::FutureOr<self::C::T%>) → void field2;
29-
constructor •(<S extends self::C::T% = dynamic>(S%) → void field1, <S extends asy::FutureOr<self::C::T%> = dynamic>(S, asy::FutureOr<self::C::T%>) → void field2) → self::C<self::C::T%>
28+
generic-covariant-impl field <S extends FutureOr<self::C::T%> = dynamic>(S%, FutureOr<self::C::T%>) → void field2;
29+
constructor •(<S extends self::C::T% = dynamic>(S%) → void field1, <S extends FutureOr<self::C::T%> = dynamic>(S%, FutureOr<self::C::T%>) → void field2) → self::C<self::C::T%>
3030
: self::C::field1 = field1, self::C::field2 = field2, super core::Object::•()
3131
;
3232
}
3333
static method test1(self::C<core::num> c) → dynamic {
3434
<S extends core::num = core::num>(S) → core::num f1 = c.{self::C::field1} = <S extends core::num = core::num>(S s) → core::num {
3535
return s.{core::num::+}(1);
3636
};
37-
<S extends asy::FutureOr<core::num> = asy::FutureOr<core::num>>(S, asy::FutureOr<core::num>) → asy::Future<core::num> f2 = c.{self::C::field2} = <S extends asy::FutureOr<core::num> = asy::FutureOr<core::num>>(S s, asy::FutureOr<core::num> t) → asy::Future<core::num> /* originally async */ {
37+
<S extends FutureOr<core::num> = FutureOr<core::num>>(S, FutureOr<core::num>) → asy::Future<core::num> f2 = c.{self::C::field2} = <S extends FutureOr<core::num> = FutureOr<core::num>>(S s, FutureOr<core::num>t) → asy::Future<core::num> /* originally async */ {
3838
final asy::_AsyncAwaitCompleter<core::num> :async_completer = new asy::_AsyncAwaitCompleter::•<core::num>();
39-
asy::FutureOr<core::num>? :return_value;
39+
FutureOr<core::num>? :return_value;
4040
dynamic :async_stack_trace;
4141
(dynamic) → dynamic :async_op_then;
4242
(core::Object, core::StackTrace) → dynamic :async_op_error;
@@ -70,9 +70,9 @@ static method test2(self::C<core::num?> c) → dynamic {
7070
return s + 1; // error
7171
^" in s.{core::num::+}(1);
7272
};
73-
<S extends asy::FutureOr<core::num?> = asy::FutureOr<core::num?>>(S, asy::FutureOr<core::num?>) → asy::Future<core::num> f2 = c.{self::C::field2} = <S extends asy::FutureOr<core::num?> = asy::FutureOr<core::num?>>(S s, asy::FutureOr<core::num?> t) → asy::Future<core::num> /* originally async */ {
73+
<S extends FutureOr<core::num?> = FutureOr<core::num?>>(S%, FutureOr<core::num?>) → asy::Future<core::num> f2 = c.{self::C::field2} = <S extends FutureOr<core::num?> = FutureOr<core::num?>>(S% s, FutureOr<core::num?>t) → asy::Future<core::num> /* originally async */ {
7474
final asy::_AsyncAwaitCompleter<core::num> :async_completer = new asy::_AsyncAwaitCompleter::•<core::num>();
75-
asy::FutureOr<core::num>? :return_value;
75+
FutureOr<core::num>? :return_value;
7676
dynamic :async_stack_trace;
7777
(dynamic) → dynamic :async_op_then;
7878
(core::Object, core::StackTrace) → dynamic :async_op_error;

pkg/front_end/testcases/nnbd/issue41697.dart.weak.expect

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,19 +21,19 @@ import "dart:async" as asy;
2121
import "dart:async";
2222

2323
typedef G<invariant T extends core::Object? = dynamic> = <S extends T% = dynamic>(S%) → void;
24-
typedef H<invariant T extends core::Object? = dynamic> = <S extends asy::FutureOr<T%> = dynamic>(S, asy::FutureOr<T%>) → void;
24+
typedef H<invariant T extends core::Object? = dynamic> = <S extends FutureOr<T%> = dynamic>(S%, FutureOr<T%>) → void;
2525
class C<T extends core::Object? = dynamic> extends core::Object {
2626
generic-covariant-impl field <S extends self::C::T% = dynamic>(S%) → void field1;
27-
generic-covariant-impl field <S extends asy::FutureOr<self::C::T%> = dynamic>(S, asy::FutureOr<self::C::T%>) → void field2;
28-
constructor •(<S extends self::C::T% = dynamic>(S%) → void field1, <S extends asy::FutureOr<self::C::T%> = dynamic>(S, asy::FutureOr<self::C::T%>) → void field2) → self::C<self::C::T%>
27+
generic-covariant-impl field <S extends FutureOr<self::C::T%> = dynamic>(S%, FutureOr<self::C::T%>) → void field2;
28+
constructor •(<S extends self::C::T% = dynamic>(S%) → void field1, <S extends FutureOr<self::C::T%> = dynamic>(S%, FutureOr<self::C::T%>) → void field2) → self::C<self::C::T%>
2929
: self::C::field1 = field1, self::C::field2 = field2, super core::Object::•()
3030
;
3131
}
3232
static method test1(self::C<core::num> c) → dynamic {
3333
<S extends core::num = core::num>(S) → core::num f1 = c.{self::C::field1} = <S extends core::num = core::num>(S s) → core::num {
3434
return s.{core::num::+}(1);
3535
};
36-
<S extends asy::FutureOr<core::num> = asy::FutureOr<core::num>>(S, asy::FutureOr<core::num>) → asy::Future<core::num> f2 = c.{self::C::field2} = <S extends asy::FutureOr<core::num> = asy::FutureOr<core::num>>(S s, asy::FutureOr<core::num> t) → asy::Future<core::num> async {
36+
<S extends FutureOr<core::num> = FutureOr<core::num>>(S, FutureOr<core::num>) → asy::Future<core::num> f2 = c.{self::C::field2} = <S extends FutureOr<core::num> = FutureOr<core::num>>(S s, FutureOr<core::num>t) → asy::Future<core::num> async {
3737
return (await t).{core::num::+}(1);
3838
};
3939
}
@@ -43,7 +43,7 @@ static method test2(self::C<core::num?> c) → dynamic {
4343
return s + 1; // error
4444
^" in s.{core::num::+}(1);
4545
};
46-
<S extends asy::FutureOr<core::num?> = asy::FutureOr<core::num?>>(S, asy::FutureOr<core::num?>) → asy::Future<core::num> f2 = c.{self::C::field2} = <S extends asy::FutureOr<core::num?> = asy::FutureOr<core::num?>>(S s, asy::FutureOr<core::num?> t) → asy::Future<core::num> async {
46+
<S extends FutureOr<core::num?> = FutureOr<core::num?>>(S%, FutureOr<core::num?>) → asy::Future<core::num> f2 = c.{self::C::field2} = <S extends FutureOr<core::num?> = FutureOr<core::num?>>(S% s, FutureOr<core::num?>t) → asy::Future<core::num> async {
4747
return let final<BottomType> #t2 = invalid-expression "pkg/front_end/testcases/nnbd/issue41697.dart:36:22: Error: Operator '+' cannot be called on 'num?' because it is potentially null.
4848
return (await t) + 1; // error
4949
^" in (await t).{core::num::+}(1);

pkg/front_end/testcases/nnbd/issue41697.dart.weak.transformed.expect

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -22,21 +22,21 @@ import "dart:_internal" as _in;
2222
import "dart:async";
2323

2424
typedef G<invariant T extends core::Object? = dynamic> = <S extends T% = dynamic>(S%) → void;
25-
typedef H<invariant T extends core::Object? = dynamic> = <S extends asy::FutureOr<T%> = dynamic>(S, asy::FutureOr<T%>) → void;
25+
typedef H<invariant T extends core::Object? = dynamic> = <S extends FutureOr<T%> = dynamic>(S%, FutureOr<T%>) → void;
2626
class C<T extends core::Object? = dynamic> extends core::Object {
2727
generic-covariant-impl field <S extends self::C::T% = dynamic>(S%) → void field1;
28-
generic-covariant-impl field <S extends asy::FutureOr<self::C::T%> = dynamic>(S, asy::FutureOr<self::C::T%>) → void field2;
29-
constructor •(<S extends self::C::T% = dynamic>(S%) → void field1, <S extends asy::FutureOr<self::C::T%> = dynamic>(S, asy::FutureOr<self::C::T%>) → void field2) → self::C<self::C::T%>
28+
generic-covariant-impl field <S extends FutureOr<self::C::T%> = dynamic>(S%, FutureOr<self::C::T%>) → void field2;
29+
constructor •(<S extends self::C::T% = dynamic>(S%) → void field1, <S extends FutureOr<self::C::T%> = dynamic>(S%, FutureOr<self::C::T%>) → void field2) → self::C<self::C::T%>
3030
: self::C::field1 = field1, self::C::field2 = field2, super core::Object::•()
3131
;
3232
}
3333
static method test1(self::C<core::num> c) → dynamic {
3434
<S extends core::num = core::num>(S) → core::num f1 = c.{self::C::field1} = <S extends core::num = core::num>(S s) → core::num {
3535
return s.{core::num::+}(1);
3636
};
37-
<S extends asy::FutureOr<core::num> = asy::FutureOr<core::num>>(S, asy::FutureOr<core::num>) → asy::Future<core::num> f2 = c.{self::C::field2} = <S extends asy::FutureOr<core::num> = asy::FutureOr<core::num>>(S s, asy::FutureOr<core::num> t) → asy::Future<core::num> /* originally async */ {
37+
<S extends FutureOr<core::num> = FutureOr<core::num>>(S, FutureOr<core::num>) → asy::Future<core::num> f2 = c.{self::C::field2} = <S extends FutureOr<core::num> = FutureOr<core::num>>(S s, FutureOr<core::num>t) → asy::Future<core::num> /* originally async */ {
3838
final asy::_AsyncAwaitCompleter<core::num> :async_completer = new asy::_AsyncAwaitCompleter::•<core::num>();
39-
asy::FutureOr<core::num>? :return_value;
39+
FutureOr<core::num>? :return_value;
4040
dynamic :async_stack_trace;
4141
(dynamic) → dynamic :async_op_then;
4242
(core::Object, core::StackTrace) → dynamic :async_op_error;
@@ -70,9 +70,9 @@ static method test2(self::C<core::num?> c) → dynamic {
7070
return s + 1; // error
7171
^" in s.{core::num::+}(1);
7272
};
73-
<S extends asy::FutureOr<core::num?> = asy::FutureOr<core::num?>>(S, asy::FutureOr<core::num?>) → asy::Future<core::num> f2 = c.{self::C::field2} = <S extends asy::FutureOr<core::num?> = asy::FutureOr<core::num?>>(S s, asy::FutureOr<core::num?> t) → asy::Future<core::num> /* originally async */ {
73+
<S extends FutureOr<core::num?> = FutureOr<core::num?>>(S%, FutureOr<core::num?>) → asy::Future<core::num> f2 = c.{self::C::field2} = <S extends FutureOr<core::num?> = FutureOr<core::num?>>(S% s, FutureOr<core::num?>t) → asy::Future<core::num> /* originally async */ {
7474
final asy::_AsyncAwaitCompleter<core::num> :async_completer = new asy::_AsyncAwaitCompleter::•<core::num>();
75-
asy::FutureOr<core::num>? :return_value;
75+
FutureOr<core::num>? :return_value;
7676
dynamic :async_stack_trace;
7777
(dynamic) → dynamic :async_op_then;
7878
(core::Object, core::StackTrace) → dynamic :async_op_error;

0 commit comments

Comments
 (0)