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 <scheglov@google.com> Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
This commit is contained in:
@@ -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(() {
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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';
|
||||
|
||||
|
||||
@@ -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';
|
||||
|
||||
@@ -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 {}
|
||||
|
||||
@@ -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';
|
||||
|
||||
|
||||
@@ -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';
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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';
|
||||
|
||||
|
||||
@@ -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';
|
||||
|
||||
@@ -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';
|
||||
|
||||
|
||||
@@ -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({
|
||||
|
||||
@@ -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';
|
||||
|
||||
@@ -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() {
|
||||
|
||||
@@ -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<void> {
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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<T extends Object>(
|
||||
String name,
|
||||
List<T> elements,
|
||||
void Function(T) f,
|
||||
) {
|
||||
if (elements.isNotEmpty) {
|
||||
writelnWithIndent(name);
|
||||
withIndent(() {
|
||||
for (var element in elements) {
|
||||
f(element);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
Future<void> writeFlags(Map<String, bool> 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);
|
||||
}
|
||||
}
|
||||
@@ -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');
|
||||
|
||||
Reference in New Issue
Block a user