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

Unified Diff: pkg/analyzer_cli/lib/src/driver.dart

Issue 1811753002: Revert "Directory support for the analyzer CLI (#25129)." [TBR] (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 4 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « pkg/analyzer_cli/lib/src/analyzer_impl.dart ('k') | pkg/analyzer_cli/lib/src/error_formatter.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: pkg/analyzer_cli/lib/src/driver.dart
diff --git a/pkg/analyzer_cli/lib/src/driver.dart b/pkg/analyzer_cli/lib/src/driver.dart
index 59b10d23892c4a29b5a14520031e9d36d09cc5d3..dc40c0d6f3fe3927b1173258deaf65a83f8eccc9 100644
--- a/pkg/analyzer_cli/lib/src/driver.dart
+++ b/pkg/analyzer_cli/lib/src/driver.dart
@@ -33,7 +33,6 @@ import 'package:analyzer/src/generated/utilities_general.dart'
import 'package:analyzer/src/services/lint.dart';
import 'package:analyzer/src/task/options.dart';
import 'package:analyzer_cli/src/analyzer_impl.dart';
-import 'package:analyzer_cli/src/error_formatter.dart';
import 'package:analyzer_cli/src/options.dart';
import 'package:analyzer_cli/src/package_analyzer.dart';
import 'package:analyzer_cli/src/perf_report.dart';
@@ -90,9 +89,6 @@ class Driver implements CommandLineStarter {
@override
ResolverProvider packageResolverProvider;
- /// Collected analysis statistics.
- final AnalysisStats stats = new AnalysisStats();
-
/// This Driver's current analysis context.
///
/// *Visible for testing.*
@@ -100,7 +96,7 @@ class Driver implements CommandLineStarter {
@override
void set userDefinedPlugins(List<Plugin> plugins) {
- _userDefinedPlugins = plugins ?? <Plugin>[];
+ _userDefinedPlugins = plugins == null ? <Plugin>[] : plugins;
}
@override
@@ -166,32 +162,32 @@ class Driver implements CommandLineStarter {
// Add all the files to be analyzed en masse to the context. Skip any
// files that were added earlier (whether explicitly or implicitly) to
// avoid causing those files to be unnecessarily re-read.
- Set<Source> knownSources = context.sources.toSet();
+ Set<Source> knownSources = _context.sources.toSet();
List<Source> sourcesToAnalyze = <Source>[];
ChangeSet changeSet = new ChangeSet();
for (String sourcePath in options.sourceFiles) {
sourcePath = sourcePath.trim();
-
- // Collect files for analysis.
- // Note that these files will all be analyzed in the same context.
- // This should be updated when the ContextManager re-work is complete
- // (See: https://github.com/dart-lang/sdk/issues/24133)
- Iterable<File> files = _collectFiles(sourcePath);
- if (files.isEmpty) {
- errorSink.writeln('No dart files found at: $sourcePath');
+ // Check that file exists.
+ if (!new File(sourcePath).existsSync()) {
+ errorSink.writeln('File not found: $sourcePath');
exitCode = ErrorSeverity.ERROR.ordinal;
+ //Fail fast; don't analyze more files
return ErrorSeverity.ERROR;
}
-
- for (File file in files) {
- Source source = _computeLibrarySource(file.absolute.path);
- if (!knownSources.contains(source)) {
- changeSet.addedSource(source);
- sourcesToAnalyze.add(source);
- }
+ // Check that file is Dart file.
+ if (!AnalysisEngine.isDartFileName(sourcePath)) {
+ errorSink.writeln('$sourcePath is not a Dart file');
+ exitCode = ErrorSeverity.ERROR.ordinal;
+ // Fail fast; don't analyze more files.
+ return ErrorSeverity.ERROR;
+ }
+ Source source = _computeLibrarySource(sourcePath);
+ if (!knownSources.contains(source)) {
+ changeSet.addedSource(source);
}
+ sourcesToAnalyze.add(source);
}
- context.applyChanges(changeSet);
+ _context.applyChanges(changeSet);
// Analyze the libraries.
ErrorSeverity allResult = ErrorSeverity.NONE;
@@ -223,17 +219,13 @@ class Driver implements CommandLineStarter {
}
}
- if (!options.machineFormat) {
- stats.print(outSink);
- }
-
return allResult;
}
/// Perform package analysis according to the given [options].
ErrorSeverity _analyzePackage(CommandLineOptions options) {
return _analyzeAllTag.makeCurrentWhile(() {
- return new PackageAnalyzer(options, stats).analyze();
+ return new PackageAnalyzer(options).analyze();
});
}
@@ -459,29 +451,6 @@ class Driver implements CommandLineStarter {
return new SourceFactory(resolvers, packages);
}
- /// Collect all analyzable files at [filePath], recursively if it's a
- /// directory, ignoring links.
- Iterable<File> _collectFiles(String filePath) {
- List<File> files = <File>[];
- File file = new File(filePath);
- if (file.existsSync()) {
- files.add(file);
- } else {
- Directory directory = new Directory(filePath);
- if (directory.existsSync()) {
- for (FileSystemEntity entry
- in directory.listSync(recursive: true, followLinks: false)) {
- String relative = path.relative(entry.path, from: directory.path);
- if (AnalysisEngine.isDartFileName(entry.path) &&
- !_isInHiddenDir(relative)) {
- files.add(entry);
- }
- }
- }
- }
- return files;
- }
-
/// Convert the given [sourcePath] (which may be relative to the current
/// working directory) to a [Source] object that can be fed to the analysis
/// context.
@@ -556,10 +525,6 @@ class Driver implements CommandLineStarter {
return folderMap;
}
- /// Returns `true` if this relative path is a hidden directory.
- bool _isInHiddenDir(String relative) =>
- path.split(relative).any((part) => part.startsWith("."));
-
void _processPlugins() {
List<Plugin> plugins = <Plugin>[];
plugins.addAll(AnalysisEngine.instance.requiredPlugins);
@@ -576,7 +541,7 @@ class Driver implements CommandLineStarter {
ErrorSeverity _runAnalyzer(Source source, CommandLineOptions options) {
int startTime = currentTimeMillis();
AnalyzerImpl analyzer =
- new AnalyzerImpl(_context, source, options, stats, startTime);
+ new AnalyzerImpl(_context, source, options, startTime);
var errorSeverity = analyzer.analyzeSync();
if (errorSeverity == ErrorSeverity.ERROR) {
exitCode = errorSeverity.ordinal;
« no previous file with comments | « pkg/analyzer_cli/lib/src/analyzer_impl.dart ('k') | pkg/analyzer_cli/lib/src/error_formatter.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698