library test /*isNonNullableByDefault*/;
import self as self;
import "dart:async" as asy;
import "dart:core" as core;
import "dart:math" as math;

import "dart:async";
import "dart:math" show Random;

static method test() → dynamic {
  () → asy::Future<core::num> f = () → asy::Future<core::num> async /* futureValueType= core::num */ {
    if(math::Random::•().{math::Random::nextBool}(){() → core::bool}) {
      return asy::Future::value<core::int>(1);
    }
    else {
      return asy::Future::value<core::double>(2.0);
    }
  };
  asy::Future<core::num> g = f(){() → asy::Future<core::num>};
}
static method main() → dynamic {}
