// Formatted problems:
//
// pkg/front_end/testcases/inference/circular_method_inference.dart:12:16: Error: 'A' is a supertype of itself via 'B'.
// abstract class A extends B {
//                ^
//
// pkg/front_end/testcases/inference/circular_method_inference.dart:16:16: Error: 'B' is a supertype of itself via 'A'.
// abstract class B extends A {
//                ^

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

abstract class A extends core::Object {
  synthetic constructor •() → self::A
    ;
  abstract method f(dynamic x) → dynamic;
}
abstract class B extends core::Object {
  synthetic constructor •() → self::B
    ;
  abstract method f(dynamic x) → dynamic;
}
static method main() → dynamic
  ;
