| OLD | NEW |
| 1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2016, 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 // Tests that the closed world computed from [WorldImpact]s derived from kernel | 5 // Tests that the closed world computed from [WorldImpact]s derived from kernel |
| 6 // is equivalent to the original computed from resolution. | 6 // is equivalent to the original computed from resolution. |
| 7 library dart2js.kernel.closed_world_test; | 7 library dart2js.kernel.closed_world_test; |
| 8 | 8 |
| 9 import 'package:async_helper/async_helper.dart'; | 9 import 'package:async_helper/async_helper.dart'; |
| 10 import 'package:compiler/src/commandline_options.dart'; | 10 import 'package:compiler/src/commandline_options.dart'; |
| (...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 112 const OpenWorldStrategy()), | 112 const OpenWorldStrategy()), |
| 113 new KernelTestWorkItemBuilder(compiler), | 113 new KernelTestWorkItemBuilder(compiler), |
| 114 'enqueuer from kernel'); | 114 'enqueuer from kernel'); |
| 115 ClosedWorld closedWorld = computeClosedWorld( | 115 ClosedWorld closedWorld = computeClosedWorld( |
| 116 compiler.reporter, enqueuer, compiler.elementEnvironment); | 116 compiler.reporter, enqueuer, compiler.elementEnvironment); |
| 117 BackendUsage backendUsage = backendUsageBuilder.close(); | 117 BackendUsage backendUsage = backendUsageBuilder.close(); |
| 118 checkResolutionEnqueuers( | 118 checkResolutionEnqueuers( |
| 119 backendUsage, backendUsage, compiler.enqueuer.resolution, enqueuer, | 119 backendUsage, backendUsage, compiler.enqueuer.resolution, enqueuer, |
| 120 typeEquivalence: (ResolutionDartType a, ResolutionDartType b) { | 120 typeEquivalence: (ResolutionDartType a, ResolutionDartType b) { |
| 121 return areTypesEquivalent(unalias(a), unalias(b)); | 121 return areTypesEquivalent(unalias(a), unalias(b)); |
| 122 }, elementFilter: elementFilter, verbose: arguments.verbose); | 122 }, |
| 123 elementFilter: elementFilter, |
| 124 verbose: arguments.verbose, |
| 125 // TODO(johnniwinther): Support class usage testing in presence of |
| 126 // redirecting constructors. |
| 127 skipClassUsageTesting: true); |
| 123 checkClosedWorlds( | 128 checkClosedWorlds( |
| 124 compiler.resolutionWorldBuilder.closedWorldForTesting, closedWorld, | 129 compiler.resolutionWorldBuilder.closedWorldForTesting, closedWorld, |
| 125 verbose: arguments.verbose); | 130 verbose: arguments.verbose); |
| 126 }); | 131 }); |
| 127 } | 132 } |
| 128 | 133 |
| 129 List createResolutionEnqueuerListener(Compiler compiler) { | 134 List createResolutionEnqueuerListener(Compiler compiler) { |
| 130 JavaScriptBackend backend = compiler.backend; | 135 JavaScriptBackend backend = compiler.backend; |
| 131 BackendUsageBuilder backendUsageBuilder = | 136 BackendUsageBuilder backendUsageBuilder = |
| 132 new BackendUsageBuilderImpl(compiler.commonElements); | 137 new BackendUsageBuilderImpl(compiler.commonElements); |
| (...skipping 24 matching lines...) Expand all Loading... |
| 157 | 162 |
| 158 ClosedWorld computeClosedWorld(DiagnosticReporter reporter, | 163 ClosedWorld computeClosedWorld(DiagnosticReporter reporter, |
| 159 ResolutionEnqueuer enqueuer, ElementEnvironment elementEnvironment) { | 164 ResolutionEnqueuer enqueuer, ElementEnvironment elementEnvironment) { |
| 160 enqueuer.open(const ImpactStrategy(), elementEnvironment.mainFunction, | 165 enqueuer.open(const ImpactStrategy(), elementEnvironment.mainFunction, |
| 161 elementEnvironment.libraries); | 166 elementEnvironment.libraries); |
| 162 enqueuer.forEach((WorkItem work) { | 167 enqueuer.forEach((WorkItem work) { |
| 163 enqueuer.applyImpact(work.run(), impactSource: work.element); | 168 enqueuer.applyImpact(work.run(), impactSource: work.element); |
| 164 }); | 169 }); |
| 165 return enqueuer.worldBuilder.closeWorld(); | 170 return enqueuer.worldBuilder.closeWorld(); |
| 166 } | 171 } |
| OLD | NEW |