library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "infer_statics_with_method_invocations_a.dart" as inf;

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

class T extends core::Object {
  static final field self::T foo = self::T::m1(self::T::m2(inf::m3("", "")));
  synthetic constructor •() → self::T
    : super core::Object::•()
    ;
  static method m1(core::String m) → self::T {
    return throw "";
  }
  static method m2(dynamic e) → core::String {
    return "";
  }
}
static method main() → dynamic {}

library /*isNonNullableByDefault*/;
import self as inf;
import "dart:core" as core;

static method m3(core::String a, core::String b, [dynamic a1 = #C1, dynamic a2 = #C1]) → dynamic {}
static method main() → dynamic {}

constants  {
  #C1 = null
}
