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

typedef F = () →* core::int*;
abstract class A extends core::Object {
  synthetic constructor •() → self::A*
    ;
  abstract set x(() →* core::int* value) → void;
}
abstract class B extends self::A {
  synthetic constructor •() → self::B*
    ;
  abstract set x(() →* dynamic value) → void;
}
static method f<T extends core::Object* = dynamic>() → self::f::T*
  ;
static method g(self::B* b) → dynamic
  ;
static method main() → dynamic
  ;
