| OLD | NEW |
| 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 library analyzer.src.dart.resolver.scope; | 5 library analyzer.src.dart.resolver.scope; |
| 6 | 6 |
| 7 import 'dart:collection'; | 7 import 'dart:collection'; |
| 8 | 8 |
| 9 import 'package:analyzer/dart/ast/ast.dart'; | 9 import 'package:analyzer/dart/ast/ast.dart'; |
| 10 import 'package:analyzer/dart/element/element.dart'; | 10 import 'package:analyzer/dart/element/element.dart'; |
| (...skipping 434 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 445 ImportElement importElement) => | 445 ImportElement importElement) => |
| 446 importElement.combinators.where((NamespaceCombinator combinator) => | 446 importElement.combinators.where((NamespaceCombinator combinator) => |
| 447 combinator is ShowElementCombinator); | 447 combinator is ShowElementCombinator); |
| 448 if (node is PrefixedIdentifier) { | 448 if (node is PrefixedIdentifier) { |
| 449 String prefix = node.prefix.name; | 449 String prefix = node.prefix.name; |
| 450 String name = node.identifier.name; | 450 String name = node.identifier.name; |
| 451 List<ImportElement> imports = _definingLibrary.imports; | 451 List<ImportElement> imports = _definingLibrary.imports; |
| 452 int count = imports.length; | 452 int count = imports.length; |
| 453 for (int i = 0; i < count; i++) { | 453 for (int i = 0; i < count; i++) { |
| 454 ImportElement importElement = imports[i]; | 454 ImportElement importElement = imports[i]; |
| 455 if (importElement.prefix?.name == prefix && !importElement.uriExists) { | 455 if (importElement.prefix?.name == prefix && |
| 456 importElement.importedLibrary?.isSynthetic != false) { |
| 456 Iterable<NamespaceCombinator> showCombinators = | 457 Iterable<NamespaceCombinator> showCombinators = |
| 457 getShowCombinators(importElement); | 458 getShowCombinators(importElement); |
| 458 if (showCombinators.isEmpty) { | 459 if (showCombinators.isEmpty) { |
| 459 return true; | 460 return true; |
| 460 } | 461 } |
| 461 for (ShowElementCombinator combinator in showCombinators) { | 462 for (ShowElementCombinator combinator in showCombinators) { |
| 462 if (combinator.shownNames.contains(name)) { | 463 if (combinator.shownNames.contains(name)) { |
| 463 return true; | 464 return true; |
| 464 } | 465 } |
| 465 } | 466 } |
| 466 } | 467 } |
| 467 } | 468 } |
| 468 } else if (node is SimpleIdentifier) { | 469 } else if (node is SimpleIdentifier) { |
| 469 String name = node.name; | 470 String name = node.name; |
| 470 List<ImportElement> imports = _definingLibrary.imports; | 471 List<ImportElement> imports = _definingLibrary.imports; |
| 471 int count = imports.length; | 472 int count = imports.length; |
| 472 for (int i = 0; i < count; i++) { | 473 for (int i = 0; i < count; i++) { |
| 473 ImportElement importElement = imports[i]; | 474 ImportElement importElement = imports[i]; |
| 474 if (importElement.prefix == null && !importElement.uriExists) { | 475 if (importElement.prefix == null && |
| 476 importElement.importedLibrary?.isSynthetic != false) { |
| 475 for (ShowElementCombinator combinator | 477 for (ShowElementCombinator combinator |
| 476 in getShowCombinators(importElement)) { | 478 in getShowCombinators(importElement)) { |
| 477 if (combinator.shownNames.contains(name)) { | 479 if (combinator.shownNames.contains(name)) { |
| 478 return true; | 480 return true; |
| 479 } | 481 } |
| 480 } | 482 } |
| 481 } | 483 } |
| 482 } | 484 } |
| 483 } | 485 } |
| 484 return false; | 486 return false; |
| (...skipping 783 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1268 | 1270 |
| 1269 /** | 1271 /** |
| 1270 * Define the type parameters declared by the [classElement]. | 1272 * Define the type parameters declared by the [classElement]. |
| 1271 */ | 1273 */ |
| 1272 void _defineTypeParameters(ClassElement classElement) { | 1274 void _defineTypeParameters(ClassElement classElement) { |
| 1273 for (TypeParameterElement typeParameter in classElement.typeParameters) { | 1275 for (TypeParameterElement typeParameter in classElement.typeParameters) { |
| 1274 define(typeParameter); | 1276 define(typeParameter); |
| 1275 } | 1277 } |
| 1276 } | 1278 } |
| 1277 } | 1279 } |
| OLD | NEW |