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

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

class B extends core::Object {
  static field dynamic y = inf::A::x;
  synthetic constructor •() → self::B
    : super core::Object::•()
    ;
}
static method test1() → dynamic {
  inf::A::x = "hi";
  self::B::y = "hi";
}
static method main() → dynamic {}

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

class A extends core::Object {
  static field dynamic x = 2;
  synthetic constructor •() → inf::A
    : super core::Object::•()
    ;
}
static method main() → dynamic {}
