From 57392e832407039fefc5cd186bf4d03ea3f911ec Mon Sep 17 00:00:00 2001 From: Konstantin Shcheglov Date: Tue, 30 Jul 2024 20:32:24 +0000 Subject: [PATCH] CQ. Put TreeStringSink into analyzer_utilities/ to reuse. Change-Id: I7a1a3e6bc42830b842060fd778a6265ed614f9f5 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/378080 Commit-Queue: Konstantin Shcheglov Reviewed-by: Brian Wilkerson --- .../test/domain_analysis_test.dart | 2 +- .../abstract_lsp_over_legacy.dart | 2 +- .../analysis_context_collection_test.dart | 2 +- .../test/src/dart/analysis/driver_test.dart | 2 +- .../src/dart/analysis/result_printer.dart | 2 +- .../test/src/dart/analysis/session_test.dart | 2 +- .../element/inheritance_manager3_test.dart | 2 +- .../dart/resolution/dart_object_printer.dart | 2 +- .../dart/resolution/library_element_test.dart | 2 +- .../test/src/dart/resolution/resolution.dart | 2 +- .../src/diagnostics/parser_diagnostics.dart | 2 +- .../test/src/summary/element_text.dart | 2 +- pkg/analyzer/test/src/summary/macro_test.dart | 2 +- .../test/src/summary/reference_test.dart | 2 +- .../src/summary/resolved_ast_printer.dart | 2 +- pkg/analyzer/test/util/element_printer.dart | 3 +- pkg/analyzer/test/util/tree_string_sink.dart | 84 ------------------- pkg/analyzer/tool/benchmark/heap/result.dart | 3 +- .../lib/testing}/tree_string_sink.dart | 0 19 files changed, 17 insertions(+), 103 deletions(-) delete mode 100644 pkg/analyzer/test/util/tree_string_sink.dart rename pkg/{analysis_server/test/utils => analyzer_utilities/lib/testing}/tree_string_sink.dart (100%) diff --git a/pkg/analysis_server/test/domain_analysis_test.dart b/pkg/analysis_server/test/domain_analysis_test.dart index 02aea340082..ea237559f9b 100644 --- a/pkg/analysis_server/test/domain_analysis_test.dart +++ b/pkg/analysis_server/test/domain_analysis_test.dart @@ -14,6 +14,7 @@ import 'package:analyzer/src/util/file_paths.dart' as file_paths; import 'package:analyzer/src/utilities/extensions/file_system.dart'; import 'package:analyzer_plugin/protocol/protocol_common.dart'; import 'package:analyzer_plugin/protocol/protocol_generated.dart' as plugin; +import 'package:analyzer_utilities/testing/tree_string_sink.dart'; import 'package:collection/collection.dart'; import 'package:test/test.dart'; import 'package:test_reflective_loader/test_reflective_loader.dart'; @@ -21,7 +22,6 @@ import 'package:test_reflective_loader/test_reflective_loader.dart'; import 'analysis_server_base.dart'; import 'mocks.dart'; import 'services/completion/dart/text_expectations.dart'; -import 'utils/tree_string_sink.dart'; void main() { defineReflectiveSuite(() { diff --git a/pkg/analysis_server/test/lsp_over_legacy/abstract_lsp_over_legacy.dart b/pkg/analysis_server/test/lsp_over_legacy/abstract_lsp_over_legacy.dart index b210e186bb5..97d3bbcfd01 100644 --- a/pkg/analysis_server/test/lsp_over_legacy/abstract_lsp_over_legacy.dart +++ b/pkg/analysis_server/test/lsp_over_legacy/abstract_lsp_over_legacy.dart @@ -13,6 +13,7 @@ import 'package:analysis_server/src/protocol_server.dart'; import 'package:analyzer/file_system/file_system.dart'; import 'package:analyzer/src/utilities/extensions/file_system.dart'; import 'package:analyzer_plugin/src/utilities/client_uri_converter.dart'; +import 'package:analyzer_utilities/testing/tree_string_sink.dart'; import 'package:collection/collection.dart'; import 'package:path/path.dart' as path; import 'package:test/test.dart'; @@ -21,7 +22,6 @@ import '../analysis_server_base.dart'; import '../lsp/change_verifier.dart'; import '../lsp/request_helpers_mixin.dart'; import '../services/completion/dart/text_expectations.dart'; -import '../utils/tree_string_sink.dart'; class EventsCollector { final ContextResolutionTest test; diff --git a/pkg/analyzer/test/src/dart/analysis/analysis_context_collection_test.dart b/pkg/analyzer/test/src/dart/analysis/analysis_context_collection_test.dart index 4729b1c15f3..d24dae686fe 100644 --- a/pkg/analyzer/test/src/dart/analysis/analysis_context_collection_test.dart +++ b/pkg/analyzer/test/src/dart/analysis/analysis_context_collection_test.dart @@ -19,11 +19,11 @@ import 'package:analyzer/src/utilities/extensions/file_system.dart'; import 'package:analyzer/src/workspace/basic.dart'; import 'package:analyzer/src/workspace/pub.dart'; import 'package:analyzer/src/workspace/workspace.dart'; +import 'package:analyzer_utilities/testing/tree_string_sink.dart'; import 'package:linter/src/rules.dart'; import 'package:test/test.dart'; import 'package:test_reflective_loader/test_reflective_loader.dart'; -import '../../../util/tree_string_sink.dart'; import '../resolution/context_collection_resolution.dart'; import '../resolution/node_text_expectations.dart'; diff --git a/pkg/analyzer/test/src/dart/analysis/driver_test.dart b/pkg/analyzer/test/src/dart/analysis/driver_test.dart index 0dc80cfdc11..8f4b97e52d5 100644 --- a/pkg/analyzer/test/src/dart/analysis/driver_test.dart +++ b/pkg/analyzer/test/src/dart/analysis/driver_test.dart @@ -14,12 +14,12 @@ import 'package:analyzer/src/dart/analysis/status.dart'; import 'package:analyzer/src/dart/element/element.dart'; import 'package:analyzer/src/error/codes.dart'; import 'package:analyzer/src/utilities/extensions/async.dart'; +import 'package:analyzer_utilities/testing/tree_string_sink.dart'; import 'package:linter/src/rules.dart'; import 'package:test/test.dart'; import 'package:test_reflective_loader/test_reflective_loader.dart'; import '../../../util/element_printer.dart'; -import '../../../util/tree_string_sink.dart'; import '../resolution/context_collection_resolution.dart'; import '../resolution/node_text_expectations.dart'; import '../resolution/resolution.dart'; diff --git a/pkg/analyzer/test/src/dart/analysis/result_printer.dart b/pkg/analyzer/test/src/dart/analysis/result_printer.dart index de4a8c4eabd..532014f4dc9 100644 --- a/pkg/analyzer/test/src/dart/analysis/result_printer.dart +++ b/pkg/analyzer/test/src/dart/analysis/result_printer.dart @@ -12,10 +12,10 @@ import 'package:analyzer/src/dart/analysis/results.dart'; import 'package:analyzer/src/dart/analysis/status.dart'; import 'package:analyzer/src/summary/idl.dart'; import 'package:analyzer/src/utilities/extensions/file_system.dart'; +import 'package:analyzer_utilities/testing/tree_string_sink.dart'; import 'package:test/test.dart'; import '../../../util/element_printer.dart'; -import '../../../util/tree_string_sink.dart'; import '../../summary/resolved_ast_printer.dart'; sealed class DriverEvent {} diff --git a/pkg/analyzer/test/src/dart/analysis/session_test.dart b/pkg/analyzer/test/src/dart/analysis/session_test.dart index 3218b591d22..f649681166e 100644 --- a/pkg/analyzer/test/src/dart/analysis/session_test.dart +++ b/pkg/analyzer/test/src/dart/analysis/session_test.dart @@ -9,10 +9,10 @@ import 'package:analyzer/dart/element/element.dart'; import 'package:analyzer/file_system/file_system.dart'; import 'package:analyzer/src/dart/element/element.dart'; import 'package:analyzer/src/utilities/extensions/file_system.dart'; +import 'package:analyzer_utilities/testing/tree_string_sink.dart'; import 'package:test/test.dart'; import 'package:test_reflective_loader/test_reflective_loader.dart'; -import '../../../util/tree_string_sink.dart'; import '../resolution/context_collection_resolution.dart'; import '../resolution/node_text_expectations.dart'; diff --git a/pkg/analyzer/test/src/dart/element/inheritance_manager3_test.dart b/pkg/analyzer/test/src/dart/element/inheritance_manager3_test.dart index 42550c99491..8bd5c4e70b3 100644 --- a/pkg/analyzer/test/src/dart/element/inheritance_manager3_test.dart +++ b/pkg/analyzer/test/src/dart/element/inheritance_manager3_test.dart @@ -8,12 +8,12 @@ import 'package:analyzer/dart/element/type.dart'; import 'package:analyzer/src/dart/element/element.dart'; import 'package:analyzer/src/dart/element/extensions.dart'; import 'package:analyzer/src/dart/element/inheritance_manager3.dart'; +import 'package:analyzer_utilities/testing/tree_string_sink.dart'; import 'package:collection/collection.dart'; import 'package:test/test.dart'; import 'package:test_reflective_loader/test_reflective_loader.dart'; import '../../../util/element_printer.dart'; -import '../../../util/tree_string_sink.dart'; import '../../summary/elements_base.dart'; import '../resolution/context_collection_resolution.dart'; import '../resolution/node_text_expectations.dart'; diff --git a/pkg/analyzer/test/src/dart/resolution/dart_object_printer.dart b/pkg/analyzer/test/src/dart/resolution/dart_object_printer.dart index ff6b82b7822..1d7bdfbca9a 100644 --- a/pkg/analyzer/test/src/dart/resolution/dart_object_printer.dart +++ b/pkg/analyzer/test/src/dart/resolution/dart_object_printer.dart @@ -4,10 +4,10 @@ import 'package:analyzer/dart/element/type.dart'; import 'package:analyzer/src/dart/constant/value.dart'; +import 'package:analyzer_utilities/testing/tree_string_sink.dart'; import 'package:collection/collection.dart'; import '../../../util/element_printer.dart'; -import '../../../util/tree_string_sink.dart'; /// Prints [DartObjectImpl] as a tree, with values and fields. class DartObjectPrinter { diff --git a/pkg/analyzer/test/src/dart/resolution/library_element_test.dart b/pkg/analyzer/test/src/dart/resolution/library_element_test.dart index b2636cfa055..9e26460714d 100644 --- a/pkg/analyzer/test/src/dart/resolution/library_element_test.dart +++ b/pkg/analyzer/test/src/dart/resolution/library_element_test.dart @@ -7,13 +7,13 @@ import 'package:analyzer/dart/element/element.dart'; import 'package:analyzer/src/dart/analysis/experiments.dart'; import 'package:analyzer/src/dart/element/element.dart'; import 'package:analyzer/src/error/codes.dart'; +import 'package:analyzer_utilities/testing/tree_string_sink.dart'; import 'package:collection/collection.dart'; import 'package:pub_semver/pub_semver.dart'; import 'package:test/test.dart'; import 'package:test_reflective_loader/test_reflective_loader.dart'; import '../../../util/element_printer.dart'; -import '../../../util/tree_string_sink.dart'; import 'context_collection_resolution.dart'; import 'node_text_expectations.dart'; diff --git a/pkg/analyzer/test/src/dart/resolution/resolution.dart b/pkg/analyzer/test/src/dart/resolution/resolution.dart index d7b6ad9aabd..94a3971aabf 100644 --- a/pkg/analyzer/test/src/dart/resolution/resolution.dart +++ b/pkg/analyzer/test/src/dart/resolution/resolution.dart @@ -21,11 +21,11 @@ import 'package:analyzer/src/generated/engine.dart'; import 'package:analyzer/src/test_utilities/find_element.dart'; import 'package:analyzer/src/test_utilities/find_node.dart'; import 'package:analyzer/src/test_utilities/resource_provider_mixin.dart'; +import 'package:analyzer_utilities/testing/tree_string_sink.dart'; import 'package:test/test.dart'; import '../../../generated/test_support.dart'; import '../../../util/element_printer.dart'; -import '../../../util/tree_string_sink.dart'; import '../../summary/macros_environment.dart'; import '../../summary/resolved_ast_printer.dart'; import '../analysis/result_printer.dart'; diff --git a/pkg/analyzer/test/src/diagnostics/parser_diagnostics.dart b/pkg/analyzer/test/src/diagnostics/parser_diagnostics.dart index 59d47390630..d906f75b7c3 100644 --- a/pkg/analyzer/test/src/diagnostics/parser_diagnostics.dart +++ b/pkg/analyzer/test/src/diagnostics/parser_diagnostics.dart @@ -7,12 +7,12 @@ import 'package:analyzer/dart/analysis/utilities.dart'; import 'package:analyzer/dart/ast/ast.dart'; import 'package:analyzer/error/error.dart'; import 'package:analyzer/src/test_utilities/find_node.dart'; +import 'package:analyzer_utilities/testing/tree_string_sink.dart'; import 'package:test/test.dart'; import '../../generated/test_support.dart'; import '../../util/element_printer.dart'; import '../../util/feature_sets.dart'; -import '../../util/tree_string_sink.dart'; import '../dart/resolution/node_text_expectations.dart'; import '../summary/resolved_ast_printer.dart'; diff --git a/pkg/analyzer/test/src/summary/element_text.dart b/pkg/analyzer/test/src/summary/element_text.dart index a72150b4f5b..611d7125e1b 100644 --- a/pkg/analyzer/test/src/summary/element_text.dart +++ b/pkg/analyzer/test/src/summary/element_text.dart @@ -11,11 +11,11 @@ import 'package:analyzer/src/summary2/export.dart'; import 'package:analyzer/src/summary2/macro_application_error.dart'; import 'package:analyzer/src/summary2/macro_type_location.dart'; import 'package:analyzer/src/task/inference_error.dart'; +import 'package:analyzer_utilities/testing/tree_string_sink.dart'; import 'package:collection/collection.dart'; import 'package:test/test.dart'; import '../../util/element_printer.dart'; -import '../../util/tree_string_sink.dart'; import 'resolved_ast_printer.dart'; String getLibraryText({ diff --git a/pkg/analyzer/test/src/summary/macro_test.dart b/pkg/analyzer/test/src/summary/macro_test.dart index 9e3b0ae74cb..5e3c88d46a1 100644 --- a/pkg/analyzer/test/src/summary/macro_test.dart +++ b/pkg/analyzer/test/src/summary/macro_test.dart @@ -16,6 +16,7 @@ import 'package:analyzer/src/summary2/macro.dart'; import 'package:analyzer/src/summary2/macro_application.dart'; import 'package:analyzer/src/summary2/macro_application_error.dart'; import 'package:analyzer/src/utilities/extensions/file_system.dart'; +import 'package:analyzer_utilities/testing/tree_string_sink.dart'; import 'package:collection/collection.dart'; import 'package:macros/src/bootstrap.dart' as macro; import 'package:macros/src/executor/serialization.dart' as macro; @@ -23,7 +24,6 @@ import 'package:path/path.dart' as package_path; import 'package:test/test.dart'; import 'package:test_reflective_loader/test_reflective_loader.dart'; -import '../../util/tree_string_sink.dart'; import '../dart/resolution/context_collection_resolution.dart'; import '../dart/resolution/node_text_expectations.dart'; import 'element_text.dart'; diff --git a/pkg/analyzer/test/src/summary/reference_test.dart b/pkg/analyzer/test/src/summary/reference_test.dart index f783e08f1f9..e317a0e0d01 100644 --- a/pkg/analyzer/test/src/summary/reference_test.dart +++ b/pkg/analyzer/test/src/summary/reference_test.dart @@ -3,10 +3,10 @@ // BSD-style license that can be found in the LICENSE file. import 'package:analyzer/src/summary2/reference.dart'; +import 'package:analyzer_utilities/testing/tree_string_sink.dart'; import 'package:test/test.dart'; import 'package:test_reflective_loader/test_reflective_loader.dart'; -import '../../util/tree_string_sink.dart'; import '../dart/resolution/node_text_expectations.dart'; main() { diff --git a/pkg/analyzer/test/src/summary/resolved_ast_printer.dart b/pkg/analyzer/test/src/summary/resolved_ast_printer.dart index d420a86a639..c33fd8d8a01 100644 --- a/pkg/analyzer/test/src/summary/resolved_ast_printer.dart +++ b/pkg/analyzer/test/src/summary/resolved_ast_printer.dart @@ -11,10 +11,10 @@ import 'package:analyzer/dart/element/type.dart'; import 'package:analyzer/src/dart/ast/ast.dart'; import 'package:analyzer/src/dart/ast/extensions.dart'; import 'package:analyzer/src/utilities/extensions/string.dart'; +import 'package:analyzer_utilities/testing/tree_string_sink.dart'; import 'package:test/test.dart'; import '../../util/element_printer.dart'; -import '../../util/tree_string_sink.dart'; /// Prints AST as a tree, with properties and children. class ResolvedAstPrinter extends ThrowingAstVisitor { diff --git a/pkg/analyzer/test/util/element_printer.dart b/pkg/analyzer/test/util/element_printer.dart index 4f602b1f208..facb8809311 100644 --- a/pkg/analyzer/test/util/element_printer.dart +++ b/pkg/analyzer/test/util/element_printer.dart @@ -9,10 +9,9 @@ import 'package:analyzer/src/dart/element/element.dart'; import 'package:analyzer/src/dart/element/member.dart'; import 'package:analyzer/src/dart/element/type_algebra.dart'; import 'package:analyzer/src/summary2/reference.dart'; +import 'package:analyzer_utilities/testing/tree_string_sink.dart'; import 'package:test/test.dart'; -import 'tree_string_sink.dart'; - class ElementPrinter { final TreeStringSink _sink; final ElementPrinterConfiguration _configuration; diff --git a/pkg/analyzer/test/util/tree_string_sink.dart b/pkg/analyzer/test/util/tree_string_sink.dart deleted file mode 100644 index 693a61ecb9c..00000000000 --- a/pkg/analyzer/test/util/tree_string_sink.dart +++ /dev/null @@ -1,84 +0,0 @@ -// Copyright (c) 2023, the Dart project authors. Please see the AUTHORS file -// for details. All rights reserved. Use of this source code is governed by a -// BSD-style license that can be found in the LICENSE file. - -/// Wrapper around a [StringSink] for writing tree structures. -class TreeStringSink { - final StringSink _sink; - String _indent = ''; - - TreeStringSink({ - required StringSink sink, - required String indent, - }) : _sink = sink, - _indent = indent; - - void withIndent(void Function() f) { - var indent = _indent; - _indent = '$indent '; - f(); - _indent = indent; - } - - void write(Object object) { - _sink.write(object); - } - - void writeElements( - String name, - List elements, - void Function(T) f, - ) { - if (elements.isNotEmpty) { - writelnWithIndent(name); - withIndent(() { - for (var element in elements) { - f(element); - } - }); - } - } - - Future writeFlags(Map flags) async { - if (flags.values.any((flag) => flag)) { - writeIndentedLine(() { - write('flags:'); - for (var entry in flags.entries) { - if (entry.value) { - write(' ${entry.key}'); - } - } - }); - } - } - - void writeIf(bool flag, Object object) { - if (flag) { - write(object); - } - } - - void writeIndent() { - _sink.write(_indent); - } - - void writeIndentedLine(void Function() f) { - writeIndent(); - f(); - writeln(); - } - - void writeln([Object? object = '']) { - _sink.writeln(object); - } - - void writelnWithIndent(Object object) { - _sink.write(_indent); - _sink.writeln(object); - } - - void writeWithIndent(Object object) { - _sink.write(_indent); - _sink.write(object); - } -} diff --git a/pkg/analyzer/tool/benchmark/heap/result.dart b/pkg/analyzer/tool/benchmark/heap/result.dart index e1840c7dafb..32d3dc318ec 100644 --- a/pkg/analyzer/tool/benchmark/heap/result.dart +++ b/pkg/analyzer/tool/benchmark/heap/result.dart @@ -4,10 +4,9 @@ import 'package:analyzer/src/manifest/manifest_validator.dart'; import 'package:analyzer/src/utilities/extensions/object.dart'; +import 'package:analyzer_utilities/testing/tree_string_sink.dart'; import 'package:collection/collection.dart'; -import '../../../test/util/tree_string_sink.dart'; - String formatSizeInBytes(int value) { var buffer = StringBuffer(); buffer.write('$value'); diff --git a/pkg/analysis_server/test/utils/tree_string_sink.dart b/pkg/analyzer_utilities/lib/testing/tree_string_sink.dart similarity index 100% rename from pkg/analysis_server/test/utils/tree_string_sink.dart rename to pkg/analyzer_utilities/lib/testing/tree_string_sink.dart