| OLD | NEW |
| 1 // Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2017, 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 'package:analyzer/context/declared_variables.dart'; | 5 import 'package:analyzer/context/declared_variables.dart'; |
| 6 import 'package:analyzer/dart/ast/ast.dart'; | 6 import 'package:analyzer/dart/ast/ast.dart'; |
| 7 import 'package:analyzer/dart/ast/visitor.dart'; | 7 import 'package:analyzer/dart/ast/visitor.dart'; |
| 8 import 'package:analyzer/dart/element/element.dart'; | 8 import 'package:analyzer/dart/element/element.dart'; |
| 9 import 'package:analyzer/error/error.dart'; | 9 import 'package:analyzer/error/error.dart'; |
| 10 import 'package:analyzer/error/listener.dart'; | 10 import 'package:analyzer/error/listener.dart'; |
| (...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 53 final Map<FileState, List<PendingError>> _fileToPendingErrors = {}; | 53 final Map<FileState, List<PendingError>> _fileToPendingErrors = {}; |
| 54 final List<ConstantEvaluationTarget> _constants = []; | 54 final List<ConstantEvaluationTarget> _constants = []; |
| 55 | 55 |
| 56 LibraryAnalyzer(this._analysisOptions, this._declaredVariables, | 56 LibraryAnalyzer(this._analysisOptions, this._declaredVariables, |
| 57 this._sourceFactory, this._fsState, this._store, this._library); | 57 this._sourceFactory, this._fsState, this._store, this._library); |
| 58 | 58 |
| 59 /** | 59 /** |
| 60 * Compute analysis results for all units of the library. | 60 * Compute analysis results for all units of the library. |
| 61 */ | 61 */ |
| 62 Map<FileState, UnitAnalysisResult> analyze() { | 62 Map<FileState, UnitAnalysisResult> analyze() { |
| 63 return PerformanceStatistics.analysis.makeCurrentWhile(() { |
| 64 return _analyze(); |
| 65 }); |
| 66 } |
| 67 |
| 68 Map<FileState, UnitAnalysisResult> _analyze() { |
| 63 Map<FileState, CompilationUnit> units = {}; | 69 Map<FileState, CompilationUnit> units = {}; |
| 64 | 70 |
| 65 // Parse all files. | 71 // Parse all files. |
| 66 units[_library] = _parse(_library); | 72 units[_library] = _parse(_library); |
| 67 for (FileState part in _library.partedFiles) { | 73 for (FileState part in _library.partedFiles) { |
| 68 units[part] = _parse(part); | 74 units[part] = _parse(part); |
| 69 } | 75 } |
| 70 | 76 |
| 71 // Resolve URIs in directives to corresponding sources. | 77 // Resolve URIs in directives to corresponding sources. |
| 72 units.forEach((file, unit) { | 78 units.forEach((file, unit) { |
| (...skipping 12 matching lines...) Expand all Loading... |
| 85 | 91 |
| 86 _resolveDirectives(units); | 92 _resolveDirectives(units); |
| 87 | 93 |
| 88 units.forEach((file, unit) { | 94 units.forEach((file, unit) { |
| 89 _resolveFile(file, unit); | 95 _resolveFile(file, unit); |
| 90 _computePendingMissingRequiredParameters(file, unit); | 96 _computePendingMissingRequiredParameters(file, unit); |
| 91 }); | 97 }); |
| 92 | 98 |
| 93 _computeConstants(); | 99 _computeConstants(); |
| 94 | 100 |
| 95 units.forEach((file, unit) { | 101 PerformanceStatistics.errors.makeCurrentWhile(() { |
| 96 _computeVerifyErrors(file, unit); | 102 units.forEach((file, unit) { |
| 103 _computeVerifyErrors(file, unit); |
| 104 }); |
| 97 }); | 105 }); |
| 98 | 106 |
| 99 if (_analysisOptions.hint) { | 107 if (_analysisOptions.hint) { |
| 100 units.forEach((file, unit) { | 108 PerformanceStatistics.hints.makeCurrentWhile(() { |
| 101 { | 109 units.forEach((file, unit) { |
| 102 var visitor = new GatherUsedLocalElementsVisitor(_libraryElement); | 110 { |
| 103 unit.accept(visitor); | 111 var visitor = new GatherUsedLocalElementsVisitor(_libraryElement); |
| 104 _usedLocalElementsList.add(visitor.usedElements); | 112 unit.accept(visitor); |
| 105 } | 113 _usedLocalElementsList.add(visitor.usedElements); |
| 106 { | 114 } |
| 107 var visitor = | 115 { |
| 108 new GatherUsedImportedElementsVisitor(_libraryElement); | 116 var visitor = |
| 109 unit.accept(visitor); | 117 new GatherUsedImportedElementsVisitor(_libraryElement); |
| 110 _usedImportedElementsList.add(visitor.usedElements); | 118 unit.accept(visitor); |
| 111 } | 119 _usedImportedElementsList.add(visitor.usedElements); |
| 112 }); | 120 } |
| 113 units.forEach((file, unit) { | 121 }); |
| 114 _computeHints(file, unit); | 122 units.forEach((file, unit) { |
| 123 _computeHints(file, unit); |
| 124 }); |
| 115 }); | 125 }); |
| 116 } | 126 } |
| 117 | 127 |
| 118 if (_analysisOptions.lint) { | 128 if (_analysisOptions.lint) { |
| 119 units.forEach((file, unit) { | 129 PerformanceStatistics.lints.makeCurrentWhile(() { |
| 120 _computeLints(file, unit); | 130 units.forEach((file, unit) { |
| 131 _computeLints(file, unit); |
| 132 }); |
| 121 }); | 133 }); |
| 122 } | 134 } |
| 123 } finally { | 135 } finally { |
| 124 _context.dispose(); | 136 _context.dispose(); |
| 125 } | 137 } |
| 126 | 138 |
| 127 // Return full results. | 139 // Return full results. |
| 128 Map<FileState, UnitAnalysisResult> results = {}; | 140 Map<FileState, UnitAnalysisResult> results = {}; |
| 129 units.forEach((file, unit) { | 141 units.forEach((file, unit) { |
| 130 List<AnalysisError> errors = _getErrorListener(file).errors; | 142 List<AnalysisError> errors = _getErrorListener(file).errors; |
| (...skipping 653 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 784 } | 796 } |
| 785 | 797 |
| 786 /** | 798 /** |
| 787 * Either the name or the source associated with a part-of directive. | 799 * Either the name or the source associated with a part-of directive. |
| 788 */ | 800 */ |
| 789 class _NameOrSource { | 801 class _NameOrSource { |
| 790 final String name; | 802 final String name; |
| 791 final Source source; | 803 final Source source; |
| 792 _NameOrSource(this.name, this.source); | 804 _NameOrSource(this.name, this.source); |
| 793 } | 805 } |
| OLD | NEW |