library;
//
// Problems in library:
//
// pkg/front_end/testcases/general/issue49254.dart:10:7: Error: Can't infer the type of 'bar': circularity found during type inference.
// Specify the type explicitly.
//   var bar = A3.initializeFoo; // Error.
//       ^^^
//
import self as self;
import "dart:core" as core;

class C3 extends self::B3 {
  constructor •(invalid-type bar) → self::C3
    : super self::B3::•(bar)
    ;
}
class B3 extends self::A3 {
  field invalid-type bar = #C1;
  constructor •(invalid-type bar) → self::B3
    : self::B3::bar = bar, super self::A3::•()
    ;
}
class A3 extends core::Object {
  field (invalid-type) → self::C3 foo = #C2;
  constructor •() → self::A3
    : super core::Object::•()
    ;
  constructor initializeFoo((invalid-type) → self::C3 foo) → self::A3
    : self::A3::foo = foo, super core::Object::•()
    ;
}

constants  {
  #C1 = constructor-tearoff self::A3::initializeFoo
  #C2 = constructor-tearoff self::C3::•
}
