| Index: pkg/analyzer/lib/src/generated/static_type_analyzer.dart
|
| diff --git a/pkg/analyzer/lib/src/generated/static_type_analyzer.dart b/pkg/analyzer/lib/src/generated/static_type_analyzer.dart
|
| index ff88128b907fa5ce74f163dc6047eac65a790e32..5cf1c87b7260dfa160c34e90d9a04f0b0c179c47 100644
|
| --- a/pkg/analyzer/lib/src/generated/static_type_analyzer.dart
|
| +++ b/pkg/analyzer/lib/src/generated/static_type_analyzer.dart
|
| @@ -1391,10 +1391,18 @@ class StaticTypeAnalyzer extends SimpleAstVisitor<Object> {
|
| DartType
|
| _computeStaticReturnTypeOfFunctionExpression(FunctionExpression node) {
|
| FunctionBody body = node.body;
|
| + DartType type;
|
| if (body is ExpressionFunctionBody) {
|
| - return _getStaticType(body.expression);
|
| + type = _getStaticType(body.expression);
|
| + } else {
|
| + type = _dynamicType;
|
| + }
|
| + // TODO(paulberry): also handle generator functions.
|
| + if (body.isAsynchronous) {
|
| + return _typeProvider.futureType.substitute4(<DartType>[type]);
|
| + } else {
|
| + return type;
|
| }
|
| - return _dynamicType;
|
| }
|
|
|
| /**
|
|
|