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

Side by Side Diff: packages/analyzer/lib/src/task/dart_work_manager.dart

Issue 1521693002: Roll Observatory deps (charted -> ^0.3.0) (Closed) Base URL: https://chromium.googlesource.com/external/github.com/dart-lang/observatory_pub_packages.git@master
Patch Set: Created 5 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 | « packages/analyzer/lib/src/task/dart.dart ('k') | packages/analyzer/lib/src/task/html.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) 2015, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2015, 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 analyzer.src.task.dart_work_manager; 5 library analyzer.src.task.dart_work_manager;
6 6
7 import 'dart:collection'; 7 import 'dart:collection';
8 8
9 import 'package:analyzer/src/context/cache.dart'; 9 import 'package:analyzer/src/context/cache.dart';
10 import 'package:analyzer/src/generated/engine.dart' 10 import 'package:analyzer/src/generated/engine.dart'
(...skipping 28 matching lines...) Expand all
39 39
40 /** 40 /**
41 * The list of errors that are reported for raw Dart [LibrarySpecificUnit]s. 41 * The list of errors that are reported for raw Dart [LibrarySpecificUnit]s.
42 */ 42 */
43 static final List<ResultDescriptor> _UNIT_ERRORS = <ResultDescriptor>[ 43 static final List<ResultDescriptor> _UNIT_ERRORS = <ResultDescriptor>[
44 HINTS, 44 HINTS,
45 LINTS, 45 LINTS,
46 LIBRARY_UNIT_ERRORS, 46 LIBRARY_UNIT_ERRORS,
47 RESOLVE_TYPE_NAMES_ERRORS, 47 RESOLVE_TYPE_NAMES_ERRORS,
48 RESOLVE_UNIT_ERRORS, 48 RESOLVE_UNIT_ERRORS,
49 STRONG_MODE_ERRORS,
49 VARIABLE_REFERENCE_ERRORS, 50 VARIABLE_REFERENCE_ERRORS,
50 VERIFY_ERRORS 51 VERIFY_ERRORS
51 ]; 52 ];
52 53
53 final InternalAnalysisContext context; 54 final InternalAnalysisContext context;
54 55
55 /** 56 /**
56 * The [TargetedResult]s that should be computed with priority. 57 * The [TargetedResult]s that should be computed with priority.
57 */ 58 */
58 final LinkedHashSet<TargetedResult> priorityResultQueue = 59 final LinkedHashSet<TargetedResult> priorityResultQueue =
(...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after
186 } 187 }
187 } 188 }
188 return errors; 189 return errors;
189 } 190 }
190 191
191 /** 192 /**
192 * Returns libraries containing the given [part]. 193 * Returns libraries containing the given [part].
193 * Maybe empty, but not null. 194 * Maybe empty, but not null.
194 */ 195 */
195 List<Source> getLibrariesContainingPart(Source part) { 196 List<Source> getLibrariesContainingPart(Source part) {
197 if (part.isInSystemLibrary) {
198 DartWorkManager sdkDartWorkManager = _getSdkDartWorkManager();
199 if (sdkDartWorkManager != this) {
200 return sdkDartWorkManager.getLibrariesContainingPart(part);
201 }
202 }
196 List<Source> libraries = partLibrariesMap[part]; 203 List<Source> libraries = partLibrariesMap[part];
197 return libraries != null ? libraries : Source.EMPTY_LIST; 204 return libraries != null ? libraries : Source.EMPTY_LIST;
198 } 205 }
199 206
200 @override 207 @override
201 TargetedResult getNextResult() { 208 TargetedResult getNextResult() {
202 // Try to find a priority result to compute. 209 // Try to find a priority result to compute.
203 while (priorityResultQueue.isNotEmpty) { 210 while (priorityResultQueue.isNotEmpty) {
204 TargetedResult result = priorityResultQueue.first; 211 TargetedResult result = priorityResultQueue.first;
205 if (!_needsComputing(result.target, result.result)) { 212 if (!_needsComputing(result.target, result.result)) {
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
258 * Notifies the manager about [SourceFactory] changes. 265 * Notifies the manager about [SourceFactory] changes.
259 */ 266 */
260 void onSourceFactoryChanged() { 267 void onSourceFactoryChanged() {
261 _invalidateAllLocalResolutionInformation(true); 268 _invalidateAllLocalResolutionInformation(true);
262 } 269 }
263 270
264 @override 271 @override
265 void resultsComputed( 272 void resultsComputed(
266 AnalysisTarget target, Map<ResultDescriptor, dynamic> outputs) { 273 AnalysisTarget target, Map<ResultDescriptor, dynamic> outputs) {
267 bool isDartSource = _isDartSource(target); 274 bool isDartSource = _isDartSource(target);
275 // Route SDK outputs to the SDK WorkManager.
276 if (isDartSource && target.source.isInSystemLibrary) {
277 DartWorkManager sdkWorkManager = _getSdkDartWorkManager();
278 if (sdkWorkManager != this) {
279 sdkWorkManager.resultsComputed(target, outputs);
280 return;
281 }
282 }
268 // Organize sources. 283 // Organize sources.
269 bool isDartLibrarySource = false; 284 bool isDartLibrarySource = false;
270 if (isDartSource) { 285 if (isDartSource) {
271 Source source = target; 286 Source source = target;
272 SourceKind kind = outputs[SOURCE_KIND]; 287 SourceKind kind = outputs[SOURCE_KIND];
273 if (kind != null) { 288 if (kind != null) {
274 unknownSourceQueue.remove(source); 289 unknownSourceQueue.remove(source);
275 if (kind == SourceKind.LIBRARY) { 290 if (kind == SourceKind.LIBRARY) {
276 isDartLibrarySource = true; 291 isDartLibrarySource = true;
277 if (context.prioritySources.contains(source)) { 292 if (context.prioritySources.contains(source)) {
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
332 context.getNotice(source).setErrors(info.errors, info.lineInfo); 347 context.getNotice(source).setErrors(info.errors, info.lineInfo);
333 } 348 }
334 } 349 }
335 } 350 }
336 351
337 void unitIncrementallyResolved(Source librarySource, Source unitSource) { 352 void unitIncrementallyResolved(Source librarySource, Source unitSource) {
338 librarySourceQueue.add(librarySource); 353 librarySourceQueue.add(librarySource);
339 } 354 }
340 355
341 /** 356 /**
357 * Return the SDK [DartWorkManager] or this one.
358 */
359 DartWorkManager _getSdkDartWorkManager() {
360 SourceFactory sourceFactory = context.sourceFactory;
361 InternalAnalysisContext sdkContext = sourceFactory.dartSdk.context;
362 if (sdkContext != context) {
363 for (WorkManager workManager in sdkContext.workManagers) {
364 if (workManager is DartWorkManager) {
365 return workManager;
366 }
367 }
368 }
369 return this;
370 }
371
372 /**
342 * Invalidate all of the resolution results computed by this context. The flag 373 * Invalidate all of the resolution results computed by this context. The flag
343 * [invalidateUris] should be `true` if the cached results of converting URIs 374 * [invalidateUris] should be `true` if the cached results of converting URIs
344 * to source files should also be invalidated. 375 * to source files should also be invalidated.
345 */ 376 */
346 void _invalidateAllLocalResolutionInformation(bool invalidateUris) { 377 void _invalidateAllLocalResolutionInformation(bool invalidateUris) {
347 CachePartition partition = privateAnalysisCachePartition; 378 CachePartition partition = privateAnalysisCachePartition;
348 // Prepare targets and values to invalidate. 379 // Prepare targets and values to invalidate.
349 List<Source> dartSources = <Source>[]; 380 List<Source> dartSources = <Source>[];
350 List<LibrarySpecificUnit> unitTargets = <LibrarySpecificUnit>[]; 381 List<LibrarySpecificUnit> unitTargets = <LibrarySpecificUnit>[];
351 MapIterator<AnalysisTarget, CacheEntry> iterator = partition.iterator(); 382 MapIterator<AnalysisTarget, CacheEntry> iterator = partition.iterator();
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
436 } 467 }
437 } 468 }
438 469
439 bool _shouldErrorsBeComputed(Source source) => 470 bool _shouldErrorsBeComputed(Source source) =>
440 context.shouldErrorsBeAnalyzed(source, null); 471 context.shouldErrorsBeAnalyzed(source, null);
441 472
442 static bool _isDartSource(AnalysisTarget target) { 473 static bool _isDartSource(AnalysisTarget target) {
443 return target is Source && AnalysisEngine.isDartFileName(target.fullName); 474 return target is Source && AnalysisEngine.isDartFileName(target.fullName);
444 } 475 }
445 } 476 }
OLDNEW
« no previous file with comments | « packages/analyzer/lib/src/task/dart.dart ('k') | packages/analyzer/lib/src/task/html.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698