Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(273)

Side by Side Diff: packages/collection/lib/equality.dart

Issue 1521693002: Roll Observatory deps (charted -> ^0.3.0) (Closed) Base URL: https://chromium.googlesource.com/external/github.com/dart-lang/observatory_pub_packages.git@master
Patch Set: Created 5 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « packages/collection/lib/collection.dart ('k') | packages/collection/lib/priority_queue.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 /** 5 /**
6 * Defines equality relations on collections. 6 * Defines equality relations on collections.
7 */ 7 */
8 library dart.pkg.collection.equality; 8 library dart.pkg.collection.equality;
9 9
10 import "dart:collection"; 10 import "dart:collection";
(...skipping 339 matching lines...) Expand 10 before | Expand all | Expand 10 after
350 * 350 *
351 * Recognizes lists, sets, iterables and maps and compares their elements using 351 * Recognizes lists, sets, iterables and maps and compares their elements using
352 * deep equality as well. 352 * deep equality as well.
353 * 353 *
354 * Non-iterable/map objects are compared using a configurable base equality. 354 * Non-iterable/map objects are compared using a configurable base equality.
355 * 355 *
356 * Works in one of two modes: ordered or unordered. 356 * Works in one of two modes: ordered or unordered.
357 * 357 *
358 * In ordered mode, lists and iterables are required to have equal elements 358 * In ordered mode, lists and iterables are required to have equal elements
359 * in the same order. In unordered mode, the order of elements in iterables 359 * in the same order. In unordered mode, the order of elements in iterables
360 * and lists are not importan. 360 * and lists are not important.
361 * 361 *
362 * A list is only equal to another list, likewise for sets and maps. All other 362 * A list is only equal to another list, likewise for sets and maps. All other
363 * iterables are compared as iterables only. 363 * iterables are compared as iterables only.
364 */ 364 */
365 class DeepCollectionEquality implements Equality { 365 class DeepCollectionEquality implements Equality {
366 final Equality _base; 366 final Equality _base;
367 final bool _unordered; 367 final bool _unordered;
368 const DeepCollectionEquality([Equality base = const DefaultEquality()]) 368 const DeepCollectionEquality([Equality base = const DefaultEquality()])
369 : _base = base, _unordered = false; 369 : _base = base, _unordered = false;
370 370
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
410 if (o is List) return new ListEquality(this).hash(o); 410 if (o is List) return new ListEquality(this).hash(o);
411 if (o is Iterable) return new IterableEquality(this).hash(o); 411 if (o is Iterable) return new IterableEquality(this).hash(o);
412 } else if (o is Iterable) { 412 } else if (o is Iterable) {
413 return new UnorderedIterableEquality(this).hash(o); 413 return new UnorderedIterableEquality(this).hash(o);
414 } 414 }
415 return _base.hash(o); 415 return _base.hash(o);
416 } 416 }
417 417
418 bool isValidKey(Object o) => o is Iterable || o is Map || _base.isValidKey(o); 418 bool isValidKey(Object o) => o is Iterable || o is Map || _base.isValidKey(o);
419 } 419 }
OLDNEW
« no previous file with comments | « packages/collection/lib/collection.dart ('k') | packages/collection/lib/priority_queue.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698