| // Copyright (c) 2011, 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 a compile-time error if the class C has an implementation |
| /// of the operator == other than the one inherited from Object unless the |
| /// value of the expression is a string, an integer, literal symbol or the result |
| /// of invoking a constant constructor of class Symbol. |
| /// @description Checks that it is a compile-time error if class C implements |
| /// operator ==. |
| /// @Issue 42461 |
| /// @author kaigorodov |
| |
| |
| class C { |
| final int? x; |
| const C(this.x); |
| bool operator ==(C other) { |
| // ^ |
| // [analyzer] unspecified |
| // [cfe] unspecified |
| return this.x == other.x; |
| } |
| } |
| |
| main() { |
| const C c1 = const C(1), c2 = const C(2); |
| var x = c2; |
| var y; |
| |
| switch (x) { |
| case c1: |
| // ^ |
| // [analyzer] unspecified |
| // [cfe] unspecified |
| y = 1; |
| break; |
| case c2: |
| // ^ |
| // [analyzer] unspecified |
| // [cfe] unspecified |
| y = 2; |
| break; |
| } |
| } |