Skip to content

Commit 6272722

Browse files
committed
[Migrate] dead_code_verifier.dart
Change-Id: I20f2e143b6afed29c7ed222373371c15ffe46405 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/402141 Reviewed-by: Phil Quitslund <[email protected]>
1 parent 2a874be commit 6272722

File tree

2 files changed

+17
-27
lines changed

2 files changed

+17
-27
lines changed

pkg/analyzer/analyzer_use_new_elements.txt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,6 @@ lib/src/dart/resolver/yield_statement_resolver.dart
9292
lib/src/diagnostic/diagnostic_factory.dart
9393
lib/src/error/best_practices_verifier.dart
9494
lib/src/error/correct_override.dart
95-
lib/src/error/dead_code_verifier.dart
9695
lib/src/error/deprecated_member_use_verifier.dart
9796
lib/src/error/duplicate_definition_verifier.dart
9897
lib/src/error/imports_verifier.dart

pkg/analyzer/lib/src/error/dead_code_verifier.dart

Lines changed: 17 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ import 'package:analyzer/dart/analysis/features.dart';
66
import 'package:analyzer/dart/ast/ast.dart';
77
import 'package:analyzer/dart/ast/token.dart';
88
import 'package:analyzer/dart/ast/visitor.dart';
9-
import 'package:analyzer/dart/element/element.dart';
109
import 'package:analyzer/dart/element/element2.dart';
1110
import 'package:analyzer/dart/element/type.dart';
1211
import 'package:analyzer/error/error.dart';
@@ -16,7 +15,6 @@ import 'package:analyzer/src/dart/element/type_system.dart';
1615
import 'package:analyzer/src/dart/resolver/flow_analysis_visitor.dart';
1716
import 'package:analyzer/src/dart/resolver/scope.dart';
1817
import 'package:analyzer/src/error/codes.dart';
19-
import 'package:analyzer/src/utilities/extensions/element.dart';
2018

2119
typedef _CatchClausesVerifierReporter = void Function(
2220
CatchClause first,
@@ -37,7 +35,7 @@ class DeadCodeVerifier extends RecursiveAstVisitor<void> {
3735
/// Whether the `wildcard_variables` feature is enabled.
3836
final bool _wildCardVariablesEnabled;
3937

40-
DeadCodeVerifier(this._errorReporter, LibraryElement library)
38+
DeadCodeVerifier(this._errorReporter, LibraryElement2 library)
4139
: _wildCardVariablesEnabled =
4240
library.featureSet.isEnabled(Feature.wildcard_variables);
4341

@@ -53,10 +51,10 @@ class DeadCodeVerifier extends RecursiveAstVisitor<void> {
5351

5452
@override
5553
void visitExportDirective(ExportDirective node) {
56-
var exportElement = node.element;
57-
if (exportElement != null) {
54+
var libraryExport = node.libraryExport;
55+
if (libraryExport != null) {
5856
// The element is null when the URI is invalid.
59-
LibraryElement? library = exportElement.exportedLibrary;
57+
LibraryElement2? library = libraryExport.exportedLibrary2;
6058
if (library != null && !library.isSynthetic) {
6159
for (Combinator combinator in node.combinators) {
6260
_checkCombinator(library, combinator);
@@ -68,24 +66,23 @@ class DeadCodeVerifier extends RecursiveAstVisitor<void> {
6866

6967
@override
7068
void visitFunctionDeclaration(FunctionDeclaration node) {
71-
var element = node.declaredElement;
69+
var element = node.declaredFragment!.element;
7270
// TODO(pq): ask the FunctionElement once implemented
7371
if (_wildCardVariablesEnabled &&
74-
element is FunctionElement &&
75-
element.isLocal &&
76-
element.name == '_') {
72+
element is LocalFunctionElement &&
73+
element.name3 == '_') {
7774
_errorReporter.atNode(node, WarningCode.DEAD_CODE);
7875
}
7976
super.visitFunctionDeclaration(node);
8077
}
8178

8279
@override
8380
void visitImportDirective(ImportDirective node) {
84-
var importElement = node.element;
85-
if (importElement != null) {
81+
var libraryImport = node.libraryImport;
82+
if (libraryImport != null) {
8683
// The element is null when the URI is invalid, but not when the URI is
8784
// valid but refers to a nonexistent file.
88-
LibraryElement? library = importElement.importedLibrary;
85+
LibraryElement2? library = libraryImport.importedLibrary2;
8986
if (library != null && !library.isSynthetic) {
9087
for (Combinator combinator in node.combinators) {
9188
_checkCombinator(library, combinator);
@@ -117,11 +114,11 @@ class DeadCodeVerifier extends RecursiveAstVisitor<void> {
117114
void visitVariableDeclaration(VariableDeclaration node) {
118115
var initializer = node.initializer;
119116
if (initializer != null && node.isLate) {
120-
var element = node.declaredElement;
117+
var element = node.declaredFragment!.element;
121118
// TODO(pq): ask the LocalVariableElement once implemented
122119
if (_wildCardVariablesEnabled &&
123-
element is LocalVariableElement &&
124-
element.name == '_') {
120+
element is LocalVariableElement2 &&
121+
element.name3 == '_') {
125122
_errorReporter.atNode(initializer,
126123
WarningCode.DEAD_CODE_LATE_WILDCARD_VARIABLE_INITIALIZER);
127124
}
@@ -132,9 +129,9 @@ class DeadCodeVerifier extends RecursiveAstVisitor<void> {
132129

133130
/// Resolve the names in the given [combinator] in the scope of the given
134131
/// [library].
135-
void _checkCombinator(LibraryElement library, Combinator combinator) {
132+
void _checkCombinator(LibraryElement2 library, Combinator combinator) {
136133
Namespace namespace =
137-
NamespaceBuilder().createExportNamespaceForLibrary(library.asElement2);
134+
NamespaceBuilder().createExportNamespaceForLibrary(library);
138135
NodeList<SimpleIdentifier> names;
139136
ErrorCode warningCode;
140137
if (combinator is HideCombinator) {
@@ -146,8 +143,8 @@ class DeadCodeVerifier extends RecursiveAstVisitor<void> {
146143
}
147144
for (SimpleIdentifier name in names) {
148145
String nameStr = name.name;
149-
Element? element = namespace.get(nameStr);
150-
element ??= namespace.get("$nameStr=");
146+
Element2? element = namespace.get2(nameStr);
147+
element ??= namespace.get2("$nameStr=");
151148
if (element == null) {
152149
_errorReporter.atNode(
153150
name,
@@ -599,12 +596,6 @@ class _LabelTracker {
599596
}
600597
}
601598

602-
extension on FunctionElement {
603-
bool get isLocal =>
604-
enclosingElement3 is FunctionElement ||
605-
enclosingElement3 is MethodElement;
606-
}
607-
608599
extension DoStatementExtension on DoStatement {
609600
bool get hasBreakStatement {
610601
var visitor = _BreakDoStatementVisitor(this);

0 commit comments

Comments
 (0)