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

Side by Side Diff: pkg/analyzer/lib/src/dart/analysis/driver.dart

Issue 2444993003: Apply tweaks to address other review comments. (Closed)
Patch Set: Created 4 years, 1 month 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 | no next file » | 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) 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 import 'dart:async'; 5 import 'dart:async';
6 import 'dart:collection'; 6 import 'dart:collection';
7 import 'dart:convert'; 7 import 'dart:convert';
8 8
9 import 'package:analyzer/dart/ast/ast.dart'; 9 import 'package:analyzer/dart/ast/ast.dart';
10 import 'package:analyzer/dart/ast/token.dart'; 10 import 'package:analyzer/dart/ast/token.dart';
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after
119 * The set of explicitly analyzed files. 119 * The set of explicitly analyzed files.
120 */ 120 */
121 final _explicitFiles = new LinkedHashSet<String>(); 121 final _explicitFiles = new LinkedHashSet<String>();
122 122
123 /** 123 /**
124 * The set of files that are currently scheduled for analysis. 124 * The set of files that are currently scheduled for analysis.
125 */ 125 */
126 final _filesToAnalyze = new LinkedHashSet<String>(); 126 final _filesToAnalyze = new LinkedHashSet<String>();
127 127
128 /** 128 /**
129 * The mapping of [Uri]s to the mapping of textual URIs to the [Source] 129 * Cache of URI resolution. The outer map key is the absolute URI of the
130 * that correspond in the current [_sourceFactory]. 130 * containing file. The inner map key is the URI text of a directive
131 * contained in that file. The inner map value is the [Source] object which
132 * that URI text resolves to.
131 */ 133 */
132 final _uriResolutionCache = <Uri, Map<String, Source>>{}; 134 final _uriResolutionCache = <Uri, Map<String, Source>>{};
133 135
134 /** 136 /**
135 * The current file state. 137 * The current file state.
136 * 138 *
137 * It maps file paths to the MD5 hash of the file content. 139 * It maps file paths to the MD5 hash of the file content.
138 */ 140 */
139 final _fileContentHashMap = <String, String>{}; 141 final _fileContentHashMap = <String, String>{};
140 142
(...skipping 193 matching lines...) Expand 10 before | Expand all | Expand 10 after
334 336
335 AnalysisContext analysisContext = _createAnalysisContext(libraryContext); 337 AnalysisContext analysisContext = _createAnalysisContext(libraryContext);
336 analysisContext.setContents(file.source, file.content); 338 analysisContext.setContents(file.source, file.content);
337 try { 339 try {
338 // Compute resolved unit. 340 // Compute resolved unit.
339 // _logger.runTimed('Computed resolved unit', () { 341 // _logger.runTimed('Computed resolved unit', () {
340 // analysisContext.resolveCompilationUnit2( 342 // analysisContext.resolveCompilationUnit2(
341 // libraryContext.file.source, libraryContext.file.source); 343 // libraryContext.file.source, libraryContext.file.source);
342 // }); 344 // });
343 // Compute errors. 345 // Compute errors.
344 List<AnalysisError> errors; 346 List<AnalysisError> errors = _logger.run('Compute errors', () {
345 try { 347 return analysisContext.computeErrors(file.source);
346 errors = _logger.run('Compute errors', () { 348 });
347 return analysisContext.computeErrors(file.source);
348 });
349 } catch (e, st) {
350 // TODO(scheglov) why does it fail?
351 // Caused by Bad state: Unmatched TypeParameterElementImpl T
352 errors = [];
353 }
354 List<String> errorStrings = errors 349 List<String> errorStrings = errors
355 .where((error) => error.errorCode is! TodoCode) 350 .where((error) => error.errorCode is! TodoCode)
356 .map((error) => error.toString()) 351 .map((error) => error.toString())
357 .toList(); 352 .toList();
358 { 353 {
359 fb.Builder fbBuilder = new fb.Builder(); 354 fb.Builder fbBuilder = new fb.Builder();
360 var exportedOffset = fbBuilder.writeList(errorStrings 355 var exportedOffset = fbBuilder.writeList(errorStrings
361 .map((errorStr) => fbBuilder.writeString(errorStr)) 356 .map((errorStr) => fbBuilder.writeString(errorStr))
362 .toList()); 357 .toList());
363 fbBuilder.startTable(); 358 fbBuilder.startTable();
(...skipping 430 matching lines...) Expand 10 before | Expand all | Expand 10 after
794 789
795 return _unit; 790 return _unit;
796 } 791 }
797 792
798 Uri get uri => source.uri; 793 Uri get uri => source.uri;
799 794
800 /** 795 /**
801 * Return the [_File] for the [uri] referenced in this file. 796 * Return the [_File] for the [uri] referenced in this file.
802 */ 797 */
803 _File resolveUri(String uri) { 798 _File resolveUri(String uri) {
799 // TODO(scheglov) Consider removing this caching after implementing other
800 // optimizations, e.g. changeFile() optimization.
804 Source uriSource = driver._uriResolutionCache 801 Source uriSource = driver._uriResolutionCache
805 .putIfAbsent(this.uri, () => <String, Source>{}) 802 .putIfAbsent(this.uri, () => <String, Source>{})
806 .putIfAbsent(uri, () => driver._sourceFactory.resolveUri(source, uri)); 803 .putIfAbsent(uri, () => driver._sourceFactory.resolveUri(source, uri));
807 return new _File(driver, uriSource); 804 return new _File(driver, uriSource);
808 } 805 }
809 806
810 @override 807 @override
811 String toString() => uri.toString(); 808 String toString() => uri.toString();
812 809
813 /** 810 /**
(...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after
955 952
956 /** 953 /**
957 * TODO(scheglov) document 954 * TODO(scheglov) document
958 */ 955 */
959 class _ReferencedUris { 956 class _ReferencedUris {
960 bool isLibrary = true; 957 bool isLibrary = true;
961 final List<String> imported = <String>[]; 958 final List<String> imported = <String>[];
962 final List<String> exported = <String>[]; 959 final List<String> exported = <String>[];
963 final List<String> parted = <String>[]; 960 final List<String> parted = <String>[];
964 } 961 }
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698