Elements. Migrate lib/src/computer/import_elements_computer.dart Change-Id: I116786925a2a462f15cd757cb51e8da3ecdb247f Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/399204 Reviewed-by: Phil Quitslund <pquitslund@google.com> Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
diff --git a/pkg/analysis_server/analyzer_use_new_elements.txt b/pkg/analysis_server/analyzer_use_new_elements.txt index 42acdc2..00c26e4 100644 --- a/pkg/analysis_server/analyzer_use_new_elements.txt +++ b/pkg/analysis_server/analyzer_use_new_elements.txt
@@ -4,7 +4,6 @@ lib/src/cider/rename.dart lib/src/computer/computer_call_hierarchy.dart lib/src/computer/computer_documentation.dart -lib/src/computer/import_elements_computer.dart lib/src/domains/analysis/implemented_dart.dart lib/src/domains/analysis/occurrences_dart.dart lib/src/handler/legacy/completion_get_suggestions2.dart
diff --git a/pkg/analysis_server/lib/src/computer/import_elements_computer.dart b/pkg/analysis_server/lib/src/computer/import_elements_computer.dart index 30191e5..bb79073 100644 --- a/pkg/analysis_server/lib/src/computer/import_elements_computer.dart +++ b/pkg/analysis_server/lib/src/computer/import_elements_computer.dart
@@ -5,7 +5,7 @@ import 'package:analysis_server/protocol/protocol_generated.dart'; import 'package:analyzer/dart/analysis/results.dart'; import 'package:analyzer/dart/ast/ast.dart'; -import 'package:analyzer/dart/element/element.dart'; +import 'package:analyzer/dart/element/element2.dart'; import 'package:analyzer/file_system/file_system.dart'; import 'package:analyzer/source/file_source.dart'; import 'package:analyzer/source/source.dart'; @@ -37,7 +37,7 @@ var filteredImportedElements = _filterImportedElements( importedElementsList, ); - var libraryElement = libraryResult.libraryElement; + var libraryElement = libraryResult.libraryElement2; var uriConverter = libraryResult.session.uriConverter; var existingImports = <ImportDirective>[]; for (var directive in unit.directives) { @@ -342,7 +342,7 @@ /// Computes the best URI to import [what] into [from]. /// /// Copied from DartFileEditBuilderImpl. - String _getLibrarySourceUri(LibraryElement from, Source what) { + String _getLibrarySourceUri(LibraryElement2 from, Source what) { var whatPath = what.fullName; // check if an absolute URI (such as 'dart:' or 'package:') var whatUri = what.uri; @@ -352,17 +352,17 @@ } // compute a relative URI var context = resourceProvider.pathContext; - var fromFolder = context.dirname(from.source.fullName); + var fromFolder = context.dirname(from.firstFragment.source.fullName); var relativeFile = context.relative(whatPath, from: fromFolder); return context.split(relativeFile).join('/'); } bool _hasElement(String prefix, String name) { - var scope = libraryResult.libraryElement.definingCompilationUnit.scope; + var scope = libraryResult.libraryElement2.firstFragment.scope; if (prefix.isNotEmpty) { - var prefixElement = scope.lookup(prefix).getter; - if (prefixElement is PrefixElement) { + var prefixElement = scope.lookup(prefix).getter2; + if (prefixElement is PrefixElement2) { scope = prefixElement.scope; } else { return false; @@ -370,20 +370,20 @@ } var lookupResult = scope.lookup(name); - return lookupResult.getter != null || lookupResult.setter != null; + return lookupResult.getter2 != null || lookupResult.setter2 != null; } /// Return `true` if the given [import] matches the given specification of /// [importedElements]. They will match if they import the same library using /// the same prefix. bool _matches(ImportDirective import, ImportedElements importedElements) { - var importElement = import.element; - if (importElement == null) { + var libraryImport = import.libraryImport; + if (libraryImport == null) { return false; } - var library = importElement.importedLibrary; + var library = libraryImport.importedLibrary2; return library != null && - library.source.fullName == importedElements.path && + library.firstFragment.source.fullName == importedElements.path && (import.prefix?.name ?? '') == importedElements.prefix; } }