| Index: pkg/analyzer/lib/src/task/strong/checker.dart
|
| diff --git a/pkg/analyzer/lib/src/task/strong/checker.dart b/pkg/analyzer/lib/src/task/strong/checker.dart
|
| index 783cdf0b0e8711178ac09413926a314e8ba54c80..7e00395e52b5b1bc96f2a7d8300094b14bdd3d80 100644
|
| --- a/pkg/analyzer/lib/src/task/strong/checker.dart
|
| +++ b/pkg/analyzer/lib/src/task/strong/checker.dart
|
| @@ -720,14 +720,6 @@ class CodeChecker extends RecursiveAstVisitor {
|
| // analyzer error in this case.
|
| return;
|
| }
|
| - InterfaceType futureType = typeProvider.futureType;
|
| - DartType actualType = expression?.staticType;
|
| - if (body.isAsynchronous &&
|
| - !body.isGenerator &&
|
| - actualType is InterfaceType &&
|
| - actualType.element == futureType.element) {
|
| - type = futureType.instantiate([type]);
|
| - }
|
| // TODO(vsm): Enforce void or dynamic (to void?) when expression is null.
|
| if (expression != null) checkAssignment(expression, type);
|
| }
|
| @@ -858,9 +850,9 @@ class CodeChecker extends RecursiveAstVisitor {
|
| // Stream<T> -> T
|
| expectedType = typeProvider.streamType;
|
| } else {
|
| - // Future<T> -> T
|
| - // TODO(vsm): Revisit with issue #228.
|
| - expectedType = typeProvider.futureType;
|
| + // Don't validate return type of async methods.
|
| + // They're handled by the runtime implementation.
|
| + return null;
|
| }
|
| } else {
|
| if (body.isGenerator) {
|
|
|