library test;
//
// Problems in library:
//
// pkg/front_end/testcases/inference_new/dependency_only_if_generic_method.dart:18:5: Error: Can't infer the type of 'b': circularity found during type inference.
// Specify the type explicitly.
// var b = /*@ returnType=() ->* invalid-type */ () =>
//     ^
//
import self as self;
import "dart:core" as core;

class A extends core::Object {
  synthetic constructor •() → self::A*
    ;
  method f<T extends core::Object* = dynamic>(self::A::f::T* t) → self::A::f::T*
    ;
  method g(dynamic i) → core::int*
    ;
}
static field self::A* a;
static field invalid-type b;
static field () →* invalid-type c;
static field () →* () →* core::int* d;
static field () →* core::int* e;
static method main() → dynamic
  ;
