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

class Foo<T extends self::Foo<self::Foo::T>* = dynamic> extends core::Object {
  synthetic constructor •() → self::Foo<self::Foo::T*>*
    : super core::Object::•()
    ;
}
abstract class Bar extends core::Object {
  synthetic constructor •() → self::Bar*
    : super core::Object::•()
    ;
  abstract method fisk<S extends self::Foo<self::Bar::fisk::S>* = dynamic>() → void;
}
class Hest extends core::Object implements self::Bar {
  synthetic constructor •() → self::Hest*
    : super core::Object::•()
    ;
  @#C1
  method fisk<U extends self::Foo<self::Hest::fisk::U>* = dynamic>() → void {}
}
static method main() → void {}

constants  {
  #C1 = core::_Override {}
}
