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 core::int* t1 = 1;
static const field core::int* t2 = self::t1;
static const field core::int* t3 = inf::a1;
static const field core::int* t4 = inf::a2;
static const field dynamic t5 = inf::A::a3;
static const field dynamic t6 = inf::A::a3;
static method foo() → dynamic
  ;
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*
    ;
}
static const field core::int* a1 = 3;
static const field core::int* a2 = 4;
static method main() → dynamic
  ;
