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

Side by Side Diff: pkg/compiler/lib/src/compiler.dart

Issue 2580353002: Make ClosedWorld a `forTesting` property of ResolutionWorldBuilder. (Closed)
Patch Set: Small fix. 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
« no previous file with comments | « no previous file | pkg/compiler/lib/src/js_backend/enqueuer.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2012, 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 library dart2js.compiler_base; 5 library dart2js.compiler_base;
6 6
7 import 'dart:async' show EventSink, Future; 7 import 'dart:async' show EventSink, Future;
8 8
9 import '../compiler_new.dart' as api; 9 import '../compiler_new.dart' as api;
10 import 'cache_strategy.dart' show CacheStrategy; 10 import 'cache_strategy.dart' show CacheStrategy;
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
71 import 'universe/world_builder.dart' 71 import 'universe/world_builder.dart'
72 show ResolutionWorldBuilder, CodegenWorldBuilder; 72 show ResolutionWorldBuilder, CodegenWorldBuilder;
73 import 'universe/use.dart' show StaticUse, TypeUse; 73 import 'universe/use.dart' show StaticUse, TypeUse;
74 import 'universe/world_impact.dart' 74 import 'universe/world_impact.dart'
75 show 75 show
76 ImpactStrategy, 76 ImpactStrategy,
77 WorldImpact, 77 WorldImpact,
78 WorldImpactBuilder, 78 WorldImpactBuilder,
79 WorldImpactBuilderImpl; 79 WorldImpactBuilderImpl;
80 import 'util/util.dart' show Link, Setlet; 80 import 'util/util.dart' show Link, Setlet;
81 import 'world.dart' show ClosedWorld, ClosedWorldRefiner, OpenWorld, WorldImpl; 81 import 'world.dart' show ClosedWorld, ClosedWorldRefiner, WorldImpl;
82 82
83 typedef Backend MakeBackendFuncion(Compiler compiler); 83 typedef Backend MakeBackendFuncion(Compiler compiler);
84 84
85 typedef CompilerDiagnosticReporter MakeReporterFunction( 85 typedef CompilerDiagnosticReporter MakeReporterFunction(
86 Compiler compiler, CompilerOptions options); 86 Compiler compiler, CompilerOptions options);
87 87
88 abstract class Compiler implements LibraryLoaderListener { 88 abstract class Compiler implements LibraryLoaderListener {
89 Measurer get measurer; 89 Measurer get measurer;
90 90
91 final IdGenerator idGenerator = new IdGenerator(); 91 final IdGenerator idGenerator = new IdGenerator();
92 WorldImpl get _world => resolverWorld.openWorld;
93 Types types; 92 Types types;
94 _CompilerCoreTypes _coreTypes; 93 _CompilerCoreTypes _coreTypes;
95 CompilerDiagnosticReporter _reporter; 94 CompilerDiagnosticReporter _reporter;
96 CompilerResolution _resolution; 95 CompilerResolution _resolution;
97 ParsingContext _parsingContext; 96 ParsingContext _parsingContext;
98 97
99 final CacheStrategy cacheStrategy; 98 final CacheStrategy cacheStrategy;
100 99
101 ImpactStrategy impactStrategy = const ImpactStrategy(); 100 ImpactStrategy impactStrategy = const ImpactStrategy();
102 101
(...skipping 166 matching lines...) Expand 10 before | Expand all | Expand 10 after
269 if (options.resolveOnly) { 268 if (options.resolveOnly) {
270 serialization.supportSerialization = true; 269 serialization.supportSerialization = true;
271 } 270 }
272 271
273 _parsingContext = 272 _parsingContext =
274 new ParsingContext(reporter, parser, patchParser, backend); 273 new ParsingContext(reporter, parser, patchParser, backend);
275 274
276 tasks.addAll(backend.tasks); 275 tasks.addAll(backend.tasks);
277 } 276 }
278 277
279 /// The closed world after resolution and inference.
280 ClosedWorld get closedWorld {
281 assert(invariant(CURRENT_ELEMENT_SPANNABLE, _world.isClosed,
282 message: "Closed world not computed yet."));
283 return _world;
284 }
285
286 /// Creates the backend. 278 /// Creates the backend.
287 /// 279 ///
288 /// Override this to mock the backend for testing. 280 /// Override this to mock the backend for testing.
289 Backend createBackend() { 281 Backend createBackend() {
290 return new js_backend.JavaScriptBackend(this, 282 return new js_backend.JavaScriptBackend(this,
291 generateSourceMap: options.generateSourceMap, 283 generateSourceMap: options.generateSourceMap,
292 useStartupEmitter: options.useStartupEmitter, 284 useStartupEmitter: options.useStartupEmitter,
293 useNewSourceInfo: options.useNewSourceInfo, 285 useNewSourceInfo: options.useNewSourceInfo,
294 useKernel: options.useKernel); 286 useKernel: options.useKernel);
295 } 287 }
(...skipping 401 matching lines...) Expand 10 before | Expand all | Expand 10 after
697 // compiler from analyzing all the code. 689 // compiler from analyzing all the code.
698 // TODO(johnniwinther): Reenable this when the reporting is more 690 // TODO(johnniwinther): Reenable this when the reporting is more
699 // precise. 691 // precise.
700 //reportUnusedCode(); 692 //reportUnusedCode();
701 } 693 }
702 return; 694 return;
703 } 695 }
704 assert(mainFunction != null); 696 assert(mainFunction != null);
705 697
706 ClosedWorldRefiner closedWorldRefiner = closeResolution(); 698 ClosedWorldRefiner closedWorldRefiner = closeResolution();
699 // TODO(johnniwinther): Make [ClosedWorld] a property of
700 // [ClosedWorldRefiner].
701 ClosedWorld closedWorld = resolverWorld.closedWorldForTesting;
707 702
708 reporter.log('Inferring types...'); 703 reporter.log('Inferring types...');
709 globalInference.runGlobalTypeInference( 704 globalInference.runGlobalTypeInference(
710 mainFunction, closedWorld, closedWorldRefiner); 705 mainFunction, closedWorld, closedWorldRefiner);
711 706
712 if (stopAfterTypeInference) return; 707 if (stopAfterTypeInference) return;
713 708
714 backend.onTypeInferenceComplete(); 709 backend.onTypeInferenceComplete();
715 710
716 reporter.log('Compiling...'); 711 reporter.log('Compiling...');
(...skipping 1508 matching lines...) Expand 10 before | Expand all | Expand 10 after
2225 _ElementScanner(this.scanner); 2220 _ElementScanner(this.scanner);
2226 void scanLibrary(LibraryElement library) => scanner.scanLibrary(library); 2221 void scanLibrary(LibraryElement library) => scanner.scanLibrary(library);
2227 void scanUnit(CompilationUnitElement unit) => scanner.scan(unit); 2222 void scanUnit(CompilationUnitElement unit) => scanner.scan(unit);
2228 } 2223 }
2229 2224
2230 class _EmptyEnvironment implements Environment { 2225 class _EmptyEnvironment implements Environment {
2231 const _EmptyEnvironment(); 2226 const _EmptyEnvironment();
2232 2227
2233 String valueOf(String key) => null; 2228 String valueOf(String key) => null;
2234 } 2229 }
OLDNEW
« no previous file with comments | « no previous file | pkg/compiler/lib/src/js_backend/enqueuer.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698