library;
//
// Problems in library:
//
// pkg/front_end/testcases/rasta/super.dart:27:7: Error: 'n' is already declared in this scope.
//   set n(_) {}
//       ^
// pkg/front_end/testcases/rasta/super.dart:26:8: Context: Previous declaration of 'n'.
//   void n() {}
//        ^
//
import self as self;
import "dart:core" as core;

class A extends core::Object {
  field dynamic a;
  field dynamic b;
  field dynamic c;
  field dynamic d;
  final field dynamic f;
  synthetic constructor •() → self::A*
    ;
  get e() → dynamic
    ;
  set g(dynamic _) → void
    ;
  get h() → dynamic
    ;
  set h(dynamic _) → void
    ;
  get i() → dynamic
    ;
  operator [](dynamic _) → dynamic
    ;
  operator []=(dynamic a, dynamic b) → void
    ;
  operator ~() → dynamic
    ;
  operator unary-() → dynamic
    ;
  operator ==(dynamic other) → core::bool*
    ;
  method m() → void
    ;
  method n() → void
    ;
  set n(dynamic _) → void
    ;
}
class B extends self::A {
  final field dynamic d;
  synthetic constructor •() → self::B*
    ;
  get b() → dynamic
    ;
  set c(dynamic x) → void
    ;
  set i(dynamic x) → void
    ;
}
class C extends self::B {
  synthetic constructor •() → self::C*
    ;
  method test() → dynamic
    ;
}
static method use(dynamic x) → dynamic
  ;
static method main() → dynamic
  ;
