| 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_world2_test; | 7 library dart2js.kernel.closed_world2_test; |
| 8 | 8 |
| 9 import 'dart:async'; | 9 import 'dart:async'; |
| 10 | 10 |
| (...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 117 } | 117 } |
| 118 Expect.isFalse(compiler1.compilationFailed); | 118 Expect.isFalse(compiler1.compilationFailed); |
| 119 ResolutionEnqueuer enqueuer1 = compiler1.enqueuer.resolution; | 119 ResolutionEnqueuer enqueuer1 = compiler1.enqueuer.resolution; |
| 120 ClosedWorld closedWorld1 = compiler1.resolutionWorldBuilder.closeWorld(); | 120 ClosedWorld closedWorld1 = compiler1.resolutionWorldBuilder.closeWorld(); |
| 121 BackendUsage backendUsage1 = closedWorld1.backendUsage; | 121 BackendUsage backendUsage1 = closedWorld1.backendUsage; |
| 122 | 122 |
| 123 Pair<Compiler, Compiler> compilers = | 123 Pair<Compiler, Compiler> compilers = |
| 124 await analyzeOnly(entryPoint, memorySourceFiles, printSteps: true); | 124 await analyzeOnly(entryPoint, memorySourceFiles, printSteps: true); |
| 125 Compiler compiler = compilers.a; | 125 Compiler compiler = compilers.a; |
| 126 compiler.resolutionWorldBuilder.closeWorld(); | 126 compiler.resolutionWorldBuilder.closeWorld(); |
| 127 ElementEnvironment environment1 = compiler.elementEnvironment; | 127 ElementEnvironment environment1 = |
| 128 compiler.frontendStrategy.elementEnvironment; |
| 128 | 129 |
| 129 Compiler compiler2 = compilers.b; | 130 Compiler compiler2 = compilers.b; |
| 130 KernelFrontEndStrategy frontendStrategy = compiler2.frontendStrategy; | 131 KernelFrontEndStrategy frontendStrategy = compiler2.frontendStrategy; |
| 131 KernelToElementMapImpl elementMap = frontendStrategy.elementMap; | 132 KernelToElementMapImpl elementMap = frontendStrategy.elementMap; |
| 132 Expect.isFalse(compiler2.compilationFailed); | 133 Expect.isFalse(compiler2.compilationFailed); |
| 133 | 134 |
| 134 KernelEquivalence equivalence = new KernelEquivalence(elementMap); | 135 KernelEquivalence equivalence = new KernelEquivalence(elementMap); |
| 135 TestStrategy strategy = equivalence.defaultStrategy; | 136 TestStrategy strategy = equivalence.defaultStrategy; |
| 136 | 137 |
| 137 ElementEnvironment environment2 = compiler2.elementEnvironment; | 138 ElementEnvironment environment2 = |
| 139 compiler2.frontendStrategy.elementEnvironment; |
| 138 checkElementEnvironment(environment1, environment2, strategy); | 140 checkElementEnvironment(environment1, environment2, strategy); |
| 139 | 141 |
| 140 ResolutionEnqueuer enqueuer2 = compiler2.enqueuer.resolution; | 142 ResolutionEnqueuer enqueuer2 = compiler2.enqueuer.resolution; |
| 141 ClosedWorld closedWorld2 = compiler2.resolutionWorldBuilder.closeWorld(); | 143 ClosedWorld closedWorld2 = compiler2.resolutionWorldBuilder.closeWorld(); |
| 142 BackendUsage backendUsage2 = closedWorld2.backendUsage; | 144 BackendUsage backendUsage2 = closedWorld2.backendUsage; |
| 143 | 145 |
| 144 checkNativeClasses(compiler1, compiler2, strategy); | 146 checkNativeClasses(compiler1, compiler2, strategy); |
| 145 | 147 |
| 146 checkBackendUsage(backendUsage1, backendUsage2, strategy); | 148 checkBackendUsage(backendUsage1, backendUsage2, strategy); |
| 147 | 149 |
| 148 checkResolutionEnqueuers(backendUsage1, backendUsage2, enqueuer1, enqueuer2, | 150 checkResolutionEnqueuers(backendUsage1, backendUsage2, enqueuer1, enqueuer2, |
| 149 elementEquivalence: equivalence.entityEquivalence, | 151 elementEquivalence: equivalence.entityEquivalence, |
| 150 typeEquivalence: (ResolutionDartType a, DartType b) { | 152 typeEquivalence: (ResolutionDartType a, DartType b) { |
| 151 return equivalence.typeEquivalence(unalias(a), b); | 153 return equivalence.typeEquivalence(unalias(a), b); |
| 152 }, elementFilter: elementFilter, verbose: arguments.verbose); | 154 }, elementFilter: elementFilter, verbose: arguments.verbose); |
| 153 | 155 |
| 154 checkClosedWorlds(closedWorld1, closedWorld2, | 156 checkClosedWorlds(closedWorld1, closedWorld2, |
| 155 strategy: equivalence.defaultStrategy, verbose: arguments.verbose); | 157 strategy: equivalence.defaultStrategy, verbose: arguments.verbose); |
| 156 | 158 |
| 157 return ResultKind.success; | 159 return ResultKind.success; |
| 158 } | 160 } |
| OLD | NEW |