// Copyright (c) 2018, 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. // @dart = 2.7 // dart2jsOptions=--strong import 'package:expect/expect.dart'; class Class1a { Class1a(); bool operator ==(other) { if (identical(this, other)) return true; return other?.runtimeType == runtimeType; } } class Class1b extends Class1a { Class1b(); } class Class1c implements Class1a { Class1c(); } class Class2 { Class2(); } main() { Class1a cls1a = new Class1a(); Class1a cls1b1 = new Class1b(); Class1a cls1b2 = new Class1b(); Class1c cls1c = new Class1c(); Class2 cls2 = new Class2(); Expect.isFalse(cls1a == cls1b1); Expect.isTrue(cls1b1 == cls1b2); Expect.isFalse(cls1a == cls1c); Expect.isFalse(cls1a == cls2); }