blob: 3722f25e49d6d8fc11c59b000c4486d484278c57 [file] [log] [blame]
// 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 In legacy mode, an override of operator== with no explicit
/// parameter type inherits the parameter type of the overridden method if any
/// override of operator== between the overriding method and Object.== has an
/// explicit parameter type. Otherwise, the parameter type of the overriding
/// method is dynamic.
///
/// @description Checks that in legacy mode, an override of operator== with no
/// explicit parameter type inherits the parameter type of the overridden method
/// if any override of operator== between the overriding method and Object.== has
/// an explicit parameter type
/// @author sgrekhov@unipro.ru
/// @issue 41283
// Requirements=nnbd-strong
class A {
bool operator ==(covariant A other) => true;
}
class C extends A {
bool operator ==(other) => true;
}
main() {
C c = new C();
A a = new A();
c == a;
c == "c";
// ^^^
// [analyzer] unspecified
// [cfe] unspecified
}