| // Copyright (c) 2013, 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.9 |
| |
| import "package:expect/expect.dart"; |
| |
| class A { |
| const A(); |
| bool operator ==(Object other) { |
| return false; |
| } |
| } |
| |
| class B { |
| bool operator ==(Object other) { |
| Expect.fail("Bad equality order."); |
| } |
| } |
| |
| main() { |
| test(iterable) { |
| Expect.isFalse(iterable.contains(new B())); |
| } |
| |
| var iterables = <dynamic>[ |
| <A>[new A()], |
| new List<A>(1)..[0] = new A(), |
| new List<A>()..add(new A()), |
| const <A>[const A()], |
| new Set()..add(new A()), |
| (new Map()..[new A()] = 0).keys, |
| (new Map()..[0] = new A()).values |
| ]; |
| |
| for (var iterable in iterables) { |
| test(iterable); |
| test(iterable.map((x) => x)); |
| test(iterable.take(1)); |
| } |
| } |