Version 2.19.0-63.0.dev
Merge commit 'abd6e8eba79c455402de2acc8f7cb9cca54e7fdb' into 'dev'
diff --git a/DEPS b/DEPS
index ff0a30e..eb586c2 100644
--- a/DEPS
+++ b/DEPS
@@ -108,7 +108,7 @@
# For more details, see https://github.com/dart-lang/sdk/issues/30164.
"dart_style_rev": "d7b73536a8079331c888b7da539b80e6825270ea", # manually rev'd
- "dartdoc_rev": "7edeeeb20a506cadec3788c273fdee6cad91e07c",
+ "dartdoc_rev": "bd57c0e7b7562abda6d556ce5a386b67fb4ff4c7",
"devtools_rev": "d131d19091f6b89ac89486bd92440a25a523e8b0",
"ffi_rev": "18b2b549d55009ff594600b04705ff6161681e07",
"file_rev": "0132eeedea2933513bf230513a766a8baeab0c4f",
diff --git a/pkg/analysis_server/lib/src/analysis_server.dart b/pkg/analysis_server/lib/src/analysis_server.dart
index 92511cc..a4ea05d 100644
--- a/pkg/analysis_server/lib/src/analysis_server.dart
+++ b/pkg/analysis_server/lib/src/analysis_server.dart
@@ -90,8 +90,8 @@
import 'package:analysis_server/src/services/completion/completion_state.dart';
import 'package:analysis_server/src/services/execution/execution_context.dart';
import 'package:analysis_server/src/services/flutter/widget_descriptions.dart';
-import 'package:analysis_server/src/services/refactoring/refactoring.dart';
-import 'package:analysis_server/src/services/refactoring/refactoring_manager.dart';
+import 'package:analysis_server/src/services/refactoring/legacy/refactoring.dart';
+import 'package:analysis_server/src/services/refactoring/legacy/refactoring_manager.dart';
import 'package:analysis_server/src/utilities/process.dart';
import 'package:analysis_server/src/utilities/request_statistics.dart';
import 'package:analyzer/dart/analysis/results.dart';
diff --git a/pkg/analysis_server/lib/src/cider/rename.dart b/pkg/analysis_server/lib/src/cider/rename.dart
index 3ff2d18..7b00736 100644
--- a/pkg/analysis_server/lib/src/cider/rename.dart
+++ b/pkg/analysis_server/lib/src/cider/rename.dart
@@ -5,8 +5,8 @@
import 'package:analysis_server/src/protocol_server.dart' hide Element;
import 'package:analysis_server/src/services/correction/status.dart';
import 'package:analysis_server/src/services/correction/util.dart';
-import 'package:analysis_server/src/services/refactoring/naming_conventions.dart';
-import 'package:analysis_server/src/services/refactoring/refactoring.dart';
+import 'package:analysis_server/src/services/refactoring/legacy/naming_conventions.dart';
+import 'package:analysis_server/src/services/refactoring/legacy/refactoring.dart';
import 'package:analysis_server/src/services/search/hierarchy.dart';
import 'package:analysis_server/src/utilities/flutter.dart';
import 'package:analyzer/dart/ast/ast.dart';
diff --git a/pkg/analysis_server/lib/src/handler/legacy/edit_get_available_refactorings.dart b/pkg/analysis_server/lib/src/handler/legacy/edit_get_available_refactorings.dart
index 5fa0b4a..1e63f00 100644
--- a/pkg/analysis_server/lib/src/handler/legacy/edit_get_available_refactorings.dart
+++ b/pkg/analysis_server/lib/src/handler/legacy/edit_get_available_refactorings.dart
@@ -6,7 +6,7 @@
import 'package:analysis_server/protocol/protocol_generated.dart';
import 'package:analysis_server/src/handler/legacy/legacy_handler.dart';
-import 'package:analysis_server/src/services/refactoring/refactoring.dart';
+import 'package:analysis_server/src/services/refactoring/legacy/refactoring.dart';
import 'package:analyzer/dart/element/element.dart';
import 'package:analyzer/src/dart/ast/utilities.dart';
import 'package:analyzer_plugin/protocol/protocol_common.dart';
diff --git a/pkg/analysis_server/lib/src/lsp/handlers/commands/abstract_refactor.dart b/pkg/analysis_server/lib/src/lsp/handlers/commands/abstract_refactor.dart
index 561cd23..8d46e20 100644
--- a/pkg/analysis_server/lib/src/lsp/handlers/commands/abstract_refactor.dart
+++ b/pkg/analysis_server/lib/src/lsp/handlers/commands/abstract_refactor.dart
@@ -10,7 +10,7 @@
import 'package:analysis_server/src/lsp/handlers/handlers.dart';
import 'package:analysis_server/src/lsp/progress.dart';
import 'package:analysis_server/src/protocol_server.dart';
-import 'package:analysis_server/src/services/refactoring/refactoring.dart';
+import 'package:analysis_server/src/services/refactoring/legacy/refactoring.dart';
import 'package:analyzer/dart/analysis/results.dart';
import 'package:analyzer/dart/element/element.dart';
import 'package:analyzer/src/dart/ast/utilities.dart';
diff --git a/pkg/analysis_server/lib/src/lsp/handlers/handler_code_actions.dart b/pkg/analysis_server/lib/src/lsp/handlers/handler_code_actions.dart
index bd82a4a..e11e588 100644
--- a/pkg/analysis_server/lib/src/lsp/handlers/handler_code_actions.dart
+++ b/pkg/analysis_server/lib/src/lsp/handlers/handler_code_actions.dart
@@ -13,7 +13,7 @@
import 'package:analysis_server/src/services/correction/change_workspace.dart';
import 'package:analysis_server/src/services/correction/fix.dart';
import 'package:analysis_server/src/services/correction/fix_internal.dart';
-import 'package:analysis_server/src/services/refactoring/refactoring.dart';
+import 'package:analysis_server/src/services/refactoring/legacy/refactoring.dart';
import 'package:analyzer/dart/analysis/results.dart';
import 'package:analyzer/dart/analysis/session.dart'
show InconsistentAnalysisException;
diff --git a/pkg/analysis_server/lib/src/lsp/handlers/handler_rename.dart b/pkg/analysis_server/lib/src/lsp/handlers/handler_rename.dart
index facbfd8..8c57881 100644
--- a/pkg/analysis_server/lib/src/lsp/handlers/handler_rename.dart
+++ b/pkg/analysis_server/lib/src/lsp/handlers/handler_rename.dart
@@ -7,8 +7,8 @@
import 'package:analysis_server/src/lsp/constants.dart';
import 'package:analysis_server/src/lsp/handlers/handlers.dart';
import 'package:analysis_server/src/lsp/mapping.dart';
-import 'package:analysis_server/src/services/refactoring/refactoring.dart';
-import 'package:analysis_server/src/services/refactoring/rename_unit_member.dart';
+import 'package:analysis_server/src/services/refactoring/legacy/refactoring.dart';
+import 'package:analysis_server/src/services/refactoring/legacy/rename_unit_member.dart';
import 'package:analyzer/dart/element/element.dart';
class PrepareRenameHandler extends MessageHandler<TextDocumentPositionParams,
diff --git a/pkg/analysis_server/lib/src/lsp/handlers/handler_will_rename_files.dart b/pkg/analysis_server/lib/src/lsp/handlers/handler_will_rename_files.dart
index 2091ecf..b7b089a 100644
--- a/pkg/analysis_server/lib/src/lsp/handlers/handler_will_rename_files.dart
+++ b/pkg/analysis_server/lib/src/lsp/handlers/handler_will_rename_files.dart
@@ -5,7 +5,7 @@
import 'package:analysis_server/lsp_protocol/protocol.dart';
import 'package:analysis_server/src/lsp/handlers/handlers.dart';
import 'package:analysis_server/src/lsp/mapping.dart';
-import 'package:analysis_server/src/services/refactoring/refactoring.dart';
+import 'package:analysis_server/src/services/refactoring/legacy/refactoring.dart';
class WillRenameFilesHandler
extends MessageHandler<RenameFilesParams, WorkspaceEdit?> {
diff --git a/pkg/analysis_server/lib/src/lsp/lsp_analysis_server.dart b/pkg/analysis_server/lib/src/lsp/lsp_analysis_server.dart
index 3c57d35..e7f0ca9 100644
--- a/pkg/analysis_server/lib/src/lsp/lsp_analysis_server.dart
+++ b/pkg/analysis_server/lib/src/lsp/lsp_analysis_server.dart
@@ -30,7 +30,7 @@
import 'package:analysis_server/src/server/diagnostic_server.dart';
import 'package:analysis_server/src/server/error_notifier.dart';
import 'package:analysis_server/src/server/performance.dart';
-import 'package:analysis_server/src/services/refactoring/refactoring.dart';
+import 'package:analysis_server/src/services/refactoring/legacy/refactoring.dart';
import 'package:analysis_server/src/utilities/process.dart';
import 'package:analyzer/dart/analysis/context_locator.dart';
import 'package:analyzer/dart/analysis/results.dart';
diff --git a/pkg/analysis_server/lib/src/services/refactoring/convert_getter_to_method.dart b/pkg/analysis_server/lib/src/services/refactoring/legacy/convert_getter_to_method.dart
similarity index 95%
rename from pkg/analysis_server/lib/src/services/refactoring/convert_getter_to_method.dart
rename to pkg/analysis_server/lib/src/services/refactoring/legacy/convert_getter_to_method.dart
index e0f9237..b10f214 100644
--- a/pkg/analysis_server/lib/src/services/refactoring/convert_getter_to_method.dart
+++ b/pkg/analysis_server/lib/src/services/refactoring/legacy/convert_getter_to_method.dart
@@ -4,8 +4,8 @@
import 'package:analysis_server/src/protocol_server.dart' hide Element;
import 'package:analysis_server/src/services/correction/status.dart';
-import 'package:analysis_server/src/services/refactoring/refactoring.dart';
-import 'package:analysis_server/src/services/refactoring/refactoring_internal.dart';
+import 'package:analysis_server/src/services/refactoring/legacy/refactoring.dart';
+import 'package:analysis_server/src/services/refactoring/legacy/refactoring_internal.dart';
import 'package:analysis_server/src/services/search/hierarchy.dart';
import 'package:analysis_server/src/services/search/search_engine.dart';
import 'package:analyzer/dart/analysis/session.dart';
diff --git a/pkg/analysis_server/lib/src/services/refactoring/convert_method_to_getter.dart b/pkg/analysis_server/lib/src/services/refactoring/legacy/convert_method_to_getter.dart
similarity index 96%
rename from pkg/analysis_server/lib/src/services/refactoring/convert_method_to_getter.dart
rename to pkg/analysis_server/lib/src/services/refactoring/legacy/convert_method_to_getter.dart
index 427b1a1..069baef 100644
--- a/pkg/analysis_server/lib/src/services/refactoring/convert_method_to_getter.dart
+++ b/pkg/analysis_server/lib/src/services/refactoring/legacy/convert_method_to_getter.dart
@@ -4,8 +4,8 @@
import 'package:analysis_server/src/protocol_server.dart' hide Element;
import 'package:analysis_server/src/services/correction/status.dart';
-import 'package:analysis_server/src/services/refactoring/refactoring.dart';
-import 'package:analysis_server/src/services/refactoring/refactoring_internal.dart';
+import 'package:analysis_server/src/services/refactoring/legacy/refactoring.dart';
+import 'package:analysis_server/src/services/refactoring/legacy/refactoring_internal.dart';
import 'package:analysis_server/src/services/search/hierarchy.dart';
import 'package:analysis_server/src/services/search/search_engine.dart';
import 'package:analyzer/dart/analysis/session.dart';
diff --git a/pkg/analysis_server/lib/src/services/refactoring/extract_local.dart b/pkg/analysis_server/lib/src/services/refactoring/legacy/extract_local.dart
similarity index 98%
rename from pkg/analysis_server/lib/src/services/refactoring/extract_local.dart
rename to pkg/analysis_server/lib/src/services/refactoring/legacy/extract_local.dart
index 607535c..2bd7555 100644
--- a/pkg/analysis_server/lib/src/services/refactoring/extract_local.dart
+++ b/pkg/analysis_server/lib/src/services/refactoring/legacy/extract_local.dart
@@ -8,9 +8,9 @@
import 'package:analysis_server/src/services/correction/name_suggestion.dart';
import 'package:analysis_server/src/services/correction/status.dart';
import 'package:analysis_server/src/services/correction/util.dart';
-import 'package:analysis_server/src/services/refactoring/naming_conventions.dart';
-import 'package:analysis_server/src/services/refactoring/refactoring.dart';
-import 'package:analysis_server/src/services/refactoring/refactoring_internal.dart';
+import 'package:analysis_server/src/services/refactoring/legacy/naming_conventions.dart';
+import 'package:analysis_server/src/services/refactoring/legacy/refactoring.dart';
+import 'package:analysis_server/src/services/refactoring/legacy/refactoring_internal.dart';
import 'package:analysis_server/src/utilities/strings.dart';
import 'package:analyzer/dart/analysis/code_style_options.dart';
import 'package:analyzer/dart/analysis/features.dart';
diff --git a/pkg/analysis_server/lib/src/services/refactoring/extract_method.dart b/pkg/analysis_server/lib/src/services/refactoring/legacy/extract_method.dart
similarity index 98%
rename from pkg/analysis_server/lib/src/services/refactoring/extract_method.dart
rename to pkg/analysis_server/lib/src/services/refactoring/legacy/extract_method.dart
index 80d5192..c18f88f 100644
--- a/pkg/analysis_server/lib/src/services/refactoring/extract_method.dart
+++ b/pkg/analysis_server/lib/src/services/refactoring/legacy/extract_method.dart
@@ -8,12 +8,12 @@
import 'package:analysis_server/src/services/correction/statement_analyzer.dart';
import 'package:analysis_server/src/services/correction/status.dart';
import 'package:analysis_server/src/services/correction/util.dart';
-import 'package:analysis_server/src/services/refactoring/naming_conventions.dart';
-import 'package:analysis_server/src/services/refactoring/refactoring.dart';
-import 'package:analysis_server/src/services/refactoring/refactoring_internal.dart';
-import 'package:analysis_server/src/services/refactoring/rename_class_member.dart';
-import 'package:analysis_server/src/services/refactoring/rename_unit_member.dart';
-import 'package:analysis_server/src/services/refactoring/visible_ranges_computer.dart';
+import 'package:analysis_server/src/services/refactoring/legacy/naming_conventions.dart';
+import 'package:analysis_server/src/services/refactoring/legacy/refactoring.dart';
+import 'package:analysis_server/src/services/refactoring/legacy/refactoring_internal.dart';
+import 'package:analysis_server/src/services/refactoring/legacy/rename_class_member.dart';
+import 'package:analysis_server/src/services/refactoring/legacy/rename_unit_member.dart';
+import 'package:analysis_server/src/services/refactoring/legacy/visible_ranges_computer.dart';
import 'package:analysis_server/src/services/search/search_engine.dart';
import 'package:analysis_server/src/utilities/extensions/ast.dart';
import 'package:analyzer/dart/analysis/features.dart';
diff --git a/pkg/analysis_server/lib/src/services/refactoring/extract_widget.dart b/pkg/analysis_server/lib/src/services/refactoring/legacy/extract_widget.dart
similarity index 98%
rename from pkg/analysis_server/lib/src/services/refactoring/extract_widget.dart
rename to pkg/analysis_server/lib/src/services/refactoring/legacy/extract_widget.dart
index b476d7c..85bbc24 100644
--- a/pkg/analysis_server/lib/src/services/refactoring/extract_widget.dart
+++ b/pkg/analysis_server/lib/src/services/refactoring/legacy/extract_widget.dart
@@ -5,9 +5,9 @@
import 'package:analysis_server/src/protocol_server.dart' hide Element;
import 'package:analysis_server/src/services/correction/status.dart';
import 'package:analysis_server/src/services/correction/util.dart';
-import 'package:analysis_server/src/services/refactoring/naming_conventions.dart';
-import 'package:analysis_server/src/services/refactoring/refactoring.dart';
-import 'package:analysis_server/src/services/refactoring/refactoring_internal.dart';
+import 'package:analysis_server/src/services/refactoring/legacy/naming_conventions.dart';
+import 'package:analysis_server/src/services/refactoring/legacy/refactoring.dart';
+import 'package:analysis_server/src/services/refactoring/legacy/refactoring_internal.dart';
import 'package:analysis_server/src/services/search/element_visitors.dart';
import 'package:analysis_server/src/services/search/search_engine.dart';
import 'package:analysis_server/src/utilities/flutter.dart';
diff --git a/pkg/analysis_server/lib/src/services/refactoring/inline_local.dart b/pkg/analysis_server/lib/src/services/refactoring/legacy/inline_local.dart
similarity index 97%
rename from pkg/analysis_server/lib/src/services/refactoring/inline_local.dart
rename to pkg/analysis_server/lib/src/services/refactoring/legacy/inline_local.dart
index e0f3df71..62b9140 100644
--- a/pkg/analysis_server/lib/src/services/refactoring/inline_local.dart
+++ b/pkg/analysis_server/lib/src/services/refactoring/legacy/inline_local.dart
@@ -5,8 +5,8 @@
import 'package:analysis_server/src/protocol_server.dart' hide Element;
import 'package:analysis_server/src/services/correction/status.dart';
import 'package:analysis_server/src/services/correction/util.dart';
-import 'package:analysis_server/src/services/refactoring/refactoring.dart';
-import 'package:analysis_server/src/services/refactoring/refactoring_internal.dart';
+import 'package:analysis_server/src/services/refactoring/legacy/refactoring.dart';
+import 'package:analysis_server/src/services/refactoring/legacy/refactoring_internal.dart';
import 'package:analysis_server/src/services/search/search_engine.dart';
import 'package:analyzer/dart/analysis/results.dart';
import 'package:analyzer/dart/ast/ast.dart';
diff --git a/pkg/analysis_server/lib/src/services/refactoring/inline_method.dart b/pkg/analysis_server/lib/src/services/refactoring/legacy/inline_method.dart
similarity index 98%
rename from pkg/analysis_server/lib/src/services/refactoring/inline_method.dart
rename to pkg/analysis_server/lib/src/services/refactoring/legacy/inline_method.dart
index fec885d..c44741a 100644
--- a/pkg/analysis_server/lib/src/services/refactoring/inline_method.dart
+++ b/pkg/analysis_server/lib/src/services/refactoring/legacy/inline_method.dart
@@ -5,9 +5,9 @@
import 'package:analysis_server/src/protocol_server.dart' hide Element;
import 'package:analysis_server/src/services/correction/status.dart';
import 'package:analysis_server/src/services/correction/util.dart';
-import 'package:analysis_server/src/services/refactoring/refactoring.dart';
-import 'package:analysis_server/src/services/refactoring/refactoring_internal.dart';
-import 'package:analysis_server/src/services/refactoring/visible_ranges_computer.dart';
+import 'package:analysis_server/src/services/refactoring/legacy/refactoring.dart';
+import 'package:analysis_server/src/services/refactoring/legacy/refactoring_internal.dart';
+import 'package:analysis_server/src/services/refactoring/legacy/visible_ranges_computer.dart';
import 'package:analysis_server/src/services/search/hierarchy.dart';
import 'package:analysis_server/src/services/search/search_engine.dart';
import 'package:analysis_server/src/utilities/strings.dart';
diff --git a/pkg/analysis_server/lib/src/services/refactoring/move_file.dart b/pkg/analysis_server/lib/src/services/refactoring/legacy/move_file.dart
similarity index 98%
rename from pkg/analysis_server/lib/src/services/refactoring/move_file.dart
rename to pkg/analysis_server/lib/src/services/refactoring/legacy/move_file.dart
index f3f985b..fab53d5 100644
--- a/pkg/analysis_server/lib/src/services/refactoring/move_file.dart
+++ b/pkg/analysis_server/lib/src/services/refactoring/legacy/move_file.dart
@@ -4,8 +4,8 @@
import 'package:analysis_server/src/protocol_server.dart' hide Element;
import 'package:analysis_server/src/services/correction/status.dart';
-import 'package:analysis_server/src/services/refactoring/refactoring.dart';
-import 'package:analysis_server/src/services/refactoring/refactoring_internal.dart';
+import 'package:analysis_server/src/services/refactoring/legacy/refactoring.dart';
+import 'package:analysis_server/src/services/refactoring/legacy/refactoring_internal.dart';
import 'package:analysis_server/src/utilities/extensions/ast.dart';
import 'package:analyzer/dart/analysis/results.dart';
import 'package:analyzer/dart/analysis/session.dart';
diff --git a/pkg/analysis_server/lib/src/services/refactoring/naming_conventions.dart b/pkg/analysis_server/lib/src/services/refactoring/legacy/naming_conventions.dart
similarity index 100%
rename from pkg/analysis_server/lib/src/services/refactoring/naming_conventions.dart
rename to pkg/analysis_server/lib/src/services/refactoring/legacy/naming_conventions.dart
diff --git a/pkg/analysis_server/lib/src/services/refactoring/refactoring.dart b/pkg/analysis_server/lib/src/services/refactoring/legacy/refactoring.dart
similarity index 93%
rename from pkg/analysis_server/lib/src/services/refactoring/refactoring.dart
rename to pkg/analysis_server/lib/src/services/refactoring/legacy/refactoring.dart
index 88c21de..12758bf 100644
--- a/pkg/analysis_server/lib/src/services/refactoring/refactoring.dart
+++ b/pkg/analysis_server/lib/src/services/refactoring/legacy/refactoring.dart
@@ -3,22 +3,22 @@
// BSD-style license that can be found in the LICENSE file.
import 'package:analysis_server/src/services/correction/status.dart';
-import 'package:analysis_server/src/services/refactoring/convert_getter_to_method.dart';
-import 'package:analysis_server/src/services/refactoring/convert_method_to_getter.dart';
-import 'package:analysis_server/src/services/refactoring/extract_local.dart';
-import 'package:analysis_server/src/services/refactoring/extract_method.dart';
-import 'package:analysis_server/src/services/refactoring/extract_widget.dart';
-import 'package:analysis_server/src/services/refactoring/inline_local.dart';
-import 'package:analysis_server/src/services/refactoring/inline_method.dart';
-import 'package:analysis_server/src/services/refactoring/move_file.dart';
-import 'package:analysis_server/src/services/refactoring/rename_class_member.dart';
-import 'package:analysis_server/src/services/refactoring/rename_constructor.dart';
-import 'package:analysis_server/src/services/refactoring/rename_extension_member.dart';
-import 'package:analysis_server/src/services/refactoring/rename_import.dart';
-import 'package:analysis_server/src/services/refactoring/rename_label.dart';
-import 'package:analysis_server/src/services/refactoring/rename_library.dart';
-import 'package:analysis_server/src/services/refactoring/rename_local.dart';
-import 'package:analysis_server/src/services/refactoring/rename_unit_member.dart';
+import 'package:analysis_server/src/services/refactoring/legacy/convert_getter_to_method.dart';
+import 'package:analysis_server/src/services/refactoring/legacy/convert_method_to_getter.dart';
+import 'package:analysis_server/src/services/refactoring/legacy/extract_local.dart';
+import 'package:analysis_server/src/services/refactoring/legacy/extract_method.dart';
+import 'package:analysis_server/src/services/refactoring/legacy/extract_widget.dart';
+import 'package:analysis_server/src/services/refactoring/legacy/inline_local.dart';
+import 'package:analysis_server/src/services/refactoring/legacy/inline_method.dart';
+import 'package:analysis_server/src/services/refactoring/legacy/move_file.dart';
+import 'package:analysis_server/src/services/refactoring/legacy/rename_class_member.dart';
+import 'package:analysis_server/src/services/refactoring/legacy/rename_constructor.dart';
+import 'package:analysis_server/src/services/refactoring/legacy/rename_extension_member.dart';
+import 'package:analysis_server/src/services/refactoring/legacy/rename_import.dart';
+import 'package:analysis_server/src/services/refactoring/legacy/rename_label.dart';
+import 'package:analysis_server/src/services/refactoring/legacy/rename_library.dart';
+import 'package:analysis_server/src/services/refactoring/legacy/rename_local.dart';
+import 'package:analysis_server/src/services/refactoring/legacy/rename_unit_member.dart';
import 'package:analysis_server/src/services/search/search_engine.dart';
import 'package:analyzer/dart/analysis/results.dart';
import 'package:analyzer/dart/analysis/session.dart';
diff --git a/pkg/analysis_server/lib/src/services/refactoring/refactoring_internal.dart b/pkg/analysis_server/lib/src/services/refactoring/legacy/refactoring_internal.dart
similarity index 97%
rename from pkg/analysis_server/lib/src/services/refactoring/refactoring_internal.dart
rename to pkg/analysis_server/lib/src/services/refactoring/legacy/refactoring_internal.dart
index d1b121e..76be8d4 100644
--- a/pkg/analysis_server/lib/src/services/refactoring/refactoring_internal.dart
+++ b/pkg/analysis_server/lib/src/services/refactoring/legacy/refactoring_internal.dart
@@ -6,7 +6,7 @@
import 'package:analysis_server/src/protocol_server.dart' hide Element;
import 'package:analysis_server/src/services/correction/status.dart';
-import 'package:analysis_server/src/services/refactoring/refactoring.dart';
+import 'package:analysis_server/src/services/refactoring/legacy/refactoring.dart';
import 'package:analysis_server/src/services/search/search_engine.dart';
import 'package:analyzer/dart/element/element.dart';
import 'package:analyzer/src/generated/source.dart';
diff --git a/pkg/analysis_server/lib/src/services/refactoring/refactoring_manager.dart b/pkg/analysis_server/lib/src/services/refactoring/legacy/refactoring_manager.dart
similarity index 99%
rename from pkg/analysis_server/lib/src/services/refactoring/refactoring_manager.dart
rename to pkg/analysis_server/lib/src/services/refactoring/legacy/refactoring_manager.dart
index bcc0341..730a8c8 100644
--- a/pkg/analysis_server/lib/src/services/refactoring/refactoring_manager.dart
+++ b/pkg/analysis_server/lib/src/services/refactoring/legacy/refactoring_manager.dart
@@ -9,7 +9,7 @@
import 'package:analysis_server/src/protocol_server.dart'
hide AnalysisError, Element;
import 'package:analysis_server/src/services/correction/status.dart';
-import 'package:analysis_server/src/services/refactoring/refactoring.dart';
+import 'package:analysis_server/src/services/refactoring/legacy/refactoring.dart';
import 'package:analysis_server/src/services/search/search_engine.dart';
import 'package:analyzer/dart/analysis/session.dart';
import 'package:analyzer/dart/element/element.dart';
diff --git a/pkg/analysis_server/lib/src/services/refactoring/rename.dart b/pkg/analysis_server/lib/src/services/refactoring/legacy/rename.dart
similarity index 95%
rename from pkg/analysis_server/lib/src/services/refactoring/rename.dart
rename to pkg/analysis_server/lib/src/services/refactoring/legacy/rename.dart
index a4cba5b..bc26e15 100644
--- a/pkg/analysis_server/lib/src/services/refactoring/rename.dart
+++ b/pkg/analysis_server/lib/src/services/refactoring/legacy/rename.dart
@@ -5,8 +5,8 @@
import 'package:analysis_server/src/protocol_server.dart' hide Element;
import 'package:analysis_server/src/services/correction/status.dart';
import 'package:analysis_server/src/services/correction/util.dart';
-import 'package:analysis_server/src/services/refactoring/refactoring.dart';
-import 'package:analysis_server/src/services/refactoring/refactoring_internal.dart';
+import 'package:analysis_server/src/services/refactoring/legacy/refactoring.dart';
+import 'package:analysis_server/src/services/refactoring/legacy/refactoring_internal.dart';
import 'package:analysis_server/src/services/search/search_engine.dart';
import 'package:analyzer/dart/element/element.dart';
import 'package:analyzer/src/generated/java_core.dart';
diff --git a/pkg/analysis_server/lib/src/services/refactoring/rename_class_member.dart b/pkg/analysis_server/lib/src/services/refactoring/legacy/rename_class_member.dart
similarity index 96%
rename from pkg/analysis_server/lib/src/services/refactoring/rename_class_member.dart
rename to pkg/analysis_server/lib/src/services/refactoring/legacy/rename_class_member.dart
index 7661de2..cafd967 100644
--- a/pkg/analysis_server/lib/src/services/refactoring/rename_class_member.dart
+++ b/pkg/analysis_server/lib/src/services/refactoring/legacy/rename_class_member.dart
@@ -6,11 +6,11 @@
hide Element, ElementKind;
import 'package:analysis_server/src/services/correction/status.dart';
import 'package:analysis_server/src/services/correction/util.dart';
-import 'package:analysis_server/src/services/refactoring/naming_conventions.dart';
-import 'package:analysis_server/src/services/refactoring/refactoring.dart';
-import 'package:analysis_server/src/services/refactoring/refactoring_internal.dart';
-import 'package:analysis_server/src/services/refactoring/rename.dart';
-import 'package:analysis_server/src/services/refactoring/visible_ranges_computer.dart';
+import 'package:analysis_server/src/services/refactoring/legacy/naming_conventions.dart';
+import 'package:analysis_server/src/services/refactoring/legacy/refactoring.dart';
+import 'package:analysis_server/src/services/refactoring/legacy/refactoring_internal.dart';
+import 'package:analysis_server/src/services/refactoring/legacy/rename.dart';
+import 'package:analysis_server/src/services/refactoring/legacy/visible_ranges_computer.dart';
import 'package:analysis_server/src/services/search/hierarchy.dart';
import 'package:analysis_server/src/services/search/search_engine.dart';
import 'package:analysis_server/src/utilities/strings.dart';
diff --git a/pkg/analysis_server/lib/src/services/refactoring/rename_constructor.dart b/pkg/analysis_server/lib/src/services/refactoring/legacy/rename_constructor.dart
similarity index 93%
rename from pkg/analysis_server/lib/src/services/refactoring/rename_constructor.dart
rename to pkg/analysis_server/lib/src/services/refactoring/legacy/rename_constructor.dart
index 134d6e4..d4972cb 100644
--- a/pkg/analysis_server/lib/src/services/refactoring/rename_constructor.dart
+++ b/pkg/analysis_server/lib/src/services/refactoring/legacy/rename_constructor.dart
@@ -5,10 +5,10 @@
import 'package:analysis_server/src/protocol_server.dart' hide Element;
import 'package:analysis_server/src/services/correction/status.dart';
import 'package:analysis_server/src/services/correction/util.dart';
-import 'package:analysis_server/src/services/refactoring/naming_conventions.dart';
-import 'package:analysis_server/src/services/refactoring/refactoring.dart';
-import 'package:analysis_server/src/services/refactoring/refactoring_internal.dart';
-import 'package:analysis_server/src/services/refactoring/rename.dart';
+import 'package:analysis_server/src/services/refactoring/legacy/naming_conventions.dart';
+import 'package:analysis_server/src/services/refactoring/legacy/refactoring.dart';
+import 'package:analysis_server/src/services/refactoring/legacy/refactoring_internal.dart';
+import 'package:analysis_server/src/services/refactoring/legacy/rename.dart';
import 'package:analysis_server/src/services/search/hierarchy.dart';
import 'package:analyzer/dart/analysis/session.dart';
import 'package:analyzer/dart/ast/ast.dart';
diff --git a/pkg/analysis_server/lib/src/services/refactoring/rename_extension_member.dart b/pkg/analysis_server/lib/src/services/refactoring/legacy/rename_extension_member.dart
similarity index 95%
rename from pkg/analysis_server/lib/src/services/refactoring/rename_extension_member.dart
rename to pkg/analysis_server/lib/src/services/refactoring/legacy/rename_extension_member.dart
index f0b65ab..c1bb99b 100644
--- a/pkg/analysis_server/lib/src/services/refactoring/rename_extension_member.dart
+++ b/pkg/analysis_server/lib/src/services/refactoring/legacy/rename_extension_member.dart
@@ -6,10 +6,10 @@
hide Element, ElementKind;
import 'package:analysis_server/src/services/correction/status.dart';
import 'package:analysis_server/src/services/correction/util.dart';
-import 'package:analysis_server/src/services/refactoring/naming_conventions.dart';
-import 'package:analysis_server/src/services/refactoring/refactoring.dart';
-import 'package:analysis_server/src/services/refactoring/rename.dart';
-import 'package:analysis_server/src/services/refactoring/visible_ranges_computer.dart';
+import 'package:analysis_server/src/services/refactoring/legacy/naming_conventions.dart';
+import 'package:analysis_server/src/services/refactoring/legacy/refactoring.dart';
+import 'package:analysis_server/src/services/refactoring/legacy/rename.dart';
+import 'package:analysis_server/src/services/refactoring/legacy/visible_ranges_computer.dart';
import 'package:analysis_server/src/services/search/hierarchy.dart';
import 'package:analysis_server/src/services/search/search_engine.dart';
import 'package:analyzer/dart/analysis/session.dart';
diff --git a/pkg/analysis_server/lib/src/services/refactoring/rename_import.dart b/pkg/analysis_server/lib/src/services/refactoring/legacy/rename_import.dart
similarity index 92%
rename from pkg/analysis_server/lib/src/services/refactoring/rename_import.dart
rename to pkg/analysis_server/lib/src/services/refactoring/legacy/rename_import.dart
index edcdd80..01e2ccd 100644
--- a/pkg/analysis_server/lib/src/services/refactoring/rename_import.dart
+++ b/pkg/analysis_server/lib/src/services/refactoring/legacy/rename_import.dart
@@ -4,10 +4,10 @@
import 'package:analysis_server/src/protocol_server.dart';
import 'package:analysis_server/src/services/correction/status.dart';
-import 'package:analysis_server/src/services/refactoring/naming_conventions.dart';
-import 'package:analysis_server/src/services/refactoring/refactoring.dart';
-import 'package:analysis_server/src/services/refactoring/refactoring_internal.dart';
-import 'package:analysis_server/src/services/refactoring/rename.dart';
+import 'package:analysis_server/src/services/refactoring/legacy/naming_conventions.dart';
+import 'package:analysis_server/src/services/refactoring/legacy/refactoring.dart';
+import 'package:analysis_server/src/services/refactoring/legacy/refactoring_internal.dart';
+import 'package:analysis_server/src/services/refactoring/legacy/rename.dart';
import 'package:analyzer/dart/analysis/results.dart';
import 'package:analyzer/dart/analysis/session.dart';
import 'package:analyzer/dart/ast/ast.dart';
diff --git a/pkg/analysis_server/lib/src/services/refactoring/rename_label.dart b/pkg/analysis_server/lib/src/services/refactoring/legacy/rename_label.dart
similarity index 81%
rename from pkg/analysis_server/lib/src/services/refactoring/rename_label.dart
rename to pkg/analysis_server/lib/src/services/refactoring/legacy/rename_label.dart
index a2ca221..b6c3710 100644
--- a/pkg/analysis_server/lib/src/services/refactoring/rename_label.dart
+++ b/pkg/analysis_server/lib/src/services/refactoring/legacy/rename_label.dart
@@ -3,9 +3,9 @@
// BSD-style license that can be found in the LICENSE file.
import 'package:analysis_server/src/services/correction/status.dart';
-import 'package:analysis_server/src/services/refactoring/naming_conventions.dart';
-import 'package:analysis_server/src/services/refactoring/refactoring.dart';
-import 'package:analysis_server/src/services/refactoring/rename.dart';
+import 'package:analysis_server/src/services/refactoring/legacy/naming_conventions.dart';
+import 'package:analysis_server/src/services/refactoring/legacy/refactoring.dart';
+import 'package:analysis_server/src/services/refactoring/legacy/rename.dart';
import 'package:analyzer/dart/element/element.dart';
/// A [Refactoring] for renaming [LabelElement]s.
diff --git a/pkg/analysis_server/lib/src/services/refactoring/rename_library.dart b/pkg/analysis_server/lib/src/services/refactoring/legacy/rename_library.dart
similarity index 82%
rename from pkg/analysis_server/lib/src/services/refactoring/rename_library.dart
rename to pkg/analysis_server/lib/src/services/refactoring/legacy/rename_library.dart
index ae5d654..1423092 100644
--- a/pkg/analysis_server/lib/src/services/refactoring/rename_library.dart
+++ b/pkg/analysis_server/lib/src/services/refactoring/legacy/rename_library.dart
@@ -3,9 +3,9 @@
// BSD-style license that can be found in the LICENSE file.
import 'package:analysis_server/src/services/correction/status.dart';
-import 'package:analysis_server/src/services/refactoring/naming_conventions.dart';
-import 'package:analysis_server/src/services/refactoring/refactoring.dart';
-import 'package:analysis_server/src/services/refactoring/rename.dart';
+import 'package:analysis_server/src/services/refactoring/legacy/naming_conventions.dart';
+import 'package:analysis_server/src/services/refactoring/legacy/refactoring.dart';
+import 'package:analysis_server/src/services/refactoring/legacy/rename.dart';
import 'package:analyzer/dart/element/element.dart';
/// A [Refactoring] for renaming [LibraryElement]s.
diff --git a/pkg/analysis_server/lib/src/services/refactoring/rename_local.dart b/pkg/analysis_server/lib/src/services/refactoring/legacy/rename_local.dart
similarity index 94%
rename from pkg/analysis_server/lib/src/services/refactoring/rename_local.dart
rename to pkg/analysis_server/lib/src/services/refactoring/legacy/rename_local.dart
index 26b9a08..1df2986 100644
--- a/pkg/analysis_server/lib/src/services/refactoring/rename_local.dart
+++ b/pkg/analysis_server/lib/src/services/refactoring/legacy/rename_local.dart
@@ -6,10 +6,10 @@
hide Element, ElementKind;
import 'package:analysis_server/src/services/correction/status.dart';
import 'package:analysis_server/src/services/correction/util.dart';
-import 'package:analysis_server/src/services/refactoring/naming_conventions.dart';
-import 'package:analysis_server/src/services/refactoring/refactoring.dart';
-import 'package:analysis_server/src/services/refactoring/rename.dart';
-import 'package:analysis_server/src/services/refactoring/visible_ranges_computer.dart';
+import 'package:analysis_server/src/services/refactoring/legacy/naming_conventions.dart';
+import 'package:analysis_server/src/services/refactoring/legacy/refactoring.dart';
+import 'package:analysis_server/src/services/refactoring/legacy/rename.dart';
+import 'package:analysis_server/src/services/refactoring/legacy/visible_ranges_computer.dart';
import 'package:analysis_server/src/services/search/hierarchy.dart';
import 'package:analyzer/dart/analysis/session.dart';
import 'package:analyzer/dart/ast/ast.dart';
diff --git a/pkg/analysis_server/lib/src/services/refactoring/rename_unit_member.dart b/pkg/analysis_server/lib/src/services/refactoring/legacy/rename_unit_member.dart
similarity index 97%
rename from pkg/analysis_server/lib/src/services/refactoring/rename_unit_member.dart
rename to pkg/analysis_server/lib/src/services/refactoring/legacy/rename_unit_member.dart
index caa5679..0ef382b 100644
--- a/pkg/analysis_server/lib/src/services/refactoring/rename_unit_member.dart
+++ b/pkg/analysis_server/lib/src/services/refactoring/legacy/rename_unit_member.dart
@@ -6,9 +6,9 @@
show newLocation_fromElement, newLocation_fromMatch;
import 'package:analysis_server/src/services/correction/status.dart';
import 'package:analysis_server/src/services/correction/util.dart';
-import 'package:analysis_server/src/services/refactoring/naming_conventions.dart';
-import 'package:analysis_server/src/services/refactoring/refactoring.dart';
-import 'package:analysis_server/src/services/refactoring/rename.dart';
+import 'package:analysis_server/src/services/refactoring/legacy/naming_conventions.dart';
+import 'package:analysis_server/src/services/refactoring/legacy/refactoring.dart';
+import 'package:analysis_server/src/services/refactoring/legacy/rename.dart';
import 'package:analysis_server/src/services/search/element_visitors.dart';
import 'package:analysis_server/src/services/search/search_engine.dart';
import 'package:analysis_server/src/utilities/flutter.dart';
diff --git a/pkg/analysis_server/lib/src/services/refactoring/visible_ranges_computer.dart b/pkg/analysis_server/lib/src/services/refactoring/legacy/visible_ranges_computer.dart
similarity index 100%
rename from pkg/analysis_server/lib/src/services/refactoring/visible_ranges_computer.dart
rename to pkg/analysis_server/lib/src/services/refactoring/legacy/visible_ranges_computer.dart
diff --git a/pkg/analysis_server/test/edit/refactoring_test.dart b/pkg/analysis_server/test/edit/refactoring_test.dart
index e397c48..f080f50 100644
--- a/pkg/analysis_server/test/edit/refactoring_test.dart
+++ b/pkg/analysis_server/test/edit/refactoring_test.dart
@@ -6,7 +6,7 @@
import 'package:analysis_server/protocol/protocol.dart';
import 'package:analysis_server/protocol/protocol_generated.dart';
-import 'package:analysis_server/src/services/refactoring/refactoring_manager.dart';
+import 'package:analysis_server/src/services/refactoring/legacy/refactoring_manager.dart';
import 'package:analyzer/src/test_utilities/package_config_file_builder.dart';
import 'package:analyzer_plugin/protocol/protocol_common.dart';
import 'package:test/test.dart';
diff --git a/pkg/analysis_server/test/services/refactoring/abstract_refactoring.dart b/pkg/analysis_server/test/services/refactoring/abstract_refactoring.dart
index 010d536..793296a 100644
--- a/pkg/analysis_server/test/services/refactoring/abstract_refactoring.dart
+++ b/pkg/analysis_server/test/services/refactoring/abstract_refactoring.dart
@@ -3,7 +3,7 @@
// BSD-style license that can be found in the LICENSE file.
import 'package:analysis_server/src/services/correction/status.dart';
-import 'package:analysis_server/src/services/refactoring/refactoring.dart';
+import 'package:analysis_server/src/services/refactoring/legacy/refactoring.dart';
import 'package:analysis_server/src/services/search/search_engine.dart';
import 'package:analysis_server/src/services/search/search_engine_internal.dart';
import 'package:analyzer/src/generated/source.dart';
diff --git a/pkg/analysis_server/test/services/refactoring/abstract_rename.dart b/pkg/analysis_server/test/services/refactoring/abstract_rename.dart
index dab7e2c..9bbe6a5 100644
--- a/pkg/analysis_server/test/services/refactoring/abstract_rename.dart
+++ b/pkg/analysis_server/test/services/refactoring/abstract_rename.dart
@@ -3,7 +3,7 @@
// BSD-style license that can be found in the LICENSE file.
import 'package:analysis_server/src/services/correction/namespace.dart';
-import 'package:analysis_server/src/services/refactoring/refactoring.dart';
+import 'package:analysis_server/src/services/refactoring/legacy/refactoring.dart';
import 'package:analyzer/dart/ast/ast.dart';
import 'package:analyzer/dart/element/element.dart';
import 'package:analyzer/src/dart/ast/element_locator.dart';
diff --git a/pkg/analysis_server/test/services/refactoring/convert_getter_to_method_test.dart b/pkg/analysis_server/test/services/refactoring/convert_getter_to_method_test.dart
index a0a8d9a..29d6dd9 100644
--- a/pkg/analysis_server/test/services/refactoring/convert_getter_to_method_test.dart
+++ b/pkg/analysis_server/test/services/refactoring/convert_getter_to_method_test.dart
@@ -2,7 +2,7 @@
// 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.
-import 'package:analysis_server/src/services/refactoring/refactoring.dart';
+import 'package:analysis_server/src/services/refactoring/legacy/refactoring.dart';
import 'package:analyzer/dart/element/element.dart';
import 'package:analyzer_plugin/protocol/protocol_common.dart' hide ElementKind;
import 'package:test_reflective_loader/test_reflective_loader.dart';
diff --git a/pkg/analysis_server/test/services/refactoring/convert_method_to_getter_test.dart b/pkg/analysis_server/test/services/refactoring/convert_method_to_getter_test.dart
index 3c20426..af7fa9a 100644
--- a/pkg/analysis_server/test/services/refactoring/convert_method_to_getter_test.dart
+++ b/pkg/analysis_server/test/services/refactoring/convert_method_to_getter_test.dart
@@ -2,7 +2,7 @@
// 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.
-import 'package:analysis_server/src/services/refactoring/refactoring.dart';
+import 'package:analysis_server/src/services/refactoring/legacy/refactoring.dart';
import 'package:analyzer/dart/element/element.dart';
import 'package:analyzer_plugin/protocol/protocol_common.dart'
show RefactoringProblemSeverity;
diff --git a/pkg/analysis_server/test/services/refactoring/extract_local_test.dart b/pkg/analysis_server/test/services/refactoring/extract_local_test.dart
index 018abef..b2db53c 100644
--- a/pkg/analysis_server/test/services/refactoring/extract_local_test.dart
+++ b/pkg/analysis_server/test/services/refactoring/extract_local_test.dart
@@ -5,7 +5,7 @@
import 'dart:convert';
import 'package:analysis_server/src/services/linter/lint_names.dart';
-import 'package:analysis_server/src/services/refactoring/extract_local.dart';
+import 'package:analysis_server/src/services/refactoring/legacy/extract_local.dart';
import 'package:analyzer_plugin/protocol/protocol_common.dart';
import 'package:test/test.dart';
import 'package:test_reflective_loader/test_reflective_loader.dart';
diff --git a/pkg/analysis_server/test/services/refactoring/extract_method_test.dart b/pkg/analysis_server/test/services/refactoring/extract_method_test.dart
index 4335a2d..759b9c5 100644
--- a/pkg/analysis_server/test/services/refactoring/extract_method_test.dart
+++ b/pkg/analysis_server/test/services/refactoring/extract_method_test.dart
@@ -2,7 +2,7 @@
// 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.
-import 'package:analysis_server/src/services/refactoring/extract_method.dart';
+import 'package:analysis_server/src/services/refactoring/legacy/extract_method.dart';
import 'package:analyzer_plugin/protocol/protocol_common.dart';
import 'package:test/test.dart';
import 'package:test_reflective_loader/test_reflective_loader.dart';
diff --git a/pkg/analysis_server/test/services/refactoring/extract_widget_test.dart b/pkg/analysis_server/test/services/refactoring/extract_widget_test.dart
index eabe685..2c5b473 100644
--- a/pkg/analysis_server/test/services/refactoring/extract_widget_test.dart
+++ b/pkg/analysis_server/test/services/refactoring/extract_widget_test.dart
@@ -2,7 +2,7 @@
// 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.
-import 'package:analysis_server/src/services/refactoring/extract_widget.dart';
+import 'package:analysis_server/src/services/refactoring/legacy/extract_widget.dart';
import 'package:analyzer_plugin/protocol/protocol_common.dart';
import 'package:test/test.dart';
import 'package:test_reflective_loader/test_reflective_loader.dart';
diff --git a/pkg/analysis_server/test/services/refactoring/inline_local_test.dart b/pkg/analysis_server/test/services/refactoring/inline_local_test.dart
index 3f299ed..174be56 100644
--- a/pkg/analysis_server/test/services/refactoring/inline_local_test.dart
+++ b/pkg/analysis_server/test/services/refactoring/inline_local_test.dart
@@ -3,7 +3,7 @@
// BSD-style license that can be found in the LICENSE file.
import 'package:analysis_server/src/services/correction/status.dart';
-import 'package:analysis_server/src/services/refactoring/inline_local.dart';
+import 'package:analysis_server/src/services/refactoring/legacy/inline_local.dart';
import 'package:analyzer_plugin/protocol/protocol_common.dart' hide Element;
import 'package:test/test.dart';
import 'package:test_reflective_loader/test_reflective_loader.dart';
diff --git a/pkg/analysis_server/test/services/refactoring/inline_method_test.dart b/pkg/analysis_server/test/services/refactoring/inline_method_test.dart
index 372ce62..d504889 100644
--- a/pkg/analysis_server/test/services/refactoring/inline_method_test.dart
+++ b/pkg/analysis_server/test/services/refactoring/inline_method_test.dart
@@ -2,7 +2,7 @@
// 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.
-import 'package:analysis_server/src/services/refactoring/inline_method.dart';
+import 'package:analysis_server/src/services/refactoring/legacy/inline_method.dart';
import 'package:analyzer/src/generated/source.dart';
import 'package:analyzer_plugin/protocol/protocol_common.dart' hide Element;
import 'package:test/test.dart';
diff --git a/pkg/analysis_server/test/services/refactoring/move_file_test.dart b/pkg/analysis_server/test/services/refactoring/move_file_test.dart
index c4baa27..c605bcd 100644
--- a/pkg/analysis_server/test/services/refactoring/move_file_test.dart
+++ b/pkg/analysis_server/test/services/refactoring/move_file_test.dart
@@ -3,7 +3,7 @@
// BSD-style license that can be found in the LICENSE file.
import 'package:analysis_server/src/protocol_server.dart';
-import 'package:analysis_server/src/services/refactoring/refactoring.dart';
+import 'package:analysis_server/src/services/refactoring/legacy/refactoring.dart';
import 'package:analyzer/dart/analysis/results.dart';
import 'package:test/test.dart';
import 'package:test_reflective_loader/test_reflective_loader.dart';
diff --git a/pkg/analysis_server/test/services/refactoring/naming_conventions_test.dart b/pkg/analysis_server/test/services/refactoring/naming_conventions_test.dart
index 05be8f8..d721d15 100644
--- a/pkg/analysis_server/test/services/refactoring/naming_conventions_test.dart
+++ b/pkg/analysis_server/test/services/refactoring/naming_conventions_test.dart
@@ -3,8 +3,8 @@
// BSD-style license that can be found in the LICENSE file.
import 'package:analysis_server/src/services/correction/status.dart';
-import 'package:analysis_server/src/services/refactoring/naming_conventions.dart';
-import 'package:analysis_server/src/services/refactoring/refactoring.dart';
+import 'package:analysis_server/src/services/refactoring/legacy/naming_conventions.dart';
+import 'package:analysis_server/src/services/refactoring/legacy/refactoring.dart';
import 'package:analyzer_plugin/protocol/protocol_common.dart'
show RefactoringProblemSeverity;
import 'package:test_reflective_loader/test_reflective_loader.dart';
diff --git a/pkg/analysis_server/test/services/refactoring/rename_constructor_test.dart b/pkg/analysis_server/test/services/refactoring/rename_constructor_test.dart
index acb01ea..a690c71 100644
--- a/pkg/analysis_server/test/services/refactoring/rename_constructor_test.dart
+++ b/pkg/analysis_server/test/services/refactoring/rename_constructor_test.dart
@@ -3,7 +3,7 @@
// BSD-style license that can be found in the LICENSE file.
import 'package:analysis_server/src/services/linter/lint_names.dart';
-import 'package:analysis_server/src/services/refactoring/refactoring.dart';
+import 'package:analysis_server/src/services/refactoring/legacy/refactoring.dart';
import 'package:analyzer_plugin/protocol/protocol_common.dart';
import 'package:test/test.dart';
import 'package:test_reflective_loader/test_reflective_loader.dart';
diff --git a/pkg/dart2js_info/bin/src/to_devtools_format.dart b/pkg/dart2js_info/bin/src/to_devtools_format.dart
index 8e12f5d..9469c95 100644
--- a/pkg/dart2js_info/bin/src/to_devtools_format.dart
+++ b/pkg/dart2js_info/bin/src/to_devtools_format.dart
@@ -1,13 +1,13 @@
+library dart2js_info.bin.to_devtools_format;
+
import 'dart:convert';
import 'dart:io';
import 'package:args/command_runner.dart';
import 'package:dart2js_info/info.dart';
import 'package:dart2js_info/src/io.dart';
-import 'package:dart2js_info/src/util.dart';
+import 'package:dart2js_info/src/util.dart' show longName, libraryGroupName;
import 'package:vm_snapshot_analysis/program_info.dart' as vm;
-import 'package:vm_snapshot_analysis/treemap.dart';
-
import 'usage_exception.dart';
/// Command that converts a `--dump-info` JSON output into a format ingested by Devtools.
@@ -39,12 +39,12 @@
final AllInfo allInfo = await infoFromFile(args.rest.first);
final builder = ProgramInfoBuilder(allInfo);
vm.ProgramInfo programInfo = builder.build(allInfo);
- Map<String, dynamic> treeMap = treemapFromInfo(programInfo);
- var treeMapJson = jsonEncode(treeMap);
+ Map<String, dynamic> programInfoTree = programInfo.toJson();
+ // TODO: convert the programInfo tree to a treemap
if (outputPath == null) {
- print(treeMapJson);
+ print(jsonEncode(programInfoTree));
} else {
- await File(outputPath).writeAsString(treeMapJson);
+ await File(outputPath).writeAsString(jsonEncode(programInfoTree));
}
}
}
@@ -61,17 +61,34 @@
final List<vm.ProgramInfoNode> outputInfo = [];
+ /// Mapping between the filename of the outputUnit and the [vm.ProgramInfo]
+ /// subtree representing a program unit (main or deferred).
+ final Map<String, vm.ProgramInfo> outputUnits = {};
+
+ /// Mapping between the name of the library [vm.ProgramInfoNode]
+ /// object and its corresponding outputUnit [vm.ProgramInfo] tree.
+ final Map<String, vm.ProgramInfo> libraryUnits = {};
+
+ /// Mapping between the name of an [Info] object and the corresponding
+ /// [vm.ProgramInfoNode] object.
+ ///
+ /// For packages and libraries, since their children can be split among
+ /// different outputUnits, a composite name is used instead to differentiate
+ /// between [vm.ProgramInfoNode] in different outputUnits.
+ final Map<String, vm.ProgramInfoNode> infoNodesByName = {};
+
+ /// A unique key composed of the name of an [Info] object and the
+ /// filename of the outputUnit.
+ String compositeName(String name, String outputUnitName) =>
+ "$name/$outputUnitName";
+
/// Mapping between the name of a [Info] object and the corresponding
/// [vm.ProgramInfoNode] object.
- Map<String, vm.ProgramInfoNode> infoNodesByName = {};
-
- /// Mapping between the id (aka coverageId) of an [AllInfo] node and the
- /// corresponding [vm.ProgramInfoNode] object.
final Map<String, vm.ProgramInfoNode> infoNodesById = {};
- /// Mapping between package names and the corresponding [vm.ProgramInfoNode]
- /// objects of [vm.NodeType.packageNode].
- final Map<String, vm.ProgramInfoNode> packageInfoNodes = {};
+ /// Mapping between the composite name of a package and the corresponding
+ /// [vm.ProgramInfoNode] objects of [vm.NodeType.packageNode].
+ final Map<String, dynamic> packageInfoNodes = {};
/// Mapping between an <unnamed> [LibraryInfo] object and the name of the
/// corresponding [vm.ProgramInfoNode] object.
@@ -79,33 +96,289 @@
ProgramInfoBuilder(this.info);
+ /// Collect libraries into packages and aggregate their sizes.
+ void makePackage(LibraryInfo libraryInfo, String outputUnitName) {
+ vm.ProgramInfo outputUnit = outputUnits[outputUnitName]!;
+ String libraryName = libraryInfo.name;
+ if (libraryInfo.name == '<unnamed>') {
+ libraryName = longName(libraryInfo, useLibraryUri: true, forId: true);
+ }
+ String packageName = libraryGroupName(libraryInfo) ?? libraryName;
+ vm.ProgramInfoNode? packageInfoNode = packageInfoNodes[packageName];
+ if (packageInfoNode == null) {
+ String compositePackageName = compositeName(packageName, outputUnitName);
+ vm.ProgramInfoNode newPackage = outputUnit.makeNode(
+ name: compositePackageName,
+ parent: outputUnit.root,
+ type: vm.NodeType.packageNode);
+ newPackage.size = libraryInfo.size;
+ packageInfoNodes[compositePackageName] = newPackage;
+ outputUnit.root.children[compositePackageName] = newPackage;
+ outputInfo.add(newPackage);
+ var packageNode = infoNodesByName[compositePackageName];
+ assert(packageNode == null,
+ "encountered package with duplicated name: $compositePackageName");
+ infoNodesByName[compositePackageName] = newPackage;
+ } else {
+ packageInfoNode.size = (packageInfoNode.size ?? 0) + libraryInfo.size;
+ }
+ }
+
+ void makeLibrary(LibraryInfo libraryInfo, String outputUnitName) {
+ vm.ProgramInfo outputUnit = outputUnits[outputUnitName]!;
+ String libraryName = libraryInfo.name;
+ if (libraryName == '<unnamed>') {
+ libraryName = longName(libraryInfo, useLibraryUri: true, forId: true);
+ unnamedLibraries[libraryInfo] = libraryName;
+ }
+ String packageName = libraryGroupName(libraryInfo) ?? libraryName;
+ String compositePackageName = compositeName(packageName, outputUnitName);
+ vm.ProgramInfoNode parentNode = infoNodesByName[compositePackageName]!;
+ String compositeLibraryName = compositeName(libraryName, outputUnitName);
+ vm.ProgramInfoNode newLibrary = outputUnit.makeNode(
+ name: compositeLibraryName,
+ parent: parentNode,
+ type: vm.NodeType.libraryNode);
+ newLibrary.size = libraryInfo.size;
+ parentNode.children[newLibrary.name] = newLibrary;
+ vm.ProgramInfoNode? libraryNode = infoNodesByName[compositeLibraryName];
+ assert(libraryNode == null,
+ "encountered library with duplicated name: $compositeLibraryName");
+ infoNodesByName[compositeLibraryName] = newLibrary;
+ outputInfo.add(newLibrary);
+ }
+
+ void makeFunction(FunctionInfo functionInfo) {
+ Info? parent = functionInfo.parent;
+ String outputUnitName = functionInfo.outputUnit!.filename;
+ vm.ProgramInfo? outputUnit = outputUnits[outputUnitName];
+ if (parent != null && outputUnit != null) {
+ assert(parent.kind == kindFromString('library'));
+ vm.ProgramInfoNode parentNode;
+ if (parent.kind == kindFromString('library')) {
+ if (parent.name == "<unnamed>") {
+ var tempName =
+ compositeName(unnamedLibraries[parent]!, outputUnitName);
+ parentNode = infoNodesByName[tempName]!;
+ } else {
+ parentNode =
+ infoNodesByName[compositeName(parent.name, outputUnitName)]!;
+ }
+ } else {
+ parentNode = infoNodesByName[parent.name]!;
+ }
+ vm.ProgramInfoNode newFunction = outputUnit.makeNode(
+ name: functionInfo.name,
+ parent: parentNode,
+ type: vm.NodeType.functionNode);
+ newFunction.size = functionInfo.size;
+ parentNode.children[newFunction.name] = newFunction;
+ vm.ProgramInfoNode? functionNode = infoNodesByName[newFunction.name];
+ assert(functionNode == null,
+ "encountered function with duplicated name: $newFunction.name");
+ infoNodesByName[newFunction.name] = newFunction;
+ outputInfo.add(newFunction);
+ }
+ }
+
+ void makeClass(ClassInfo classInfo) {
+ Info? parent = classInfo.parent;
+ String outputUnitName = classInfo.outputUnit!.filename;
+ vm.ProgramInfo? outputUnit = outputUnits[outputUnitName];
+ if (parent != null && outputUnit != null) {
+ vm.ProgramInfoNode parentNode;
+ if (parent.kind == kindFromString('library')) {
+ if (parent.name == "<unnamed>") {
+ var tempName =
+ compositeName(unnamedLibraries[parent]!, outputUnitName);
+ parentNode = infoNodesByName[tempName]!;
+ } else {
+ parentNode =
+ infoNodesByName[compositeName(parent.name, outputUnitName)]!;
+ }
+ } else {
+ parentNode = infoNodesByName[parent.name]!;
+ }
+ vm.ProgramInfoNode newClass = outputUnit.makeNode(
+ name: classInfo.name,
+ parent: parentNode,
+ type: vm.NodeType.classNode);
+ newClass.size = classInfo.size;
+ parentNode.children[newClass.name] = newClass;
+ vm.ProgramInfoNode? classNode = infoNodesByName[newClass.name];
+ assert(classNode == null,
+ "encountered class with duplicated name: $newClass.name");
+ infoNodesByName[newClass.name] = newClass;
+ outputInfo.add(newClass);
+ }
+ }
+
+ /// Fields are currently assigned [vm.NodeType.other].
+ ///
+ /// Note: we might want to create a separate [vm.NodeType.fieldNode] to
+ /// differentiate fields from other miscellaneous nodes for constructing
+ /// the call graph.
+ void makeField(FieldInfo fieldInfo) {
+ Info? parent = fieldInfo.parent;
+ String outputUnitName = fieldInfo.outputUnit!.filename;
+ vm.ProgramInfo? outputUnit = outputUnits[outputUnitName];
+ if (parent != null && outputUnit != null) {
+ vm.ProgramInfoNode parentNode;
+ if (parent.kind == kindFromString('library')) {
+ if (parent.name == "<unnamed>") {
+ var tempName =
+ compositeName(unnamedLibraries[parent]!, outputUnitName);
+ parentNode = infoNodesByName[tempName]!;
+ } else {
+ parentNode =
+ infoNodesByName[compositeName(parent.name, outputUnitName)]!;
+ }
+ } else {
+ parentNode = infoNodesByName[parent.name]!;
+ }
+ vm.ProgramInfoNode newField = outputUnit.makeNode(
+ name: fieldInfo.name, parent: parentNode, type: vm.NodeType.other);
+ newField.size = fieldInfo.size;
+ parentNode.children[newField.name] = newField;
+ vm.ProgramInfoNode? fieldNode = infoNodesByName[newField.name];
+ assert(fieldNode == null,
+ "encountered field with duplicated name: $newField.name");
+ infoNodesByName[newField.name] = newField;
+ outputInfo.add(newField);
+ }
+ }
+
+ void makeConstant(ConstantInfo constantInfo) {
+ String? constantName = constantInfo.code.first.text ??
+ "${constantInfo.code.first.start}/${constantInfo.code.first.end}";
+ String outputUnitName = constantInfo.outputUnit!.filename;
+ vm.ProgramInfo? outputUnit = outputUnits[outputUnitName];
+ vm.ProgramInfoNode newConstant = outputUnit!.makeNode(
+ name: constantName, parent: outputUnit.root, type: vm.NodeType.other);
+ newConstant.size = constantInfo.size;
+ outputUnit.root.children[newConstant.name] = newConstant;
+ vm.ProgramInfoNode? constantNode = infoNodesByName[newConstant.name];
+ assert(constantNode == null,
+ "encountered constant with duplicated name: $newConstant.name");
+ infoNodesByName[newConstant.name] = newConstant;
+ outputInfo.add(newConstant);
+ }
+
+ void makeTypedef(TypedefInfo typedefInfo) {
+ String outputUnitName = typedefInfo.outputUnit!.filename;
+ vm.ProgramInfo? outputUnit = outputUnits[outputUnitName];
+ vm.ProgramInfoNode newTypedef = outputUnit!.makeNode(
+ name: typedefInfo.name,
+ parent: outputUnit.root,
+ type: vm.NodeType.other);
+ newTypedef.size = typedefInfo.size;
+ vm.ProgramInfoNode? typedefNode = infoNodesByName[newTypedef.name];
+ assert(typedefNode == null,
+ "encountered constant with duplicated name: $newTypedef.name");
+ outputInfo.add(newTypedef);
+ }
+
+ void makeClassType(ClassTypeInfo classTypeInfo) {
+ Info? parent = classTypeInfo.parent;
+ String outputUnitName = classTypeInfo.outputUnit!.filename;
+ vm.ProgramInfo? outputUnit = outputUnits[outputUnitName];
+ if (parent != null && outputUnit != null) {
+ assert(parent.kind == kindFromString('library'));
+ vm.ProgramInfoNode parentNode;
+ if (parent.name == "<unnamed>") {
+ var tempName = compositeName(unnamedLibraries[parent]!, outputUnitName);
+ parentNode = infoNodesByName[tempName]!;
+ } else {
+ parentNode =
+ infoNodesByName[compositeName(parent.name, outputUnitName)]!;
+ }
+ vm.ProgramInfoNode newClassType = outputUnit.makeNode(
+ name: classTypeInfo.name,
+ parent: parentNode,
+ type: vm.NodeType.other);
+ newClassType.size = classTypeInfo.size;
+ vm.ProgramInfoNode? classTypeNode = infoNodesByName[newClassType.name];
+ assert(classTypeNode == null,
+ "encountered classType with duplicated name: $newClassType.name");
+ infoNodesByName[newClassType.name] = newClassType;
+ outputInfo.add(newClassType);
+ }
+ }
+
+ void makeClosure(ClosureInfo closureInfo) {
+ Info? parent = closureInfo.parent;
+ String outputUnitName = closureInfo.outputUnit!.filename;
+ vm.ProgramInfo? outputUnit = outputUnits[outputUnitName];
+ if (parent != null && outputUnit != null) {
+ vm.ProgramInfoNode parentNode;
+ if (parent.kind == kindFromString('library')) {
+ if (parent.name == "<unnamed>") {
+ var tempName =
+ compositeName(unnamedLibraries[parent]!, outputUnitName);
+ parentNode = infoNodesByName[tempName]!;
+ } else {
+ parentNode =
+ infoNodesByName[compositeName(parent.name, outputUnitName)]!;
+ }
+ } else {
+ parentNode = infoNodesByName[parent.name]!;
+ }
+ vm.ProgramInfoNode newClosure = outputUnit.makeNode(
+ name: closureInfo.name,
+ parent: parentNode,
+ // ProgramInfo trees consider closures and functions to both be of the functionNode type.
+ type: vm.NodeType.functionNode);
+ newClosure.size = closureInfo.size;
+ parentNode.children[newClosure.name] = newClosure;
+ vm.ProgramInfoNode? closureNode = infoNodesByName[newClosure.name];
+ assert(closureNode == null,
+ "encountered closure with duplicated name: $newClosure.name");
+ infoNodesByName[newClosure.name] = newClosure;
+ outputInfo.add(newClosure);
+ }
+ }
+
@override
- vm.ProgramInfoNode visitAll(AllInfo info) {
- outputInfo.add(program.root);
- info.libraries.forEach(makePackage);
- info.packages.forEach(visitPackage);
- info.libraries.forEach(makeLibrary);
- info.libraries.forEach(visitLibrary);
+ vm.ProgramInfoNode visitAll(AllInfo info, String outputUnitName) {
+ outputInfo.add(outputUnits[outputUnitName]!.root);
+ visitProgram(info.program!);
+ for (var package in info.packages) {
+ visitPackage(package, outputUnitName);
+ }
+ for (var library in info.libraries) {
+ visitLibrary(library, outputUnitName);
+ }
info.constants.forEach(makeConstant);
info.constants.forEach(visitConstant);
- return program.root;
+ return outputUnits[outputUnitName]!.root;
+ }
+
+ @override
+ vm.ProgramInfoNode visitOutput(OutputUnitInfo info) {
+ vm.ProgramInfo? outputUnit = outputUnits[info.filename];
+ assert(outputUnit == null, "encountered outputUnit with duplicated name");
+ var newUnit = vm.ProgramInfo();
+ outputUnits[info.filename] = newUnit;
+ outputUnits[info.filename]!.root.size = info.size;
+ return outputUnits[info.filename]!.root;
}
@override
vm.ProgramInfoNode visitProgram(ProgramInfo info) {
- throw Exception('Not supported for devtools format.');
+ program.root.size = info.size;
+ return program.root;
}
@override
- vm.ProgramInfoNode visitPackage(PackageInfo info) {
- info.libraries.forEach(makePackage);
- info.libraries.forEach(makeLibrary);
- info.libraries.forEach(visitLibrary);
- return infoNodesByName[info.name]!;
+ vm.ProgramInfoNode visitPackage(PackageInfo info, String outputUnitName) {
+ for (var library in info.libraries) {
+ visitLibrary(library, outputUnitName);
+ }
+ return infoNodesByName[compositeName(info.name, outputUnitName)]!;
}
@override
- vm.ProgramInfoNode visitLibrary(LibraryInfo info) {
+ vm.ProgramInfoNode visitLibrary(LibraryInfo info, String outputUnitName) {
info.topLevelFunctions.forEach(makeFunction);
info.topLevelFunctions.forEach(visitFunction);
info.topLevelVariables.forEach(makeField);
@@ -116,8 +389,9 @@
info.classTypes.forEach(visitClassType);
info.typedefs.forEach(makeTypedef);
info.typedefs.forEach(visitTypedef);
- return infoNodesByName[info.name] ??
- infoNodesByName[unnamedLibraries[info]]!;
+ return infoNodesByName[compositeName(info.name, outputUnitName)] ??
+ infoNodesByName[
+ compositeName(unnamedLibraries[info]!, outputUnitName)]!;
}
@override
@@ -157,7 +431,8 @@
@override
vm.ProgramInfoNode visitConstant(ConstantInfo info) {
- return infoNodesByName[info.code.first.text!]!;
+ return infoNodesByName[info.code.first.text] ??
+ infoNodesByName["${info.code.first.start}/${info.code.first.end}"]!;
}
@override
@@ -165,191 +440,18 @@
return infoNodesByName[info.name]!;
}
- @override
- vm.ProgramInfoNode visitOutput(OutputUnitInfo info) {
- throw Exception("For deferred loading.");
- }
-
vm.ProgramInfo build(AllInfo info) {
- visitAll(info);
+ info.outputUnits.forEach(visitOutput);
+ for (var outputUnitName in outputUnits.keys) {
+ for (var library in info.libraries) {
+ makePackage(library, outputUnitName);
+ makeLibrary(library, outputUnitName);
+ }
+ }
+ for (var outputUnitName in outputUnits.keys) {
+ visitAll(info, outputUnitName);
+ program.root.children[outputUnitName] = outputUnits[outputUnitName]!.root;
+ }
return program;
}
-
- /// Collect libraries into packages and aggregate their sizes.
- void makePackage(LibraryInfo libraryInfo) {
- String packageName = libraryGroupName(libraryInfo) ?? libraryInfo.name;
- vm.ProgramInfoNode? packageInfoNode = packageInfoNodes[packageName];
- if (packageInfoNode == null) {
- vm.ProgramInfoNode newPackage = program.makeNode(
- name: packageName,
- parent: program.root,
- type: vm.NodeType.packageNode);
- newPackage.size = libraryInfo.size;
- packageInfoNodes[packageName] = newPackage;
- program.root.children[packageName] = newPackage;
- outputInfo.add(newPackage);
- var packageNode = infoNodesByName[newPackage.name];
- assert(packageNode == null, "encountered package with duplicated name");
- infoNodesByName[newPackage.name] = newPackage;
- } else {
- packageInfoNode.size = (packageInfoNode.size ?? 0) + libraryInfo.size;
- }
- }
-
- void makeLibrary(LibraryInfo libraryInfo) {
- String packageName = libraryGroupName(libraryInfo) ?? libraryInfo.name;
- vm.ProgramInfoNode parentNode = infoNodesByName[packageName]!;
- String libraryName = libraryInfo.name;
- if (libraryName == '<unnamed>') {
- libraryName = longName(libraryInfo, useLibraryUri: true, forId: true);
- unnamedLibraries[libraryInfo] = libraryName;
- }
- vm.ProgramInfoNode newLibrary = program.makeNode(
- name: libraryName, parent: parentNode, type: vm.NodeType.libraryNode);
- newLibrary.size = libraryInfo.size;
- parentNode.children[newLibrary.name] = newLibrary;
- vm.ProgramInfoNode? libraryNode = infoNodesByName[newLibrary.name];
- assert(libraryNode == null, "encountered library with duplicated name");
- infoNodesByName[newLibrary.name] = newLibrary;
- outputInfo.add(newLibrary);
- }
-
- void makeFunction(FunctionInfo functionInfo) {
- Info? parent = functionInfo.parent;
- if (parent != null) {
- vm.ProgramInfoNode parentNode;
- if (parent.name == "<unnamed>" &&
- parent.kind == kindFromString('library')) {
- parentNode = infoNodesByName[unnamedLibraries[parent]]!;
- } else {
- parentNode = infoNodesByName[parent.name]!;
- }
- vm.ProgramInfoNode newFunction = program.makeNode(
- name: functionInfo.name,
- parent: parentNode,
- type: vm.NodeType.functionNode);
- newFunction.size = functionInfo.size;
- parentNode.children[newFunction.name] = newFunction;
- vm.ProgramInfoNode? functionNode = infoNodesByName[newFunction.name];
- assert(functionNode == null, "encountered function with duplicated name");
- infoNodesByName[newFunction.name] = newFunction;
- outputInfo.add(newFunction);
- }
- }
-
- void makeClass(ClassInfo classInfo) {
- Info? parent = classInfo.parent;
- if (parent != null) {
- vm.ProgramInfoNode parentNode;
- if (parent.name == "<unnamed>" &&
- parent.kind == kindFromString('library')) {
- parentNode = infoNodesByName[unnamedLibraries[parent]]!;
- } else {
- parentNode = infoNodesByName[parent.name]!;
- }
- vm.ProgramInfoNode newClass = program.makeNode(
- name: classInfo.name,
- parent: parentNode,
- type: vm.NodeType.classNode);
- newClass.size = classInfo.size;
- parentNode.children[newClass.name] = newClass;
- vm.ProgramInfoNode? classNode = infoNodesByName[newClass.name];
- assert(classNode == null, "encountered class with duplicated name");
- infoNodesByName[newClass.name] = newClass;
- outputInfo.add(newClass);
- }
- }
-
- /// Fields are currently assigned [vm.NodeType.other].
- ///
- /// Note: we might want to create a separate [vm.NodeType.fieldNode] to
- /// differentiate fields from other miscellaneous nodes for constructing
- /// the call graph.
- void makeField(FieldInfo fieldInfo) {
- Info? parent = fieldInfo.parent;
- if (parent != null) {
- vm.ProgramInfoNode parentNode;
- if (parent.name == "<unnamed>" &&
- parent.kind == kindFromString('library')) {
- parentNode = infoNodesByName[unnamedLibraries[parent]]!;
- } else {
- parentNode = infoNodesByName[parent.name]!;
- }
- vm.ProgramInfoNode newField = program.makeNode(
- name: fieldInfo.name, parent: parentNode, type: vm.NodeType.other);
- newField.size = fieldInfo.size;
- parentNode.children[newField.name] = newField;
- vm.ProgramInfoNode? fieldNode = infoNodesByName[newField.name];
- assert(fieldNode == null, "encountered field with duplicated name");
- infoNodesByName[newField.name] = newField;
- outputInfo.add(newField);
- }
- }
-
- void makeConstant(ConstantInfo constantInfo) {
- String constantName = constantInfo.code.first.text!;
- vm.ProgramInfoNode newConstant = program.makeNode(
- name: constantName, parent: program.root, type: vm.NodeType.other);
- newConstant.size = constantInfo.size;
- program.root.children[newConstant.name] = newConstant;
- vm.ProgramInfoNode? constantNode = infoNodesByName[newConstant.name];
- assert(constantNode == null, "encountered constant with duplicated name");
- infoNodesByName[newConstant.name] = newConstant;
- outputInfo.add(newConstant);
- }
-
- void makeTypedef(TypedefInfo typedefInfo) {
- vm.ProgramInfoNode newTypedef = program.makeNode(
- name: typedefInfo.name, parent: program.root, type: vm.NodeType.other);
- newTypedef.size = typedefInfo.size;
- infoNodesByName[newTypedef.name] = newTypedef;
- outputInfo.add(newTypedef);
- }
-
- void makeClassType(ClassTypeInfo classTypeInfo) {
- Info? parent = classTypeInfo.parent;
- if (parent != null) {
- vm.ProgramInfoNode parentNode;
- if (parent.name == "<unnamed>" &&
- parent.kind == kindFromString('library')) {
- parentNode = infoNodesByName[unnamedLibraries[parent]]!;
- } else {
- parentNode = infoNodesByName[parent.name]!;
- }
- vm.ProgramInfoNode newClassType = program.makeNode(
- name: classTypeInfo.name,
- parent: parentNode,
- type: vm.NodeType.other);
- newClassType.size = classTypeInfo.size;
- vm.ProgramInfoNode? classTypeNode = infoNodesByName[newClassType.name];
- assert(
- classTypeNode == null, "encountered classType with duplicated name");
- infoNodesByName[newClassType.name] = newClassType;
- outputInfo.add(newClassType);
- }
- }
-
- void makeClosure(ClosureInfo closureInfo) {
- Info? parent = closureInfo.parent;
- if (parent != null) {
- vm.ProgramInfoNode parentNode;
- if (parent.name == "<unnamed>" &&
- parent.kind == kindFromString('library')) {
- parentNode = infoNodesByName[unnamedLibraries[parent]]!;
- } else {
- parentNode = infoNodesByName[parent.name]!;
- }
- vm.ProgramInfoNode newClosure = program.makeNode(
- name: closureInfo.name,
- parent: parentNode,
- // ProgramInfo trees consider closures and functions to both be of the functionNode type.
- type: vm.NodeType.functionNode);
- newClosure.size = closureInfo.size;
- parentNode.children[newClosure.name] = newClosure;
- vm.ProgramInfoNode? closureNode = infoNodesByName[newClosure.name];
- assert(closureNode == null, "encountered closure with duplicated name");
- infoNodesByName[newClosure.name] = newClosure;
- outputInfo.add(newClosure);
- }
- }
}
diff --git a/pkg/dart2js_info/lib/info.dart b/pkg/dart2js_info/lib/info.dart
index 051d75a..7c14f74 100644
--- a/pkg/dart2js_info/lib/info.dart
+++ b/pkg/dart2js_info/lib/info.dart
@@ -203,14 +203,8 @@
: super(InfoKind.package, name, outputUnit, size, null);
@override
- T accept<T>(InfoVisitor<T> visitor) {
- if (visitor is VMProgramInfoVisitor<T>) {
- return visitor.visitPackage(this);
- } else {
- throw ArgumentError(
- "PackageInfo can only be visited by a VMProgramInfoVisitor");
- }
- }
+ T accept<T>(InfoVisitor<T> visitor) =>
+ throw Exception("PackageInfo is not supported by InfoVisitor.");
}
/// Info associated with a library element.
@@ -620,8 +614,19 @@
/// A visitor that adds implementation for PackageInfo specifically for building
/// the VM ProgramInfo Tree from a Dart2js info tree.
-abstract class VMProgramInfoVisitor<T> extends InfoVisitor<T> {
- T visitPackage(PackageInfo info);
+abstract class VMProgramInfoVisitor<T> {
+ T visitAll(AllInfo info, String outputUnit);
+ T visitProgram(ProgramInfo info);
+ T visitPackage(PackageInfo info, String outputUnit);
+ T visitLibrary(LibraryInfo info, String outputUnit);
+ T visitClass(ClassInfo info);
+ T visitClassType(ClassTypeInfo info);
+ T visitField(FieldInfo info);
+ T visitConstant(ConstantInfo info);
+ T visitFunction(FunctionInfo info);
+ T visitTypedef(TypedefInfo info);
+ T visitClosure(ClosureInfo info);
+ T visitOutput(OutputUnitInfo info);
}
/// A visitor that recursively walks each portion of the program. Because the
@@ -642,6 +647,11 @@
@override
void visitProgram(ProgramInfo info) {}
+ void visitPackage(PackageInfo info) {
+ throw Exception(
+ "PackageInfo objects are only defined for the VM Devtools format.");
+ }
+
@override
void visitLibrary(LibraryInfo info) {
info.topLevelFunctions.forEach(visitFunction);
diff --git a/tools/VERSION b/tools/VERSION
index 890a9f6..a42fce5 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -27,5 +27,5 @@
MAJOR 2
MINOR 19
PATCH 0
-PRERELEASE 62
+PRERELEASE 63
PRERELEASE_PATCH 0
\ No newline at end of file