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

import "org-dartlang-testcase:///infer_statics_transitively3_a.dart";
import "org-dartlang-testcase:///infer_statics_transitively3_a.dart" as p;

static const field dynamic t1 = 1;
static const field dynamic t2 = self::t1;
static const field dynamic t3 = inf::a1;
static const field dynamic t4 = inf::a2;
static const field dynamic t5 = inf::A::a3;
static const field dynamic t6 = inf::A::a3;
static method foo() → dynamic {
  core::int i;
  i = self::t1;
  i = self::t2;
  i = self::t3;
  i = self::t4;
}
static method main() → dynamic {}

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

class A extends core::Object {
  static const field dynamic a3 = null;
  synthetic constructor •() → inf::A
    : super core::Object::•()
    ;
}
static const field dynamic a1 = 3;
static const field dynamic a2 = 4;
static method main() → dynamic {}
