From 9c6e54851283f57e2b101af9e8e1970b456d59dd Mon Sep 17 00:00:00 2001 From: Jaime Wren Date: Fri, 17 Jan 2020 00:37:25 +0000 Subject: [PATCH] Error handling in completion_metrics.dart - don't attempt to create an AnalysisContextCollection until we have determined that the included path exists on the machine. Change-Id: I15e2884bfd9e243f0b01081e1c43a929ceaeae1a Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/132222 Reviewed-by: Brian Wilkerson Commit-Queue: Jaime Wren --- .../tool/completion_metrics/completion_metrics.dart | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/pkg/analysis_server/tool/completion_metrics/completion_metrics.dart b/pkg/analysis_server/tool/completion_metrics/completion_metrics.dart index 887edf62c2a41..37ed4de00248b 100644 --- a/pkg/analysis_server/tool/completion_metrics/completion_metrics.dart +++ b/pkg/analysis_server/tool/completion_metrics/completion_metrics.dart @@ -4,6 +4,7 @@ import 'dart:async'; import 'dart:math'; +import 'dart:io' as io; import 'package:analysis_server/src/protocol_server.dart'; import 'package:analysis_server/src/services/completion/completion_core.dart'; @@ -32,7 +33,13 @@ Future _computeCompletionMetrics( int notIncludedCount = 0; for (var root in analysisRoots) { - print('Analyzing root: $root'); + print('Analyzing root: \"$root\"'); + + if (!io.Directory(root).existsSync()) { + print('\tError: No such directory exists on this machine.\n'); + continue; + } + final collection = AnalysisContextCollection( includedPaths: [root], resourceProvider: resourceProvider,