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

class C extends core::Object {
  static final field (core::bool*) →* (core::int*) →* core::Map<core::int*, core::bool*>* f = (core::bool* b) → (core::int*) →* core::Map<core::int*, core::bool*>* => (core::int* i) → core::Map<core::int*, core::bool*>* => <core::int*, core::bool*>{i: b};
  synthetic constructor •() → self::C*
    : super core::Object::•()
    ;
}
static method main() → dynamic {}
