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

Side by Side Diff: tests/compiler/dart2js/memory_compiler.dart

Issue 2735763002: Create ResolutionEnqueuer after library loading. (Closed)
Patch Set: Fix. Created 3 years, 9 months 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 library dart2js.test.memory_compiler; 5 library dart2js.test.memory_compiler;
6 6
7 import 'dart:async'; 7 import 'dart:async';
8 8
9 import 'package:compiler/compiler.dart' show DiagnosticHandler; 9 import 'package:compiler/compiler.dart' show DiagnosticHandler;
10 import 'package:compiler/compiler_new.dart' 10 import 'package:compiler/compiler_new.dart'
11 show 11 show
12 CompilationResult, 12 CompilationResult,
13 CompilerDiagnostics, 13 CompilerDiagnostics,
14 CompilerOutput, 14 CompilerOutput,
15 Diagnostic, 15 Diagnostic,
16 PackagesDiscoveryProvider; 16 PackagesDiscoveryProvider;
17 import 'package:compiler/src/diagnostics/messages.dart' show Message; 17 import 'package:compiler/src/diagnostics/messages.dart' show Message;
18 import 'package:compiler/src/enqueue.dart' show ResolutionEnqueuer;
18 import 'package:compiler/src/null_compiler_output.dart' show NullCompilerOutput; 19 import 'package:compiler/src/null_compiler_output.dart' show NullCompilerOutput;
19 import 'package:compiler/src/library_loader.dart' show LoadedLibraries; 20 import 'package:compiler/src/library_loader.dart' show LoadedLibraries;
20 import 'package:compiler/src/options.dart' show CompilerOptions; 21 import 'package:compiler/src/options.dart' show CompilerOptions;
21 22
22 import 'memory_source_file_helper.dart'; 23 import 'memory_source_file_helper.dart';
23 24
24 export 'output_collector.dart'; 25 export 'output_collector.dart';
25 export 'package:compiler/compiler_new.dart' show CompilationResult; 26 export 'package:compiler/compiler_new.dart' show CompilationResult;
26 export 'diagnostic_helper.dart'; 27 export 'diagnostic_helper.dart';
27 28
(...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after
171 var patchLibrary = library.patch; 172 var patchLibrary = library.patch;
172 compiler.onLibraryCreated(patchLibrary); 173 compiler.onLibraryCreated(patchLibrary);
173 compiler.onLibraryScanned(patchLibrary, null); 174 compiler.onLibraryScanned(patchLibrary, null);
174 } 175 }
175 copiedLibraries[library.canonicalUri] = library; 176 copiedLibraries[library.canonicalUri] = library;
176 } 177 }
177 }); 178 });
178 // TODO(johnniwinther): Assert that no libraries are loaded lazily from 179 // TODO(johnniwinther): Assert that no libraries are loaded lazily from
179 // this call. 180 // this call.
180 compiler.onLibrariesLoaded(new MemoryLoadedLibraries(copiedLibraries)); 181 compiler.onLibrariesLoaded(new MemoryLoadedLibraries(copiedLibraries));
182 ResolutionEnqueuer resolutionEnqueuer = compiler.startResolution();
181 183
182 compiler.backend.constantCompilerTask 184 compiler.backend.constantCompilerTask
183 .copyConstantValues(cachedCompiler.backend.constantCompilerTask); 185 .copyConstantValues(cachedCompiler.backend.constantCompilerTask);
184 186
185 Iterable cachedTreeElements = 187 Iterable cachedTreeElements =
186 cachedCompiler.enqueuer.resolution.processedEntities; 188 cachedCompiler.enqueuer.resolution.processedEntities;
187 cachedTreeElements.forEach((element) { 189 cachedTreeElements.forEach((element) {
188 if (element.library.isPlatformLibrary) { 190 if (element.library.isPlatformLibrary) {
189 compiler.enqueuer.resolution.registerProcessedElementInternal(element); 191 resolutionEnqueuer.registerProcessedElementInternal(element);
190 } 192 }
191 }); 193 });
192 194
193 // One potential problem that can occur when reusing elements is that there 195 // One potential problem that can occur when reusing elements is that there
194 // is a stale reference to an old compiler object. By nulling out the old 196 // is a stale reference to an old compiler object. By nulling out the old
195 // compiler's fields, such stale references are easier to identify. 197 // compiler's fields, such stale references are easier to identify.
196 cachedCompiler.scanner = null; 198 cachedCompiler.scanner = null;
197 cachedCompiler.dietParser = null; 199 cachedCompiler.dietParser = null;
198 cachedCompiler.parser = null; 200 cachedCompiler.parser = null;
199 cachedCompiler.patchParser = null; 201 cachedCompiler.patchParser = null;
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
244 handler = (Uri uri, int begin, int end, String message, Diagnostic kind) { 246 handler = (Uri uri, int begin, int end, String message, Diagnostic kind) {
245 diagnosticHandler(uri, begin, end, message, kind); 247 diagnosticHandler(uri, begin, end, message, kind);
246 formattingHandler(uri, begin, end, message, kind); 248 formattingHandler(uri, begin, end, message, kind);
247 }; 249 };
248 } 250 }
249 } else if (diagnosticHandler == null) { 251 } else if (diagnosticHandler == null) {
250 handler = (Uri uri, int begin, int end, String message, Diagnostic kind) {}; 252 handler = (Uri uri, int begin, int end, String message, Diagnostic kind) {};
251 } 253 }
252 return handler; 254 return handler;
253 } 255 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698