library test;
import self as self;
import "dart:core" as core;
import "./infer_statics_transitively_a.dart" as inf;

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

static final field dynamic m1 = inf::a1;
static final field dynamic m2 = inf::A::a2;
static method foo() → dynamic {
  core::int i;
  i = self::m1;
}
static method main() → dynamic {}

library;
import self as inf;
import "dart:core" as core;
import "./infer_statics_transitively_b.dart" as inf2;
import "./infer_statics_transitively.dart" as self;

import "org-dartlang-testcase:///infer_statics_transitively.dart";
import "org-dartlang-testcase:///infer_statics_transitively_b.dart";

class A extends core::Object {
  static final field dynamic a2 = inf2::b1;
  synthetic constructor •() → inf::A
    : super core::Object::•()
    ;
}
static final field dynamic a1 = self::m2;
static method main() → dynamic {}

library;
import self as inf2;

static final field dynamic b1 = 2;
static method main() → dynamic {
  inf2::b1;
}
