Skip to content

Dart throws a compile error when async function with Future<bool> return type returns dynamic. #42236

Closed
@iarkh

Description

@iarkh

Dart VM version: 2.9.0-13.0.dev (dev) (Fri May 29 15:59:05 2020 +0200) on "windows_x64"

This issue is related with SDK Issues #41266, #41437, as well as with co19 issues 603 and 703.

Seems like after the 941 the following code should not throw compile error:

import "dart:async";
dynamic getNull() => null;
Future<bool> test1() async => await getNull();
main() {}

However, still dart behave in such a way.

Sample output is:

$> dart --enable-experiment=non-nullable test.dart
test.dart:3:31: Error: A value of type 'Future<dynamic>' can't be assigned to a variable of type 'FutureOr<bool>'.

  • 'Future' is from 'dart:async'.
  • 'FutureOr' is from 'dart:async'.
    Future<bool> test1() async => await getNull();

Metadata

Metadata

Assignees

No one assigned

    Labels

    legacy-area-front-endLegacy: Use area-dart-model instead.type-bugIncorrect behavior (everything from a crash to more subtle misbehavior)

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions