library;
import self as self;
import "dart:core" as core;

static method bar(core::int a, core::List<core::int?>? b) → dynamic {
  self::expect(1.{core::int::unary-}(){() → core::int}, a);
  self::expect(1.{core::int::unary-}(){() → core::int}, b!.{core::List::[]}(0){(core::int) → core::int?}!.{core::num::-}(2){(core::num) → core::int});
}
static method foo(core::int x) → dynamic async /* emittedValueType= dynamic */ 
  return self::bar(x.{core::num::-}(1){(core::num) → core::int}, !(x == null) ?{core::List<core::int?>?} <core::int?>[x.{core::num::+}(1){(core::num) → core::int}, x.{core::num::+}(2){(core::num) → core::int}, await null /* runtimeCheckType= dart.async::Future<Null> */ ] : null);
static method main() → void async /* emittedValueType= void */ 
  return await self::foo(0) /* runtimeCheckType= dart.async::Future<dynamic> */ ;
static method expect(dynamic expected, dynamic actual) → dynamic {
  if(!(expected =={core::Object::==}{(core::Object) → core::bool} actual))
    throw "Expected ${expected}, actual ${actual}";
}
