Fix TODO in LibraryScope.shouldIgnoreUndefined
Change-Id: I76a5cb69980c11031f58fa8c67d21f3ee2f5ca53
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/179582
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
diff --git a/pkg/analyzer/lib/src/dart/element/scope.dart b/pkg/analyzer/lib/src/dart/element/scope.dart
index 85085f8..2622bd1 100644
--- a/pkg/analyzer/lib/src/dart/element/scope.dart
+++ b/pkg/analyzer/lib/src/dart/element/scope.dart
@@ -115,46 +115,27 @@
@required String prefix,
@required String name,
}) {
- Iterable<NamespaceCombinator> getShowCombinators(
- ImportElement importElement) {
- return importElement.combinators.whereType<ShowElementCombinator>();
+ for (var importElement in _element.imports) {
+ if (importElement.prefix?.name == prefix &&
+ importElement.importedLibrary?.isSynthetic != false) {
+ var showCombinators = importElement.combinators
+ .whereType<ShowElementCombinator>()
+ .toList();
+ if (prefix != null && showCombinators.isEmpty) {
+ return true;
+ }
+ for (var combinator in showCombinators) {
+ if (combinator.shownNames.contains(name)) {
+ return true;
+ }
+ }
+ }
}
- if (prefix != null) {
- for (var importElement in _element.imports) {
- if (importElement.prefix?.name == prefix &&
- importElement.importedLibrary?.isSynthetic != false) {
- var showCombinators = getShowCombinators(importElement);
- if (showCombinators.isEmpty) {
- return true;
- }
- for (ShowElementCombinator combinator in showCombinators) {
- if (combinator.shownNames.contains(name)) {
- return true;
- }
- }
- }
- }
- } else {
- // TODO(scheglov) merge for(s).
- for (var importElement in _element.imports) {
- if (importElement.prefix == null &&
- importElement.importedLibrary?.isSynthetic != false) {
- for (ShowElementCombinator combinator
- in getShowCombinators(importElement)) {
- if (combinator.shownNames.contains(name)) {
- return true;
- }
- }
- }
- }
-
- if (name.startsWith(r'_$')) {
- for (var partElement in _element.parts) {
- if (partElement.isSynthetic &&
- isGeneratedSource(partElement.source)) {
- return true;
- }
+ if (prefix == null && name.startsWith(r'_$')) {
+ for (var partElement in _element.parts) {
+ if (partElement.isSynthetic && isGeneratedSource(partElement.source)) {
+ return true;
}
}
}