Skip to content

Commit 702ccbc

Browse files
pqCommit Queue
authored andcommitted
[element model] migrate avoid_classes_with_only_static_members
Bug: https://github.com/dart-lang/linter/issues/5099 Change-Id: I20f3cf3febb5a89e6c39e4b6400cde4ccf28e982 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/392468 Commit-Queue: Brian Wilkerson <[email protected]> Auto-Submit: Phil Quitslund <[email protected]> Reviewed-by: Brian Wilkerson <[email protected]>
1 parent 50f367b commit 702ccbc

File tree

2 files changed

+23
-18
lines changed

2 files changed

+23
-18
lines changed

pkg/linter/analyzer_use_new_elements.txt

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ lib/src/rules/avoid_as.dart
1616
lib/src/rules/avoid_bool_literals_in_conditional_expressions.dart
1717
lib/src/rules/avoid_catches_without_on_clauses.dart
1818
lib/src/rules/avoid_catching_errors.dart
19+
lib/src/rules/avoid_classes_with_only_static_members.dart
1920
lib/src/rules/avoid_double_and_int_checks.dart
2021
lib/src/rules/avoid_dynamic_calls.dart
2122
lib/src/rules/avoid_empty_else.dart
@@ -27,6 +28,7 @@ lib/src/rules/avoid_implementing_value_types.dart
2728
lib/src/rules/avoid_js_rounded_ints.dart
2829
lib/src/rules/avoid_multiple_declarations_per_line.dart
2930
lib/src/rules/avoid_null_checks_in_equality_operators.dart
31+
lib/src/rules/avoid_positional_boolean_parameters.dart
3032
lib/src/rules/avoid_print.dart
3133
lib/src/rules/avoid_private_typedef_functions.dart
3234
lib/src/rules/avoid_redundant_argument_values.dart
@@ -45,6 +47,7 @@ lib/src/rules/avoid_unnecessary_containers.dart
4547
lib/src/rules/avoid_unstable_final_fields.dart
4648
lib/src/rules/avoid_unused_constructor_parameters.dart
4749
lib/src/rules/avoid_web_libraries_in_flutter.dart
50+
lib/src/rules/await_only_futures.dart
4851
lib/src/rules/camel_case_extensions.dart
4952
lib/src/rules/camel_case_types.dart
5053
lib/src/rules/cancel_subscriptions.dart
@@ -109,6 +112,7 @@ lib/src/rules/omit_obvious_local_variable_types.dart
109112
lib/src/rules/omit_obvious_property_types.dart
110113
lib/src/rules/one_member_abstracts.dart
111114
lib/src/rules/only_throw_errors.dart
115+
lib/src/rules/overridden_fields.dart
112116
lib/src/rules/package_api_docs.dart
113117
lib/src/rules/package_prefixed_library_names.dart
114118
lib/src/rules/parameter_assignments.dart
@@ -127,6 +131,7 @@ lib/src/rules/prefer_double_quotes.dart
127131
lib/src/rules/prefer_equal_for_default_values.dart
128132
lib/src/rules/prefer_expression_function_bodies.dart
129133
lib/src/rules/prefer_final_in_for_each.dart
134+
lib/src/rules/prefer_final_locals.dart
130135
lib/src/rules/prefer_for_elements_to_map_fromIterable.dart
131136
lib/src/rules/prefer_foreach.dart
132137
lib/src/rules/prefer_function_declarations_over_variables.dart
@@ -182,6 +187,7 @@ lib/src/rules/unnecessary_library_directive.dart
182187
lib/src/rules/unnecessary_library_name.dart
183188
lib/src/rules/unnecessary_new.dart
184189
lib/src/rules/unnecessary_null_aware_assignments.dart
190+
lib/src/rules/unnecessary_null_aware_operator_on_extension_on_nullable.dart
185191
lib/src/rules/unnecessary_null_checks.dart
186192
lib/src/rules/unnecessary_null_in_if_null_operators.dart
187193
lib/src/rules/unnecessary_nullable_for_final_variable_declarations.dart
@@ -192,6 +198,7 @@ lib/src/rules/unnecessary_string_escapes.dart
192198
lib/src/rules/unnecessary_string_interpolations.dart
193199
lib/src/rules/unnecessary_to_list_in_spreads.dart
194200
lib/src/rules/unrelated_type_equality_checks.dart
201+
lib/src/rules/unsafe_html.dart
195202
lib/src/rules/use_colored_box.dart
196203
lib/src/rules/use_decorated_box.dart
197204
lib/src/rules/use_enums.dart
@@ -208,10 +215,12 @@ lib/src/rules/use_test_throws_matchers.dart
208215
lib/src/rules/use_to_and_as_if_applicable.dart
209216
lib/src/rules/use_truncating_division.dart
210217
lib/src/rules/valid_regexps.dart
218+
lib/src/test_utilities/analysis_error_info.dart
211219
lib/src/test_utilities/analyzer_utils.dart
212220
lib/src/test_utilities/annotation.dart
213221
lib/src/test_utilities/formatter.dart
214222
lib/src/test_utilities/lint_driver.dart
223+
lib/src/test_utilities/linter_options.dart
215224
lib/src/test_utilities/test_linter.dart
216225
lib/src/test_utilities/test_resource_provider.dart
217226
lib/src/util/ascii_utils.dart
@@ -329,6 +338,7 @@ test/rules/matching_super_parameters_test.dart
329338
test/rules/missing_code_block_language_in_doc_comment_test.dart
330339
test/rules/missing_whitespace_between_adjacent_strings_test.dart
331340
test/rules/no_adjacent_strings_in_list_test.dart
341+
test/rules/no_default_cases_test.dart
332342
test/rules/no_duplicate_case_values_test.dart
333343
test/rules/no_leading_underscores_for_library_prefixes_test.dart
334344
test/rules/no_leading_underscores_for_local_identifiers_test.dart
@@ -474,15 +484,12 @@ test/validate_rule_description_format_test.dart
474484
test/verify_checks_test.dart
475485
test/verify_generated_files_test.dart
476486
test/verify_reflective_test_suites_test.dart
477-
test_data/rules/no_default_cases.dart
478-
test_data/rules/overridden_fields.dart
479487
test_data/rules/prefer_const_declarations.dart
480488
test_data/rules/prefer_void_to_null.dart
481489
test_data/rules/require_trailing_commas.dart
482490
test_data/rules/type_init_formals.dart
483491
test_data/rules/unawaited_futures.dart
484492
test_data/rules/unmocked/unsafe_html.dart
485-
test_data/rules/unnecessary_lambdas.dart
486493
test_data/rules/unnecessary_parenthesis.dart
487494
test_data/rules/void_checks.dart
488495
tool/benchmark.dart

