| Index: pkg/analyzer/test/src/task/strong/inferred_type_test.dart
|
| diff --git a/pkg/analyzer/test/src/task/strong/inferred_type_test.dart b/pkg/analyzer/test/src/task/strong/inferred_type_test.dart
|
| index 97054d588f17fd25c0cb79d9f635704cc90fffd7..541e75f7ffebee02321c0689812d6c4efa11c630 100644
|
| --- a/pkg/analyzer/test/src/task/strong/inferred_type_test.dart
|
| +++ b/pkg/analyzer/test/src/task/strong/inferred_type_test.dart
|
| @@ -61,6 +61,24 @@ var g = () async => futureInt;
|
| expect(f.type.toString(), '() → Future<int>');
|
| }
|
|
|
| + void test_asyncClosureReturnType_futureOr() {
|
| + var mainUnit = checkFile('''
|
| +import 'dart:async';
|
| +FutureOr<int> futureOrInt = null;
|
| +var f = () => futureOrInt;
|
| +var g = () async => futureOrInt;
|
| +''');
|
| + var futureOrInt = mainUnit.topLevelVariables[0];
|
| + expect(futureOrInt.name, 'futureOrInt');
|
| + expect(futureOrInt.type.toString(), 'FutureOr<int>');
|
| + var f = mainUnit.topLevelVariables[1];
|
| + expect(f.name, 'f');
|
| + expect(f.type.toString(), '() → FutureOr<int>');
|
| + var g = mainUnit.topLevelVariables[2];
|
| + expect(g.name, 'g');
|
| + expect(g.type.toString(), '() → Future<int>');
|
| + }
|
| +
|
| void test_blockBodiedLambdas_async_allReturnsAreFutures() {
|
| if (!mayCheckTypesOfLocals) {
|
| return;
|
| @@ -1665,6 +1683,19 @@ int get y => null;
|
| expect(x.type.toString(), 'int');
|
| }
|
|
|
| + void test_futureOr_subtyping() {
|
| + checkFile(r'''
|
| +import 'dart:async';
|
| +void add(int x) {}
|
| +add2(int y) {}
|
| +main() {
|
| + Future<int> f;
|
| + var a = f.then(add);
|
| + var b = f.then(add2);
|
| +}
|
| + ''');
|
| + }
|
| +
|
| void test_futureThen() {
|
| String build({String declared, String downwards, String upwards}) => '''
|
| import 'dart:async';
|
| @@ -1855,19 +1886,6 @@ main() {
|
| ''');
|
| }
|
|
|
| - void test_futureOr_subtyping() {
|
| - checkFile(r'''
|
| -import 'dart:async';
|
| -void add(int x) {}
|
| -add2(int y) {}
|
| -main() {
|
| - Future<int> f;
|
| - var a = f.then(add);
|
| - var b = f.then(add2);
|
| -}
|
| - ''');
|
| - }
|
| -
|
| void test_futureUnion_asyncConditional() {
|
| String build({String declared, String downwards, String upwards}) => '''
|
| import 'dart:async';
|
|
|