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 // Partial test that the closed world computed from [WorldImpact]s derived from | 5 // Partial test that the closed world computed from [WorldImpact]s derived from |
6 // kernel is equivalent to the original computed from resolution. | 6 // kernel is equivalent to the original computed from resolution. |
7 library dart2js.kernel.closed_world_from_dill_test; | 7 library dart2js.kernel.closed_world_from_dill_test; |
8 | 8 |
9 import 'dart:async'; | 9 import 'dart:async'; |
10 import 'dart:io'; | 10 import 'dart:io'; |
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
122 } | 122 } |
123 Expect.isFalse(compiler1.compilationFailed); | 123 Expect.isFalse(compiler1.compilationFailed); |
124 ResolutionEnqueuer enqueuer1 = compiler1.enqueuer.resolution; | 124 ResolutionEnqueuer enqueuer1 = compiler1.enqueuer.resolution; |
125 ClosedWorld closedWorld1 = compiler1.resolutionWorldBuilder.closeWorld(); | 125 ClosedWorld closedWorld1 = compiler1.resolutionWorldBuilder.closeWorld(); |
126 | 126 |
127 Compiler compiler2 = await compileWithDill( | 127 Compiler compiler2 = await compileWithDill( |
128 entryPoint, const {}, [Flags.analyzeOnly, Flags.enableAssertMessage], | 128 entryPoint, const {}, [Flags.analyzeOnly, Flags.enableAssertMessage], |
129 printSteps: true); | 129 printSteps: true); |
130 | 130 |
131 KernelFrontEndStrategy frontendStrategy = compiler2.frontendStrategy; | 131 KernelFrontEndStrategy frontendStrategy = compiler2.frontendStrategy; |
132 KernelToElementMap elementMap = frontendStrategy.elementMap; | 132 KernelToElementMapForBuilding elementMap = frontendStrategy.elementMap; |
133 | 133 |
134 Expect.isFalse(compiler2.compilationFailed); | 134 Expect.isFalse(compiler2.compilationFailed); |
135 | 135 |
136 KernelEquivalence equivalence = new KernelEquivalence(elementMap); | 136 KernelEquivalence equivalence = new KernelEquivalence(elementMap); |
137 | 137 |
138 ResolutionEnqueuer enqueuer2 = compiler2.enqueuer.resolution; | 138 ResolutionEnqueuer enqueuer2 = compiler2.enqueuer.resolution; |
139 ClosedWorld closedWorld2 = compiler2.resolutionWorldBuilder.closeWorld(); | 139 ClosedWorld closedWorld2 = compiler2.resolutionWorldBuilder.closeWorld(); |
140 | 140 |
141 checkBackendUsage(closedWorld1.backendUsage, closedWorld2.backendUsage, | 141 checkBackendUsage(closedWorld1.backendUsage, closedWorld2.backendUsage, |
142 equivalence.defaultStrategy); | 142 equivalence.defaultStrategy); |
143 | 143 |
144 checkResolutionEnqueuers(closedWorld1.backendUsage, closedWorld2.backendUsage, | 144 checkResolutionEnqueuers(closedWorld1.backendUsage, closedWorld2.backendUsage, |
145 enqueuer1, enqueuer2, | 145 enqueuer1, enqueuer2, |
146 elementEquivalence: (a, b) => equivalence.entityEquivalence(a, b), | 146 elementEquivalence: (a, b) => equivalence.entityEquivalence(a, b), |
147 typeEquivalence: (DartType a, DartType b) { | 147 typeEquivalence: (DartType a, DartType b) { |
148 return equivalence.typeEquivalence(unalias(a), b); | 148 return equivalence.typeEquivalence(unalias(a), b); |
149 }, | 149 }, |
150 elementFilter: elementFilter, | 150 elementFilter: elementFilter, |
151 verbose: arguments.verbose); | 151 verbose: arguments.verbose); |
152 | 152 |
153 checkClosedWorlds(closedWorld1, closedWorld2, | 153 checkClosedWorlds(closedWorld1, closedWorld2, |
154 strategy: equivalence.defaultStrategy, verbose: arguments.verbose); | 154 strategy: equivalence.defaultStrategy, verbose: arguments.verbose); |
155 | 155 |
156 return ResultKind.success; | 156 return ResultKind.success; |
157 } | 157 } |
OLD | NEW |