pkg/linter/lib/src/rules/avoid_classes_with_only_static_members.dart

Lines changed: 13 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,9 @@
44

55
import 'package:analyzer/dart/ast/ast.dart';
66
import 'package:analyzer/dart/ast/visitor.dart';
7-
import 'package:analyzer/dart/element/element.dart';
7+
import 'package:analyzer/dart/element/element2.dart';
88

99
import '../analyzer.dart';
10-
import '../extensions.dart';
1110

1211
const _desc = r'Avoid defining a class that contains only static members.';
1312

@@ -38,35 +37,34 @@ class _Visitor extends SimpleAstVisitor<void> {
3837

3938
@override
4039
void visitClassDeclaration(ClassDeclaration node) {
41-
var element = node.declaredElement;
42-
if (element == null || element.isAugmentation || element.isSealed) {
43-
return;
44-
}
40+
var fragment = node.declaredFragment;
41+
if (fragment == null || fragment.isAugmentation) return;
42+
var element = fragment.element;
43+
if (element.isSealed) return;
4544

46-
var interface = context.inheritanceManager.getInterface(element);
47-
var map = interface.map;
45+
var interface = context.inheritanceManager.getInterface2(element);
46+
var map = interface.map2;
4847
for (var member in map.values) {
49-
var enclosingElement = member.enclosingElement3;
50-
if (enclosingElement is ClassElement &&
48+
var enclosingElement = member.enclosingElement2;
49+
if (enclosingElement is ClassElement2 &&
5150
!enclosingElement.isDartCoreObject) {
5251
return;
5352
}
5453
}
5554

56-
var declaredElement = node.declaredElement;
55+
var declaredElement = node.declaredFragment?.element;
5756
if (declaredElement == null) return;
5857

59-
var constructors = declaredElement.allConstructors;
58+
var constructors = declaredElement.constructors2;
6059
if (constructors.isNotEmpty &&
6160
constructors.any((c) => !c.isDefaultConstructor)) {
6261
return;
6362
}
6463

65-
var methods = declaredElement.allMethods;
64+
var methods = declaredElement.methods2;
6665
if (methods.isNotEmpty && !methods.every((m) => m.isStatic)) return;
6766

68-
if (methods.isNotEmpty ||
69-
declaredElement.allFields.any((f) => !f.isConst)) {
67+
if (methods.isNotEmpty || declaredElement.fields2.any((f) => !f.isConst)) {
7068
rule.reportLint(node);
7169
}
7270
}

0 commit comments

Comments
 (0)