| OLD | NEW |
| 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2014, 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 import 'dart:collection'; | 5 import 'dart:collection'; |
| 6 | 6 |
| 7 import 'package:collection/collection.dart'; | 7 import 'package:collection/collection.dart'; |
| 8 | 8 |
| 9 import 'yaml_node.dart'; | 9 import 'yaml_node.dart'; |
| 10 | 10 |
| 11 /// Returns a [Map] that compares its keys based on [deepEquals]. | 11 /// Returns a [Map] that compares its keys based on [deepEquals]. |
| 12 Map deepEqualsMap() => new HashMap(equals: deepEquals, hashCode: deepHashCode); | 12 Map/*<K, V>*/ deepEqualsMap/*<K, V>*/() => |
| 13 new HashMap(equals: deepEquals, hashCode: deepHashCode); |
| 13 | 14 |
| 14 /// Returns whether two objects are structurally equivalent. | 15 /// Returns whether two objects are structurally equivalent. |
| 15 /// | 16 /// |
| 16 /// This considers `NaN` values to be equivalent, handles self-referential | 17 /// This considers `NaN` values to be equivalent, handles self-referential |
| 17 /// structures, and considers [YamlScalar]s to be equal to their values. | 18 /// structures, and considers [YamlScalar]s to be equal to their values. |
| 18 bool deepEquals(obj1, obj2) => new _DeepEquals().equals(obj1, obj2); | 19 bool deepEquals(obj1, obj2) => new _DeepEquals().equals(obj1, obj2); |
| 19 | 20 |
| 20 /// A class that provides access to the list of parent objects used for loop | 21 /// A class that provides access to the list of parent objects used for loop |
| 21 /// detection. | 22 /// detection. |
| 22 class _DeepEquals { | 23 class _DeepEquals { |
| (...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 115 } else { | 116 } else { |
| 116 return value.hashCode; | 117 return value.hashCode; |
| 117 } | 118 } |
| 118 } finally { | 119 } finally { |
| 119 parents.removeLast(); | 120 parents.removeLast(); |
| 120 } | 121 } |
| 121 } | 122 } |
| 122 | 123 |
| 123 return _deepHashCode(obj); | 124 return _deepHashCode(obj); |
| 124 } | 125 } |
| OLD | NEW |