// Copyright (c) 2020, the Dart project authors.  Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.

/// @assertion It is an error if a class has a setter and a getter with the same
/// basename where the return type of the getter is not a subtype of the argument
/// type of the setter. Note that this error specifically requires subtyping and
/// not assignability and hence makes no exception for dynamic.
///
/// @description Check that it is an error if a class has a setter and a getter
/// with the same basename where the return type of the getter is not a subtype
/// of the argument type of the setter
/// @author sgrekhov@unipro.ru
/// @issue 40333
/// @issue 40945


class C {
  void set test(int v) {}
  num get test => 3.14;
//^^^
// [analyzer] unspecified
// [cfe] unspecified
}

main() {
  C c = new C();
  c.test = 1;
  c.test;
}
