| OLD | NEW |
| 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 308 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 319 */ | 319 */ |
| 320 void _addToStoreUnlinked( | 320 void _addToStoreUnlinked( |
| 321 SummaryDataStore store, String uri, UnlinkedUnit unlinked) { | 321 SummaryDataStore store, String uri, UnlinkedUnit unlinked) { |
| 322 store.unlinkedMap[uri] = unlinked; | 322 store.unlinkedMap[uri] = unlinked; |
| 323 } | 323 } |
| 324 | 324 |
| 325 /** | 325 /** |
| 326 * Compute the [AnalysisResult] for the [file]. | 326 * Compute the [AnalysisResult] for the [file]. |
| 327 */ | 327 */ |
| 328 AnalysisResult _computeAnalysisResult(_File file) { | 328 AnalysisResult _computeAnalysisResult(_File file) { |
| 329 // TODO(scheglov) Computing resolved unit fails for these units. | |
| 330 // pkg/analyzer/lib/plugin/embedded_resolver_provider.dart | |
| 331 // pkg/analyzer/lib/plugin/embedded_resolver_provider.dart | |
| 332 if (file.path.endsWith( | |
| 333 'pkg/analyzer/lib/plugin/embedded_resolver_provider.dart') || | |
| 334 file.path.endsWith('pkg/analyzer/lib/source/embedder.dart') || | |
| 335 file.path.endsWith('pkg/analyzer/lib/src/generated/ast.dart') || | |
| 336 file.path.endsWith('pkg/analyzer/lib/src/generated/element.dart') || | |
| 337 file.path | |
| 338 .endsWith('pkg/analyzer/lib/src/generated/element_handle.dart') || | |
| 339 file.path.endsWith('pkg/analyzer/lib/src/generated/error.dart') || | |
| 340 file.path.endsWith('pkg/analyzer/lib/src/generated/scanner.dart') || | |
| 341 file.path.endsWith('pkg/analyzer/lib/src/generated/sdk_io.dart') || | |
| 342 file.path.endsWith('pkg/analyzer/lib/src/generated/visitors.dart') || | |
| 343 file.path.endsWith('pkg/analyzer/test/generated/constant_test.dart') || | |
| 344 file.path.endsWith('pkg/analyzer/test/source/embedder_test.dart')) { | |
| 345 return new AnalysisResult( | |
| 346 file.path, file.uri, null, file.contentHash, null, []); | |
| 347 } | |
| 348 | |
| 349 return _logger.run('Compute analysis result for $file', () { | 329 return _logger.run('Compute analysis result for $file', () { |
| 350 _LibraryContext libraryContext = _createLibraryContext(file); | 330 _LibraryContext libraryContext = _createLibraryContext(file); |
| 351 AnalysisContext analysisContext = _createAnalysisContext(libraryContext); | 331 AnalysisContext analysisContext = _createAnalysisContext(libraryContext); |
| 352 analysisContext.setContents(file.source, file.content); | 332 analysisContext.setContents(file.source, file.content); |
| 353 // TODO(scheglov) Add support for parts. | 333 // TODO(scheglov) Add support for parts. |
| 354 CompilationUnit resolvedUnit = | 334 CompilationUnit resolvedUnit = |
| 355 analysisContext.resolveCompilationUnit2(file.source, file.source); | 335 analysisContext.resolveCompilationUnit2(file.source, file.source); |
| 356 List<AnalysisError> errors = analysisContext.computeErrors(file.source); | 336 List<AnalysisError> errors = analysisContext.computeErrors(file.source); |
| 357 return new AnalysisResult(file.path, file.uri, file.content, | 337 return new AnalysisResult(file.path, file.uri, file.content, |
| 358 file.contentHash, resolvedUnit, errors); | 338 file.contentHash, resolvedUnit, errors); |
| (...skipping 171 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 530 file.uri.toString(), unlinkedUnit, key); | 510 file.uri.toString(), unlinkedUnit, key); |
| 531 List<int> bytes = assembler.assemble().toBuffer(); | 511 List<int> bytes = assembler.assemble().toBuffer(); |
| 532 _byteStore.put(key, bytes); | 512 _byteStore.put(key, bytes); |
| 533 return new PackageBundle.fromBuffer(bytes); | 513 return new PackageBundle.fromBuffer(bytes); |
| 534 }); | 514 }); |
| 535 } | 515 } |
| 536 | 516 |
| 537 /** | 517 /** |
| 538 * Verify the API signatures for the changed files, and decide which linked | 518 * Verify the API signatures for the changed files, and decide which linked |
| 539 * libraries should be invalidated, and files reanalyzed. | 519 * libraries should be invalidated, and files reanalyzed. |
| 540 * | |
| 541 * TODO(scheglov) I see that adding a local var changes (full) API signature. | |
| 542 */ | 520 */ |
| 543 void _verifyUnlinkedSignatureOfChangedFiles() { | 521 void _verifyUnlinkedSignatureOfChangedFiles() { |
| 544 if (_filesToVerifyUnlinkedSignature.isEmpty) { | 522 if (_filesToVerifyUnlinkedSignature.isEmpty) { |
| 545 return; | 523 return; |
| 546 } | 524 } |
| 547 int numOfFiles = _filesToVerifyUnlinkedSignature.length; | 525 int numOfFiles = _filesToVerifyUnlinkedSignature.length; |
| 548 _logger.run('Verify API signatures of $numOfFiles files', () { | 526 _logger.run('Verify API signatures of $numOfFiles files', () { |
| 549 for (String path in _filesToVerifyUnlinkedSignature) { | 527 for (String path in _filesToVerifyUnlinkedSignature) { |
| 550 _File file = _fileForPath(path); | 528 _File file = _fileForPath(path); |
| 551 // Get the existing old API signature, maybe null. | 529 // Get the existing old API signature, maybe null. |
| (...skipping 422 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 974 } | 952 } |
| 975 } | 953 } |
| 976 for (UnlinkedExportPublic export in unit.publicNamespace.exports) { | 954 for (UnlinkedExportPublic export in unit.publicNamespace.exports) { |
| 977 referenced.exported.add(export.uri); | 955 referenced.exported.add(export.uri); |
| 978 } | 956 } |
| 979 return referenced; | 957 return referenced; |
| 980 } | 958 } |
| 981 | 959 |
| 982 _ReferencedUris._(); | 960 _ReferencedUris._(); |
| 983 } | 961 } |
| OLD | NEW |