Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(236)

Side by Side Diff: tests/compiler/dart2js/kernel/closed_world_test.dart

Issue 2558013002: Move handling of regular static use from ResolutionEnqueuer to ResolutionWorldBuilderImpl (Closed)
Patch Set: Updated cf. comments. Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 95 matching lines...) Expand 10 before | Expand all | Expand 10 after
106 enqueuer.applyImpact(backend.computeHelpersImpact()); 106 enqueuer.applyImpact(backend.computeHelpersImpact());
107 enqueuer.applyImpact(enqueuer.nativeEnqueuer 107 enqueuer.applyImpact(enqueuer.nativeEnqueuer
108 .processNativeClasses(compiler.libraryLoader.libraries)); 108 .processNativeClasses(compiler.libraryLoader.libraries));
109 enqueuer.applyImpact( 109 enqueuer.applyImpact(
110 backend.computeMainImpact(compiler.mainFunction, forResolution: true)); 110 backend.computeMainImpact(compiler.mainFunction, forResolution: true));
111 enqueuer.forEach((work) { 111 enqueuer.forEach((work) {
112 AstElement element = work.element; 112 AstElement element = work.element;
113 ResolutionImpact resolutionImpact = build(compiler, element.resolvedAst); 113 ResolutionImpact resolutionImpact = build(compiler, element.resolvedAst);
114 WorldImpact worldImpact = compiler.backend.impactTransformer 114 WorldImpact worldImpact = compiler.backend.impactTransformer
115 .transformResolutionImpact(enqueuer, resolutionImpact); 115 .transformResolutionImpact(enqueuer, resolutionImpact);
116 enqueuer.registerProcessedElement(element);
117 enqueuer.applyImpact(worldImpact, impactSource: element); 116 enqueuer.applyImpact(worldImpact, impactSource: element);
118 }); 117 });
119 ClosedWorld closedWorld = 118 ClosedWorld closedWorld =
120 enqueuer.universe.openWorld.closeWorld(compiler.reporter); 119 enqueuer.universe.openWorld.closeWorld(compiler.reporter);
121 120
122 checkResolutionEnqueuers(compiler.enqueuer.resolution, enqueuer, 121 checkResolutionEnqueuers(compiler.enqueuer.resolution, enqueuer,
123 typeEquivalence: (DartType a, DartType b) { 122 typeEquivalence: (DartType a, DartType b) {
124 return areTypesEquivalent(unalias(a), unalias(b)); 123 return areTypesEquivalent(unalias(a), unalias(b));
125 }, elementFilter: (Element element) { 124 }, elementFilter: (Element element) {
126 if (element is ConstructorElement && element.isRedirectingFactory) { 125 if (element is ConstructorElement && element.isRedirectingFactory) {
127 // Redirecting factory constructors are skipped in kernel. 126 // Redirecting factory constructors are skipped in kernel.
128 return false; 127 return false;
129 } 128 }
130 if (element is ClassElement) { 129 if (element is ClassElement) {
131 for (ConstructorElement constructor in element.constructors) { 130 for (ConstructorElement constructor in element.constructors) {
132 if (!constructor.isRedirectingFactory) { 131 if (!constructor.isRedirectingFactory) {
133 return true; 132 return true;
134 } 133 }
135 } 134 }
136 // The class cannot itself be instantiated. 135 // The class cannot itself be instantiated.
137 return false; 136 return false;
138 } 137 }
139 return true; 138 return true;
140 }, verbose: arguments.verbose); 139 }, verbose: arguments.verbose);
141 checkClosedWorlds(compiler.closedWorld, closedWorld, 140 checkClosedWorlds(compiler.closedWorld, closedWorld,
142 verbose: arguments.verbose); 141 verbose: arguments.verbose);
143 }); 142 });
144 } 143 }
OLDNEW
« no previous file with comments | « tests/compiler/dart2js/diagnose_ambiguous_test.dart ('k') | tests/compiler/dart2js/memory_compiler.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698