library;
import self as self;
import "dart:core" as core;
import "issue40512_lib.dart" as baz2;

import "org-dartlang-testcase:///issue40512_lib.dart";

abstract class _C&Object&A = core::Object with baz2::A /*isAnonymousMixin,hasConstConstructor*/  {
  const synthetic constructor •() → self::_C&Object&A*
    : super core::Object::•()
    ;
}
abstract class _C&Object&A&B = self::_C&Object&A with baz2::B /*isAnonymousMixin,hasConstConstructor*/  {
  const synthetic constructor •() → self::_C&Object&A&B*
    : super self::_C&Object&A::•()
    ;
}
class C extends self::_C&Object&A&B {
  synthetic constructor •() → self::C*
    ;
}
static method main() → void
  ;

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

abstract class A extends core::Object /*isMixinDeclaration*/  {
  method toString({core::String* s = "hello"}) → core::String*
    ;
}
class B extends core::Object {
  synthetic constructor •() → baz2::B*
    ;
}
