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

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

static const field core::int m1 = inf::a1;
static const field core::int m2 = inf::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_consts_transitively_2.dart" as self;
import "./infer_consts_transitively_2_b.dart" as inf2;

import "org-dartlang-testcase:///infer_consts_transitively_2.dart";
import "org-dartlang-testcase:///infer_consts_transitively_2_b.dart";

static const field core::int a1 = self::m2;
static const field core::int a2 = inf2::b1;
static method main() → dynamic {}

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

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