| Index: pkg/analysis_server/test/services/refactoring/inline_method_test.dart
|
| diff --git a/pkg/analysis_server/test/services/refactoring/inline_method_test.dart b/pkg/analysis_server/test/services/refactoring/inline_method_test.dart
|
| index 7c35f5ead856c57707912f2540e97f73cf48eca0..bc1d29c381078a2033a8c8fd013ca4d5af6691ff 100644
|
| --- a/pkg/analysis_server/test/services/refactoring/inline_method_test.dart
|
| +++ b/pkg/analysis_server/test/services/refactoring/inline_method_test.dart
|
| @@ -66,6 +66,56 @@ class A {
|
| expect(refactoring.isDeclaration, isTrue);
|
| }
|
|
|
| + test_bad_async_intoSyncStar() {
|
| + indexTestUnit(r'''
|
| +import 'dart:async';
|
| +class A {
|
| + Future<int> get test async => 42;
|
| + Iterable<Future<int>> foo() sync* {
|
| + yield test;
|
| + }
|
| +}
|
| +''');
|
| + _createRefactoring('test async');
|
| + // error
|
| + return _assertConditionsFatal('Cannot inline async into sync*.');
|
| + }
|
| +
|
| + test_bad_async_targetIsSync_doesNotReturnFuture() {
|
| + indexTestUnit(r'''
|
| +import 'dart:async';
|
| +class A {
|
| + Future<int> get test async => 42;
|
| + double foo() {
|
| + test;
|
| + return 1.2;
|
| + }
|
| +}
|
| +''');
|
| + _createRefactoring('test async');
|
| + // error
|
| + return _assertConditionsFatal(
|
| + 'Cannot inline async into a function that does not return a Future.');
|
| + }
|
| +
|
| + test_bad_asyncStar() {
|
| + indexTestUnit(r'''
|
| +import 'dart:async';
|
| +class A {
|
| + Stream<int> test() async* {
|
| + yield 1;
|
| + yield 2;
|
| + }
|
| + foo() {
|
| + test();
|
| + }
|
| +}
|
| +''');
|
| + _createRefactoring('test() async*');
|
| + // error
|
| + return _assertConditionsFatal('Cannot inline a generator.');
|
| + }
|
| +
|
| test_bad_cascadeInvocation() async {
|
| indexTestUnit(r'''
|
| class A {
|
| @@ -711,6 +761,100 @@ main() {
|
| ''');
|
| }
|
|
|
| + test_getter_async_targetIsAsync() {
|
| + indexTestUnit(r'''
|
| +import 'dart:async';
|
| +class A {
|
| + Future<int> get test async => 42;
|
| + Future<int> foo() async {
|
| + return test;
|
| + }
|
| +}
|
| +''');
|
| + _createRefactoring('test async');
|
| + // validate change
|
| + return _assertSuccessfulRefactoring(r'''
|
| +import 'dart:async';
|
| +class A {
|
| + Future<int> foo() async {
|
| + return 42;
|
| + }
|
| +}
|
| +''');
|
| + }
|
| +
|
| + test_getter_async_targetIsAsyncStar() {
|
| + indexTestUnit(r'''
|
| +import 'dart:async';
|
| +class A {
|
| + Future<int> get test async => 42;
|
| + Stream<int> foo() async {
|
| + return await test;
|
| + }
|
| +}
|
| +''');
|
| + _createRefactoring('test async');
|
| + // validate change
|
| + return _assertSuccessfulRefactoring(r'''
|
| +import 'dart:async';
|
| +class A {
|
| + Stream<int> foo() async {
|
| + return await 42;
|
| + }
|
| +}
|
| +''');
|
| + }
|
| +
|
| + test_getter_async_targetIsSync() {
|
| + indexTestUnit(r'''
|
| +import 'dart:async';
|
| +class A {
|
| + Future<int> get test async => 42;
|
| + Future<int> foo() {
|
| + return test;
|
| + }
|
| +}
|
| +''');
|
| + _createRefactoring('test async');
|
| + // validate change
|
| + return _assertSuccessfulRefactoring(r'''
|
| +import 'dart:async';
|
| +class A {
|
| + Future<int> foo() async {
|
| + return 42;
|
| + }
|
| +}
|
| +''');
|
| + }
|
| +
|
| + test_getter_async_targetIsSync2() {
|
| + indexTestUnit(r'''
|
| +import 'dart:async';
|
| +class A {
|
| + Future<int> get test async => 42;
|
| + Future<int> foo1() {
|
| + return test;
|
| + }
|
| + Future<int> foo2() {
|
| + return test;
|
| + }
|
| +}
|
| +''');
|
| + _createRefactoring('test async');
|
| + // validate change
|
| + return _assertSuccessfulRefactoring(r'''
|
| +import 'dart:async';
|
| +class A {
|
| + Future<int> foo1() async {
|
| + return 42;
|
| + }
|
| + Future<int> foo2() async {
|
| + return 42;
|
| + }
|
| +}
|
| +''');
|
| + }
|
| +
|
| test_getter_classMember_instance() {
|
| indexTestUnit(r'''
|
| class A {
|
| @@ -803,6 +947,50 @@ main() {
|
| expect(refactoring.inlineAll, false);
|
| }
|
|
|
| + test_method_async() {
|
| + indexTestUnit(r'''
|
| +import 'dart:async';
|
| +class A {
|
| + Future<int> test() async => 42;
|
| + Future<int> foo() {
|
| + return test();
|
| + }
|
| +}
|
| +''');
|
| + _createRefactoring('test() async');
|
| + // validate change
|
| + return _assertSuccessfulRefactoring(r'''
|
| +import 'dart:async';
|
| +class A {
|
| + Future<int> foo() async {
|
| + return 42;
|
| + }
|
| +}
|
| +''');
|
| + }
|
| +
|
| + test_method_async2() {
|
| + indexTestUnit(r'''
|
| +import 'dart:async';
|
| +class A {
|
| + Future<int> test() async => 42;
|
| + Future foo() {
|
| + return [test(), test()];
|
| + }
|
| +}
|
| +''');
|
| + _createRefactoring('test() async');
|
| + // validate change
|
| + return _assertSuccessfulRefactoring(r'''
|
| +import 'dart:async';
|
| +class A {
|
| + Future foo() async {
|
| + return [42, 42];
|
| + }
|
| +}
|
| +''');
|
| + }
|
| +
|
| test_method_emptyBody() {
|
| indexTestUnit(r'''
|
| abstract class A {
|
|
|