|  | library; | 
|  | // | 
|  | // Problems in library: | 
|  | // | 
|  | // pkg/front_end/testcases/super_parameters/circular_dependency_inference.dart:17:7: Error: Can't infer the type of 'foo': circularity found during type inference. | 
|  | // Specify the type explicitly. | 
|  | //   var foo = B2.new; // Error. | 
|  | //       ^^^ | 
|  | // | 
|  | // pkg/front_end/testcases/super_parameters/circular_dependency_inference.dart:26:7: Error: Can't infer the type of 'foo': circularity found during type inference. | 
|  | // Specify the type explicitly. | 
|  | //   var foo = C3.new; // Error. | 
|  | //       ^^^ | 
|  | // | 
|  | import self as self; | 
|  | import "dart:core" as core; | 
|  |  | 
|  | class A1 extends core::Object { | 
|  | field self::B1 foo = self::f1(); | 
|  | constructor •(self::B1 foo) → self::A1 | 
|  | : self::A1::foo = foo, super core::Object::•() | 
|  | ; | 
|  | } | 
|  | class B1 extends self::A1 { | 
|  | constructor •(self::B1 foo) → self::B1 | 
|  | : super self::A1::•(foo) | 
|  | ; | 
|  | } | 
|  | class A2 extends core::Object { | 
|  | field invalid-type foo = #C1; | 
|  | constructor •(invalid-type foo) → self::A2 | 
|  | : self::A2::foo = foo, super core::Object::•() | 
|  | ; | 
|  | } | 
|  | class B2 extends self::A2 { | 
|  | constructor •(invalid-type foo) → self::B2 | 
|  | : super self::A2::•(foo) | 
|  | ; | 
|  | } | 
|  | class A3 extends core::Object { | 
|  | field invalid-type foo = #C2; | 
|  | constructor •() → self::A3 | 
|  | : super core::Object::•() | 
|  | ; | 
|  | constructor initializeFoo(invalid-type foo) → self::A3 | 
|  | : self::A3::foo = foo, super core::Object::•() | 
|  | ; | 
|  | } | 
|  | class B3 extends self::A3 { | 
|  | field (invalid-type) → self::A3 bar = #C3; | 
|  | constructor •((invalid-type) → self::A3 bar) → self::B3 | 
|  | : self::B3::bar = bar, super self::A3::•() | 
|  | ; | 
|  | } | 
|  | class C3 extends self::B3 { | 
|  | constructor •((invalid-type) → self::A3 bar) → self::C3 | 
|  | : super self::B3::•(bar) | 
|  | ; | 
|  | } | 
|  | static method f1() → self::B1 | 
|  | return throw 42; | 
|  | static method main() → dynamic {} | 
|  |  | 
|  | constants  { | 
|  | #C1 = constructor-tearoff self::B2::• | 
|  | #C2 = constructor-tearoff self::C3::• | 
|  | #C3 = constructor-tearoff self::A3::initializeFoo | 
|  | } |