library test /*isNonNullableByDefault*/;
//
// 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=() -> dynamic*/ () =>
//     ^
//
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 () → dynamic c;
static field () → () → core::int d;
static field () → core::int e;
static method main() → dynamic
  ;
