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

class A extends core::Object {
  synthetic constructor •() → self::A*
    : super core::Object::•()
    ;
  method foo() → dynamic
    return null;
}
static method main() → dynamic {
  function bar<T extends self::A* = self::A*>(T* t) → void {
    core::print("t.foo()=${t.{self::A::foo}()}");
  }
  bar.call<self::A*>(new self::A::•());
  (<S extends self::A* = self::A*>(S* s) → core::Null* {
    core::print("s.foo()=${s.{self::A::foo}()}");
  }).call<self::A*>(new self::A::•());
}
