| Index: pkg/analyzer/lib/src/generated/error_verifier.dart
|
| diff --git a/pkg/analyzer/lib/src/generated/error_verifier.dart b/pkg/analyzer/lib/src/generated/error_verifier.dart
|
| index 389a025040c6f690cdcf0b3954da4f9ff1008b6a..f85c6fd060c12fc64155b9eb9b88340053d59253 100644
|
| --- a/pkg/analyzer/lib/src/generated/error_verifier.dart
|
| +++ b/pkg/analyzer/lib/src/generated/error_verifier.dart
|
| @@ -3455,14 +3455,27 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> {
|
| }
|
| if (_enclosingFunction.isAsynchronous) {
|
| if (_enclosingFunction.isGenerator) {
|
| - if (!_typeSystem.isAssignableTo(
|
| + if (_options.strongMode) {
|
| + if (_enclosingFunction.returnType.element !=
|
| + _typeProvider.streamType.element) {
|
| + _errorReporter.reportErrorForNode(
|
| + StaticTypeWarningCode.ILLEGAL_ASYNC_GENERATOR_RETURN_TYPE,
|
| + returnType);
|
| + }
|
| + } else if (!_typeSystem.isAssignableTo(
|
| _enclosingFunction.returnType, _typeProvider.streamDynamicType)) {
|
| _errorReporter.reportErrorForNode(
|
| StaticTypeWarningCode.ILLEGAL_ASYNC_GENERATOR_RETURN_TYPE,
|
| returnType);
|
| }
|
| } else {
|
| - if (!_typeSystem.isAssignableTo(
|
| + if (_options.strongMode) {
|
| + if (_enclosingFunction.returnType.element !=
|
| + _typeProvider.futureType.element) {
|
| + _errorReporter.reportErrorForNode(
|
| + StaticTypeWarningCode.ILLEGAL_ASYNC_RETURN_TYPE, returnType);
|
| + }
|
| + } else if (!_typeSystem.isAssignableTo(
|
| _enclosingFunction.returnType, _typeProvider.futureDynamicType)) {
|
| _errorReporter.reportErrorForNode(
|
| StaticTypeWarningCode.ILLEGAL_ASYNC_RETURN_TYPE, returnType);
|
|
|