| OLD | NEW |
| 1 // Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2017, 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 /// Equivalence test functions for data objects. | 5 /// Equivalence test functions for data objects. |
| 6 | 6 |
| 7 library dart2js.equivalence.functions; | 7 library dart2js.equivalence.functions; |
| 8 | 8 |
| 9 import 'package:expect/expect.dart'; | 9 import 'package:expect/expect.dart'; |
| 10 import 'package:compiler/src/common/resolution.dart'; | 10 import 'package:compiler/src/common/resolution.dart'; |
| (...skipping 190 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 201 } | 201 } |
| 202 Expect.isFalse( | 202 Expect.isFalse( |
| 203 child.isInstantiated, | 203 child.isInstantiated, |
| 204 'Missing subclass ${child.cls} of ${node1.cls} in ' | 204 'Missing subclass ${child.cls} of ${node1.cls} in ' |
| 205 '${node2.directSubclasses}'); | 205 '${node2.directSubclasses}'); |
| 206 } | 206 } |
| 207 } | 207 } |
| 208 checkMixinUses( | 208 checkMixinUses( |
| 209 closedWorld1, closedWorld2, node1.cls, node2.cls, elementEquivalence, | 209 closedWorld1, closedWorld2, node1.cls, node2.cls, elementEquivalence, |
| 210 verbose: verbose); | 210 verbose: verbose); |
| 211 Expect.isNotNull( |
| 212 closedWorld1.getClassSet(cls1), "Missing ClassSet for $cls1"); |
| 213 Expect.isNotNull( |
| 214 closedWorld2.getClassSet(cls2), "Missing ClassSet for $cls2"); |
| 211 } | 215 } |
| 212 | 216 |
| 213 void checkMixinUses( | 217 void checkMixinUses( |
| 214 ClosedWorld closedWorld1, | 218 ClosedWorld closedWorld1, |
| 215 ClosedWorld closedWorld2, | 219 ClosedWorld closedWorld2, |
| 216 ClassEntity class1, | 220 ClassEntity class1, |
| 217 ClassEntity class2, | 221 ClassEntity class2, |
| 218 bool elementEquivalence(Entity a, Entity b), | 222 bool elementEquivalence(Entity a, Entity b), |
| 219 {bool verbose: false}) { | 223 {bool verbose: false}) { |
| 220 checkSets(closedWorld1.mixinUsesOf(class1), closedWorld2.mixinUsesOf(class2), | 224 checkSets(closedWorld1.mixinUsesOf(class1), closedWorld2.mixinUsesOf(class2), |
| (...skipping 562 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 783 areAbstractUsagesEquivalent, | 787 areAbstractUsagesEquivalent, |
| 784 verbose: verbose); | 788 verbose: verbose); |
| 785 checkMaps( | 789 checkMaps( |
| 786 worldBuilder1.instanceMemberUsageForTesting, | 790 worldBuilder1.instanceMemberUsageForTesting, |
| 787 worldBuilder2.instanceMemberUsageForTesting, | 791 worldBuilder2.instanceMemberUsageForTesting, |
| 788 'instanceMemberUsageForTesting', | 792 'instanceMemberUsageForTesting', |
| 789 elementEquivalence, | 793 elementEquivalence, |
| 790 areAbstractUsagesEquivalent, | 794 areAbstractUsagesEquivalent, |
| 791 verbose: verbose); | 795 verbose: verbose); |
| 792 } | 796 } |
| OLD | NEW |