library test;
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 null;
  }
  static method m2(dynamic e) → core::String {
    return "";
  }
}
static method main() → dynamic {}

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

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