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 120 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
131 equality); | 131 equality); |
132 } | 132 } |
133 | 133 |
134 void checkInterceptorData(InterceptorDataImpl data1, InterceptorDataImpl data2, | 134 void checkInterceptorData(InterceptorDataImpl data1, InterceptorDataImpl data2, |
135 bool elementEquivalence(Entity a, Entity b), | 135 bool elementEquivalence(Entity a, Entity b), |
136 {bool verbose: false}) { | 136 {bool verbose: false}) { |
137 checkMapEquivalence( | 137 checkMapEquivalence( |
138 data1, | 138 data1, |
139 data2, | 139 data2, |
140 'interceptedElements', | 140 'interceptedElements', |
141 data1.interceptedElementsForTesting, | 141 data1.interceptedMembers, |
142 data2.interceptedElementsForTesting, | 142 data2.interceptedMembers, |
143 equality, | 143 equality, |
144 (a, b) => areSetsEquivalent(a, b, elementEquivalence)); | 144 (a, b) => areSetsEquivalent(a, b, elementEquivalence)); |
145 | 145 |
146 checkSetEquivalence(data1, data2, 'interceptedClasses', | 146 checkSetEquivalence(data1, data2, 'interceptedClasses', |
147 data1.interceptedClasses, data2.interceptedClasses, elementEquivalence); | 147 data1.interceptedClasses, data2.interceptedClasses, elementEquivalence); |
148 | 148 |
149 checkSetEquivalence( | 149 checkSetEquivalence( |
150 data1, | 150 data1, |
151 data2, | 151 data2, |
152 'classesMixedIntoInterceptedClasses', | 152 'classesMixedIntoInterceptedClasses', |
153 data1.classesMixedIntoInterceptedClassesForTesting, | 153 data1.classesMixedIntoInterceptedClasses, |
154 data2.classesMixedIntoInterceptedClassesForTesting, | 154 data2.classesMixedIntoInterceptedClasses, |
155 elementEquivalence); | 155 elementEquivalence); |
156 } | 156 } |
157 | 157 |
158 void checkClassHierarchyNodes( | 158 void checkClassHierarchyNodes( |
159 ClosedWorld closedWorld1, | 159 ClosedWorld closedWorld1, |
160 ClosedWorld closedWorld2, | 160 ClosedWorld closedWorld2, |
161 ClassHierarchyNode node1, | 161 ClassHierarchyNode node1, |
162 ClassHierarchyNode node2, | 162 ClassHierarchyNode node2, |
163 bool elementEquivalence(Entity a, Entity b), | 163 bool elementEquivalence(Entity a, Entity b), |
164 {bool verbose: false, | 164 {bool verbose: false, |
(...skipping 1243 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1408 return testNodes(node.expression, other.expression); | 1408 return testNodes(node.expression, other.expression); |
1409 } | 1409 } |
1410 | 1410 |
1411 @override | 1411 @override |
1412 bool visitBlock(js.Block node) { | 1412 bool visitBlock(js.Block node) { |
1413 if (peek() is! js.Block) return failAt(node, peek()); | 1413 if (peek() is! js.Block) return failAt(node, peek()); |
1414 js.Block other = peek(); | 1414 js.Block other = peek(); |
1415 return testNodeLists(node.statements, other.statements); | 1415 return testNodeLists(node.statements, other.statements); |
1416 } | 1416 } |
1417 } | 1417 } |
OLD | NEW |