Skip to content

Commit 0c42363

Browse files
bwilkersonCommit Queue
authored andcommitted
[migration] namespace.dart
Change-Id: I87d287cd73e34b3797258e27e4b80e57942bd7c5 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/410163 Reviewed-by: Konstantin Shcheglov <[email protected]> Commit-Queue: Brian Wilkerson <[email protected]>
1 parent e94b75a commit 0c42363

File tree

1 file changed

+3
-118
lines changed

1 file changed

+3
-118
lines changed

pkg/analysis_server/lib/src/services/correction/namespace.dart

Lines changed: 3 additions & 118 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,7 @@
22
// for details. All rights reserved. Use of this source code is governed by a
33
// BSD-style license that can be found in the LICENSE file.
44

5-
// ignore_for_file: analyzer_use_new_elements
6-
75
import 'package:analyzer/dart/ast/ast.dart';
8-
import 'package:analyzer/dart/element/element.dart';
96
import 'package:analyzer/dart/element/element2.dart';
107
import 'package:analyzer/src/dart/resolver/scope.dart';
118

@@ -18,17 +15,6 @@ Element2? getExportedElement(LibraryElement2? library, String name) {
1815
return namespace.definedNames2[name];
1916
}
2017

21-
/// Return the [LibraryImportElement] that is referenced by [prefixNode], or
22-
/// `null` if the node does not reference a prefix or if we cannot determine
23-
/// which import is being referenced.
24-
LibraryImportElement? getImportElement(SimpleIdentifier prefixNode) {
25-
var parent = prefixNode.parent;
26-
if (parent is ImportDirective) {
27-
return parent.element;
28-
}
29-
return _getImportElementInfo(prefixNode);
30-
}
31-
3218
/// Return the [LibraryImport] that is referenced by [prefixNode], or
3319
/// `null` if the node does not reference a prefix or if we cannot determine
3420
/// which import is being referenced.
@@ -40,78 +26,9 @@ LibraryImport? getImportElement2(SimpleIdentifier prefixNode) {
4026
return _getImportElementInfo2(prefixNode);
4127
}
4228

43-
/// Return the [LibraryImportElement] that declared [prefix] and imports [element].
44-
///
45-
/// [libraryElement] - the [LibraryElement] where reference is.
46-
/// [prefix] - the import prefix, maybe `null`.
47-
/// [element] - the referenced element.
48-
LibraryImportElement? _getImportElement(
49-
LibraryElement libraryElement,
50-
String prefix,
51-
Element element,
52-
) {
53-
if (element.enclosingElement3 is! CompilationUnitElement) {
54-
return null;
55-
}
56-
var usedLibrary = element.library;
57-
// find ImportElement that imports used library with used prefix
58-
List<LibraryImportElement>? candidates;
59-
for (var importElement
60-
in libraryElement.definingCompilationUnit.libraryImports) {
61-
// required library
62-
if (importElement.importedLibrary != usedLibrary) {
63-
continue;
64-
}
65-
// required prefix
66-
var prefixElement = importElement.prefix?.element;
67-
if (prefixElement == null) {
68-
continue;
69-
}
70-
if (prefix != prefixElement.name) {
71-
continue;
72-
}
73-
// no combinators => only possible candidate
74-
if (importElement.combinators.isEmpty) {
75-
return importElement;
76-
}
77-
// OK, we have candidate
78-
candidates ??= [];
79-
candidates.add(importElement);
80-
}
81-
// no candidates, probably element is defined in this library
82-
if (candidates == null) {
83-
return null;
84-
}
85-
// one candidate
86-
if (candidates.length == 1) {
87-
return candidates[0];
88-
}
89-
90-
var importElementsMap = <LibraryImportElement, Set<Element>>{};
91-
// ensure that each ImportElement has set of elements
92-
for (var importElement in candidates) {
93-
if (importElementsMap.containsKey(importElement)) {
94-
continue;
95-
}
96-
var namespace = importElement.namespace;
97-
var elements = Set<Element>.from(namespace.definedNames.values);
98-
importElementsMap[importElement] = elements;
99-
}
100-
// use import namespace to choose correct one
101-
for (var entry in importElementsMap.entries) {
102-
var importElement = entry.key;
103-
var elements = entry.value;
104-
if (elements.contains(element)) {
105-
return importElement;
106-
}
107-
}
108-
// not found
109-
return null;
110-
}
111-
112-
/// Return the [LibraryImportElement] that declared [prefix] and imports [element].
29+
/// Return the [LibraryImport] that declared [prefix] and imports [element].
11330
///
114-
/// [libraryElement] - the [LibraryElement] where reference is.
31+
/// [libraryElement] - the [LibraryElement2] where reference is.
11532
/// [prefix] - the import prefix, maybe `null`.
11633
/// [element] - the referenced element.
11734
LibraryImport? _getImportElement2(
@@ -177,40 +94,8 @@ LibraryImport? _getImportElement2(
17794
return null;
17895
}
17996

180-
/// Returns the [LibraryImportElement] that is referenced by [prefixNode] with a
181-
/// [PrefixElement], maybe `null`.
182-
LibraryImportElement? _getImportElementInfo(SimpleIdentifier prefixNode) {
183-
// prepare environment
184-
var parent = prefixNode.parent;
185-
var unit = prefixNode.thisOrAncestorOfType<CompilationUnit>();
186-
var libraryElement = unit?.declaredElement?.library;
187-
if (libraryElement == null) {
188-
return null;
189-
}
190-
// prepare used element
191-
Element? usedElement;
192-
if (parent is PrefixedIdentifier) {
193-
var prefixed = parent;
194-
if (prefixed.prefix == prefixNode) {
195-
usedElement = prefixed.staticElement;
196-
}
197-
} else if (parent is MethodInvocation) {
198-
var invocation = parent;
199-
if (invocation.target == prefixNode) {
200-
usedElement = invocation.methodName.staticElement;
201-
}
202-
}
203-
// we need used Element
204-
if (usedElement == null) {
205-
return null;
206-
}
207-
// find ImportElement
208-
var prefix = prefixNode.name;
209-
return _getImportElement(libraryElement, prefix, usedElement);
210-
}
211-
21297
/// Returns the [LibraryImport] that is referenced by [prefixNode] with a
213-
/// [PrefixElement], maybe `null`.
98+
/// [PrefixElement2], maybe `null`.
21499
LibraryImport? _getImportElementInfo2(SimpleIdentifier prefixNode) {
215100
// prepare environment
216101
var parent = prefixNode.parent;

0 commit comments

Comments
 (0)