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

class C<T extends core::Object = dynamic> extends core::Object {
  synthetic constructor •() → void
    : super core::Object::•()
    ;
  method f<U extends self::C::T = dynamic>(self::C::f::U x) → void {}
  method g1<U extends self::C::T = dynamic>() → void {
    this.{self::C::f}<self::C::g1::U>(1.5);
  }
}
static method g2(self::C<core::Object> c) → void {
  c.f<core::num>(1.5);
}
static method test() → void {
  new self::C::•<core::int>().g1<core::num>();
  self::g2(new self::C::•<core::int>());
}
static method main() → void {}
