From 2206b6999bbcf2b8f946497f06c5d990c1efcc8b Mon Sep 17 00:00:00 2001 From: Sam Rawlins Date: Mon, 6 Dec 2021 00:54:35 +0000 Subject: [PATCH] analysis_server: Remove implicit casts in lib/ Bug: https://github.com/dart-lang/sdk/issues/41651 Change-Id: I1a804bbf0c0b2d26fcd12111ec68f673f4a41a04 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/222042 Reviewed-by: Brian Wilkerson Reviewed-by: Konstantin Shcheglov Commit-Queue: Samuel Rawlins --- .../lib/src/plugin/plugin_manager.dart | 2 +- .../lib/src/server/dev_server.dart | 11 ++--- .../lib/src/server/driver.dart | 45 ++++++++++--------- .../statement/statement_completion.dart | 6 +-- .../yaml/yaml_completion_generator.dart | 11 ++--- .../services/correction/dart/data_driven.dart | 2 +- .../dart/flutter_convert_to_children.dart | 15 +++---- .../fix/analysis_options/fix_generator.dart | 2 +- .../transform_override_set_parser.dart | 1 + .../fix/data_driven/transform_set_parser.dart | 3 +- .../lib/src/services/correction/util.dart | 4 +- .../lib/src/status/tree_writer.dart | 4 +- 12 files changed, 56 insertions(+), 50 deletions(-) diff --git a/pkg/analysis_server/lib/src/plugin/plugin_manager.dart b/pkg/analysis_server/lib/src/plugin/plugin_manager.dart index 5972a14d89a..fa6eee9070d 100644 --- a/pkg/analysis_server/lib/src/plugin/plugin_manager.dart +++ b/pkg/analysis_server/lib/src/plugin/plugin_manager.dart @@ -743,7 +743,7 @@ class PluginManager { sourceUrl: pubspecFile.toUri()); var contents = document.contents; if (contents is YamlMap) { - YamlNode dependencies = contents['dependencies']; + var dependencies = contents['dependencies'] as YamlNode?; if (dependencies is YamlMap) { return dependencies.keys.cast(); } diff --git a/pkg/analysis_server/lib/src/server/dev_server.dart b/pkg/analysis_server/lib/src/server/dev_server.dart index b11c418f302..d59e2fae28e 100644 --- a/pkg/analysis_server/lib/src/server/dev_server.dart +++ b/pkg/analysis_server/lib/src/server/dev_server.dart @@ -80,20 +80,21 @@ class DevAnalysisServer { continue; } - String severity = error['severity'].toLowerCase(); + var severity = (error['severity'] as String).toLowerCase(); if (severity == 'warning' && exitCode < 1) { exitCode = 1; } else if (severity == 'error' && exitCode < 2) { exitCode = 2; } - String message = error['message']; + var message = error['message'] as String; if (message.endsWith('.')) { message = message.substring(0, message.length - 1); } - String code = error['code']; - int line = error['location']['startLine']; - int column = error['location']['startColumn']; + var code = error['code'] as String; + var location = error['location'] as Map; + var line = location['startLine'] as int; + var column = location['startColumn'] as int; print(' $severity • $bold$message$none at $filePath:$line:$column • ' '($code)'); diff --git a/pkg/analysis_server/lib/src/server/driver.dart b/pkg/analysis_server/lib/src/server/driver.dart index 5016f768d1c..47504a446c6 100644 --- a/pkg/analysis_server/lib/src/server/driver.dart +++ b/pkg/analysis_server/lib/src/server/driver.dart @@ -145,10 +145,12 @@ class Driver implements ServerStarter { var analysisServerOptions = AnalysisServerOptions(); analysisServerOptions.newAnalysisDriverLog = - results[ANALYSIS_DRIVER_LOG] ?? results[ANALYSIS_DRIVER_LOG_ALIAS]; - analysisServerOptions.clientId = results[CLIENT_ID]; + (results[ANALYSIS_DRIVER_LOG] ?? results[ANALYSIS_DRIVER_LOG_ALIAS]) + as String?; + analysisServerOptions.clientId = results[CLIENT_ID] as String?; if (results.wasParsed(USE_LSP)) { - analysisServerOptions.useLanguageServerProtocol = results[USE_LSP]; + analysisServerOptions.useLanguageServerProtocol = + results[USE_LSP] as bool; } else { analysisServerOptions.useLanguageServerProtocol = results[SERVER_PROTOCOL] == PROTOCOL_LSP; @@ -160,18 +162,18 @@ class Driver implements ServerStarter { ? 'unknown.client.lsp' : 'unknown.client.classic'; - analysisServerOptions.clientVersion = results[CLIENT_VERSION]; - analysisServerOptions.cacheFolder = results[CACHE_FOLDER]; - analysisServerOptions.packagesFile = results[PACKAGES_FILE]; + analysisServerOptions.clientVersion = results[CLIENT_VERSION] as String?; + analysisServerOptions.cacheFolder = results[CACHE_FOLDER] as String?; + analysisServerOptions.packagesFile = results[PACKAGES_FILE] as String?; analysisServerOptions.reportProtocolVersion = - results[REPORT_PROTOCOL_VERSION]; + results[REPORT_PROTOCOL_VERSION] as String?; // Read in any per-SDK overrides specified in /config/settings.json. var sdkConfig = SdkConfiguration.readFromSdk(); analysisServerOptions.configurationOverrides = sdkConfig; // Analytics - bool disableAnalyticsForSession = results[SUPPRESS_ANALYTICS_FLAG]; + var disableAnalyticsForSession = results[SUPPRESS_ANALYTICS_FLAG] as bool; if (results.wasParsed(TRAIN_USING)) { disableAnalyticsForSession = true; } @@ -212,15 +214,16 @@ class Driver implements ServerStarter { if (telemetry.showAnalyticsUI) { if (results.wasParsed(ANALYTICS_FLAG)) { - analytics.enabled = results[ANALYTICS_FLAG]; + analytics.enabled = results[ANALYTICS_FLAG] as bool; print(telemetry.createAnalyticsStatusMessage(analytics.enabled)); return null; } } { - bool disableCompletion = results[DISABLE_SERVER_FEATURE_COMPLETION]; - bool disableSearch = results[DISABLE_SERVER_FEATURE_SEARCH]; + var disableCompletion = + results[DISABLE_SERVER_FEATURE_COMPLETION] as bool; + var disableSearch = results[DISABLE_SERVER_FEATURE_SEARCH] as bool; if (disableCompletion || disableSearch) { analysisServerOptions.featureSet = FeatureSet( completion: !disableCompletion, @@ -229,7 +232,7 @@ class Driver implements ServerStarter { } } - if (results[HELP_OPTION]) { + if (results[HELP_OPTION] as bool) { _printUsage(parser, analytics, fromHelp: true); return null; } @@ -244,8 +247,8 @@ class Driver implements ServerStarter { // // Initialize the instrumentation service. // - var logFilePath = - results[PROTOCOL_TRAFFIC_LOG] ?? results[PROTOCOL_TRAFFIC_LOG_ALIAS]; + var logFilePath = (results[PROTOCOL_TRAFFIC_LOG] ?? + results[PROTOCOL_TRAFFIC_LOG_ALIAS]) as String?; var allInstrumentationServices = this.instrumentationService == null ? [] : [this.instrumentationService!]; @@ -274,8 +277,8 @@ class Driver implements ServerStarter { AnalysisEngine.instance.instrumentationService = instrumentationService; int? diagnosticServerPort; - final String? portValue = - results[DIAGNOSTIC_PORT] ?? results[DIAGNOSTIC_PORT_ALIAS]; + final portValue = + (results[DIAGNOSTIC_PORT] ?? results[DIAGNOSTIC_PORT_ALIAS]) as String?; if (portValue != null) { try { diagnosticServerPort = int.parse(portValue); @@ -324,10 +327,10 @@ class Driver implements ServerStarter { ErrorNotifier errorNotifier, SendPort? sendPort, ) { - var capture = results[DISABLE_SERVER_EXCEPTION_HANDLING] + var capture = results[DISABLE_SERVER_EXCEPTION_HANDLING] as bool ? (_, Function f, {Function(String)? print}) => f() : _captureExceptions; - var trainDirectory = results[TRAIN_USING]; + var trainDirectory = results[TRAIN_USING] as String?; if (trainDirectory != null) { if (!FileSystemEntity.isDirectorySync(trainDirectory)) { print("Training directory '$trainDirectory' not found.\n"); @@ -426,7 +429,7 @@ class Driver implements ServerStarter { if (sendPort == null) exit(0); }); }, - print: results[INTERNAL_PRINT_TO_CONSOLE] + print: results[INTERNAL_PRINT_TO_CONSOLE] as bool ? null : httpServer!.recordPrint); } @@ -440,7 +443,7 @@ class Driver implements ServerStarter { int? diagnosticServerPort, ErrorNotifier errorNotifier, ) { - var capture = args[DISABLE_SERVER_EXCEPTION_HANDLING] + var capture = args[DISABLE_SERVER_EXCEPTION_HANDLING] as bool ? (_, Function f, {Function(String)? print}) => f() : _captureExceptions; @@ -483,7 +486,7 @@ class Driver implements ServerStarter { InstrumentationService service, void Function() callback, {void Function(String line)? print}) { void errorFunction(Zone self, ZoneDelegate parent, Zone zone, - dynamic exception, StackTrace stackTrace) { + Object exception, StackTrace stackTrace) { service.logException(exception, stackTrace); throw exception; } diff --git a/pkg/analysis_server/lib/src/services/completion/statement/statement_completion.dart b/pkg/analysis_server/lib/src/services/completion/statement/statement_completion.dart index e337213c840..2da4819dc04 100644 --- a/pkg/analysis_server/lib/src/services/completion/statement/statement_completion.dart +++ b/pkg/analysis_server/lib/src/services/completion/statement/statement_completion.dart @@ -262,7 +262,7 @@ class StatementCompletionProcessor { void _checkExpressions(AstNode node) { // Note: This may queue edits that have to be accounted for later. // See _lengthOfInsertions(). - AstNode? errorMatching(errorCode, {partialMatch}) { + AstNode? errorMatching(ErrorCode errorCode, {Pattern? partialMatch}) { var error = _findError(errorCode, partialMatch: partialMatch); if (error == null) { return null; @@ -1069,7 +1069,7 @@ class StatementCompletionProcessor { node, stmt, DartStatementCompletion.COMPLETE_WHILE_STMT); } - engine.AnalysisError? _findError(ErrorCode code, {partialMatch}) { + engine.AnalysisError? _findError(ErrorCode code, {Pattern? partialMatch}) { return errors.firstWhereOrNull((err) => err.errorCode == code && (partialMatch == null ? true : err.message.contains(partialMatch))); @@ -1169,7 +1169,7 @@ class StatementCompletionProcessor { return Position(file, offset); } - void _removeError(errorCode, {partialMatch}) { + void _removeError(ErrorCode errorCode, {Pattern? partialMatch}) { var error = _findError(errorCode, partialMatch: partialMatch); if (error != null) { errors.remove(error); diff --git a/pkg/analysis_server/lib/src/services/completion/yaml/yaml_completion_generator.dart b/pkg/analysis_server/lib/src/services/completion/yaml/yaml_completion_generator.dart index 618ba40e123..53c3de6184e 100644 --- a/pkg/analysis_server/lib/src/services/completion/yaml/yaml_completion_generator.dart +++ b/pkg/analysis_server/lib/src/services/completion/yaml/yaml_completion_generator.dart @@ -131,7 +131,7 @@ abstract class YamlCompletionGenerator { // value that was next in the path. var key = node.keyAtValue(path[i + 1]); if (key is YamlScalar) { - producer = producer.producerForKey(key.value); + producer = producer.producerForKey(key.value as String); // Otherwise, if the item next in the path was a key itself, use the // current producer to provide completion for the key. } else if (node.nodes.containsKey(path[i + 1])) { @@ -154,10 +154,11 @@ abstract class YamlCompletionGenerator { List siblingsInList(YamlList list, YamlNode? currentElement) { var siblings = []; for (var element in list.nodes) { - if (element != currentElement && - element is YamlScalar && - element.value is String) { - siblings.add(element.value); + if (element != currentElement && element is YamlScalar) { + var value = element.value; + if (value is String) { + siblings.add(value); + } } } return siblings; diff --git a/pkg/analysis_server/lib/src/services/correction/dart/data_driven.dart b/pkg/analysis_server/lib/src/services/correction/dart/data_driven.dart index ed399acc4fd..9dbbac961dc 100644 --- a/pkg/analysis_server/lib/src/services/correction/dart/data_driven.dart +++ b/pkg/analysis_server/lib/src/services/correction/dart/data_driven.dart @@ -92,7 +92,7 @@ class DataDrivenFix extends CorrectionProducer { } var data = []; for (var change in changes) { - var result = change.validate(this); + var result = change.validate(this) as Object?; if (result == null) { return; } diff --git a/pkg/analysis_server/lib/src/services/correction/dart/flutter_convert_to_children.dart b/pkg/analysis_server/lib/src/services/correction/dart/flutter_convert_to_children.dart index 755c644ca81..7f9a1044b67 100644 --- a/pkg/analysis_server/lib/src/services/correction/dart/flutter_convert_to_children.dart +++ b/pkg/analysis_server/lib/src/services/correction/dart/flutter_convert_to_children.dart @@ -42,16 +42,16 @@ class FlutterConvertToChildren extends CorrectionProducer { void _convertFlutterChildToChildren( NamedExpression namedExp, String eol, - Function getNodeText, - Function getLinePrefix, - Function getIndent, - Function getText, + String Function(Expression) getNodeText, + String Function(int) getLinePrefix, + String Function(int) getIndent, + String Function(int, int) getText, FileEditBuilder builder) { var childArg = namedExp.expression; var childLoc = namedExp.offset + 'child'.length; builder.addSimpleInsertion(childLoc, 'ren'); var listLoc = childArg.offset; - String childArgSrc = getNodeText(childArg); + var childArgSrc = getNodeText(childArg); if (!childArgSrc.contains(eol)) { builder.addSimpleInsertion(listLoc, '['); builder.addSimpleInsertion(listLoc + childArg.length, ']'); @@ -60,11 +60,10 @@ class FlutterConvertToChildren extends CorrectionProducer { if (newlineLoc == childArgSrc.length) { newlineLoc -= 1; } - String indentOld = - getLinePrefix(childArg.offset + eol.length + newlineLoc); + var indentOld = getLinePrefix(childArg.offset + eol.length + newlineLoc); var indentNew = '$indentOld${getIndent(1)}'; // The separator includes 'child:' but that has no newlines. - String separator = + var separator = getText(namedExp.offset, childArg.offset - namedExp.offset); var prefix = separator.contains(eol) ? '' : '$eol$indentNew'; if (prefix.isEmpty) { diff --git a/pkg/analysis_server/lib/src/services/correction/fix/analysis_options/fix_generator.dart b/pkg/analysis_server/lib/src/services/correction/fix/analysis_options/fix_generator.dart index d3b6ac3326f..8c148db4f67 100644 --- a/pkg/analysis_server/lib/src/services/correction/fix/analysis_options/fix_generator.dart +++ b/pkg/analysis_server/lib/src/services/correction/fix/analysis_options/fix_generator.dart @@ -151,7 +151,7 @@ class AnalysisOptionsFixGenerator { } else if (nodes.containsValue(child)) { for (var entry in nodes.entries) { if (child == entry.value) { - key = entry.key; + key = entry.key as YamlNode?; value = child; break; } diff --git a/pkg/analysis_server/lib/src/services/correction/fix/data_driven/transform_override_set_parser.dart b/pkg/analysis_server/lib/src/services/correction/fix/data_driven/transform_override_set_parser.dart index aec5cc03ecc..8eb75378412 100644 --- a/pkg/analysis_server/lib/src/services/correction/fix/data_driven/transform_override_set_parser.dart +++ b/pkg/analysis_server/lib/src/services/correction/fix/data_driven/transform_override_set_parser.dart @@ -91,6 +91,7 @@ class TransformOverrideSetParser { /// Report any keys in the [map] whose values are not in [validKeys]. void _reportUnsupportedKeys(YamlMap map, Set validKeys) { for (var keyNode in map.nodes.keys) { + keyNode as YamlNode; var key = _translateKey(keyNode); if (key != null && !validKeys.contains(key)) { _reportError(TransformSetErrorCode.unsupportedKey, keyNode, [key]); diff --git a/pkg/analysis_server/lib/src/services/correction/fix/data_driven/transform_set_parser.dart b/pkg/analysis_server/lib/src/services/correction/fix/data_driven/transform_set_parser.dart index dc8184c86c6..b65d750b5ec 100644 --- a/pkg/analysis_server/lib/src/services/correction/fix/data_driven/transform_set_parser.dart +++ b/pkg/analysis_server/lib/src/services/correction/fix/data_driven/transform_set_parser.dart @@ -292,6 +292,7 @@ class TransformSetParser { /// Report any keys in the [map] whose values are not in [validKeys]. void _reportUnsupportedKeys(YamlMap map, Set validKeys) { for (var keyNode in map.nodes.keys) { + keyNode as YamlNode; var key = _translateKey(keyNode); if (key != null && !validKeys.contains(key)) { _reportError(TransformSetErrorCode.unsupportedKey, keyNode, [key]); @@ -910,7 +911,7 @@ class TransformSetParser { if (node is YamlMap) { var generators = {}; for (var entry in node.nodes.entries) { - var name = _translateKey(entry.key); + var name = _translateKey(entry.key as YamlNode); if (name != null) { var value = _translateValueGenerator( entry.value, ErrorContext(key: name, parentNode: node)); diff --git a/pkg/analysis_server/lib/src/services/correction/util.dart b/pkg/analysis_server/lib/src/services/correction/util.dart index be7ef604cb2..906642943ed 100644 --- a/pkg/analysis_server/lib/src/services/correction/util.dart +++ b/pkg/analysis_server/lib/src/services/correction/util.dart @@ -492,8 +492,8 @@ Expression stepUpNamedExpression(Expression expression) { } /// Return `true` if the given [lists] are identical at the given [position]. -bool _allListsIdentical(List lists, int position) { - Object element = lists[0][position]; +bool _allListsIdentical(List> lists, int position) { + var element = lists[0][position]; for (var list in lists) { if (list[position] != element) { return false; diff --git a/pkg/analysis_server/lib/src/status/tree_writer.dart b/pkg/analysis_server/lib/src/status/tree_writer.dart index ec2078038e1..01543e1eb4c 100644 --- a/pkg/analysis_server/lib/src/status/tree_writer.dart +++ b/pkg/analysis_server/lib/src/status/tree_writer.dart @@ -80,13 +80,13 @@ mixin TreeWriter { /// Write the [value] of the property with the given [name]. void _writePropertyValue(Object value, int baseIndent) { - if (value is List) { + if (value is List) { if (value.isEmpty) { buffer.write('[]'); } else { var elementIndent = baseIndent + 2; buffer.write('[
'); - for (Object element in value) { + for (var element in value) { indent(elementIndent); _writePropertyValue(element, elementIndent); buffer.write('
');