// Errors:
//
// pkg/front_end/testcases/regress/issue_34225.dart:6:14: Error: A class member can't have the same name as the enclosing class.
//   static set C(v) {} //# 01: compile-time error
//              ^
//
// pkg/front_end/testcases/regress/issue_34225.dart:10:7: Error: A class member can't have the same name as the enclosing class.
//   set D(v) {} //# 02: compile-time error
//       ^

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

class C extends core::Object {
  synthetic constructor •() → void
    : super core::Object::•()
    ;
  static set C(dynamic v) → void {}
}
class D extends core::Object {
  synthetic constructor •() → void
    : super core::Object::•()
    ;
  set D(dynamic v) → void {}
}
static method main() → dynamic {
  self::C c = new self::C::•();
  let final self::C #t1 = c in let<BottomType> _ = null in invalid-expression "pkg/front_end/testcases/regress/issue_34225.dart:15:5: Error: The setter 'C' isn't defined for the class '#lib1::C'.
Try correcting the name to the name of an existing setter, or defining a setter or field named 'C'.
  c.C = 5;
    ^";
  self::D d = new self::D::•();
  d.{self::D::D} = 5;
}
