library test.mixin_library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;

class Mixin<T extends core::Object? = dynamic> extends core::Object {
  field dynamic x;
  field dynamic y;
  field dynamic z;
  covariant-by-class field self::Mixin::T? t;
  synthetic constructor •() → self::Mixin<self::Mixin::T%>
    ;
  method foo() → dynamic
    ;
  method g(covariant-by-class self::Mixin::T% a) → self::Mixin::T?
    ;
  method h() → dynamic
    ;
  method l() → dynamic
    ;
  method _privateMethod() → dynamic
    ;
  method publicMethod() → dynamic
    ;
}
static method f() → dynamic
  ;
static method V() → dynamic
  ;
static method _private() → dynamic
  ;
static method foo(dynamic m) → dynamic
  ;
