main = <No Member>;
library from "org-dartlang-test:///a.dart" as a {

  import "package:moduleB/b.dart";

  static field dart.core::int* foo = b::bVar;
  static field dart.core::String* foo2 = b::bVarFromC;
}
library from "package:moduleB/b.dart" as b {

  import "package:moduleC/c.dart";

  class A2 extends c::A3 {
    field dart.core::int* bar = 42;
    synthetic constructor •() → b::A2*
      : super c::A3::•()
      ;
  }
  static field dart.core::int* bVar = 42;
  static field dart.core::String* bVarFromC = c::baz2;
  static field b::A2* mya2 = new b::A2::•();
}
library from "package:moduleC/c.dart" as c {

  import "package:moduleD/d.dart";

  class A3 extends dart.core::Object {
    field dart.core::int* foo = 42;
    synthetic constructor •() → c::A3*
      : super dart.core::Object::•()
      ;
  }
  static field dart.core::String* baz = "42";
  static field dart.core::String* baz2 = d::baz3;
}
library from "package:moduleD/d.dart" as d {

  static field dart.core::String* baz3 = "baz3";
}
