Skip to content

Commit

Permalink
Version 3.7.0-82.0.dev
Browse files Browse the repository at this point in the history
Merge e5602b3 into dev
  • Loading branch information
Dart CI committed Oct 30, 2024
2 parents b319b2e + e5602b3 commit 4d91906
Show file tree
Hide file tree
Showing 6 changed files with 58 additions and 38 deletions.
13 changes: 10 additions & 3 deletions pkg/linter/analyzer_use_new_elements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ lib/src/rules/avoid_as.dart
lib/src/rules/avoid_bool_literals_in_conditional_expressions.dart
lib/src/rules/avoid_catches_without_on_clauses.dart
lib/src/rules/avoid_catching_errors.dart
lib/src/rules/avoid_classes_with_only_static_members.dart
lib/src/rules/avoid_double_and_int_checks.dart
lib/src/rules/avoid_dynamic_calls.dart
lib/src/rules/avoid_empty_else.dart
Expand All @@ -27,6 +28,7 @@ lib/src/rules/avoid_implementing_value_types.dart
lib/src/rules/avoid_js_rounded_ints.dart
lib/src/rules/avoid_multiple_declarations_per_line.dart
lib/src/rules/avoid_null_checks_in_equality_operators.dart
lib/src/rules/avoid_positional_boolean_parameters.dart
lib/src/rules/avoid_print.dart
lib/src/rules/avoid_private_typedef_functions.dart
lib/src/rules/avoid_redundant_argument_values.dart
Expand All @@ -45,6 +47,7 @@ lib/src/rules/avoid_unnecessary_containers.dart
lib/src/rules/avoid_unstable_final_fields.dart
lib/src/rules/avoid_unused_constructor_parameters.dart
lib/src/rules/avoid_web_libraries_in_flutter.dart
lib/src/rules/await_only_futures.dart
lib/src/rules/camel_case_extensions.dart
lib/src/rules/camel_case_types.dart
lib/src/rules/cancel_subscriptions.dart
Expand Down Expand Up @@ -109,6 +112,7 @@ lib/src/rules/omit_obvious_local_variable_types.dart
lib/src/rules/omit_obvious_property_types.dart
lib/src/rules/one_member_abstracts.dart
lib/src/rules/only_throw_errors.dart
lib/src/rules/overridden_fields.dart
lib/src/rules/package_api_docs.dart
lib/src/rules/package_prefixed_library_names.dart
lib/src/rules/parameter_assignments.dart
Expand All @@ -127,6 +131,7 @@ lib/src/rules/prefer_double_quotes.dart
lib/src/rules/prefer_equal_for_default_values.dart
lib/src/rules/prefer_expression_function_bodies.dart
lib/src/rules/prefer_final_in_for_each.dart
lib/src/rules/prefer_final_locals.dart
lib/src/rules/prefer_for_elements_to_map_fromIterable.dart
lib/src/rules/prefer_foreach.dart
lib/src/rules/prefer_function_declarations_over_variables.dart
Expand Down Expand Up @@ -182,6 +187,7 @@ lib/src/rules/unnecessary_library_directive.dart
lib/src/rules/unnecessary_library_name.dart
lib/src/rules/unnecessary_new.dart
lib/src/rules/unnecessary_null_aware_assignments.dart
lib/src/rules/unnecessary_null_aware_operator_on_extension_on_nullable.dart
lib/src/rules/unnecessary_null_checks.dart
lib/src/rules/unnecessary_null_in_if_null_operators.dart
lib/src/rules/unnecessary_nullable_for_final_variable_declarations.dart
Expand All @@ -192,6 +198,7 @@ lib/src/rules/unnecessary_string_escapes.dart
lib/src/rules/unnecessary_string_interpolations.dart
lib/src/rules/unnecessary_to_list_in_spreads.dart
lib/src/rules/unrelated_type_equality_checks.dart
lib/src/rules/unsafe_html.dart
lib/src/rules/use_colored_box.dart
lib/src/rules/use_decorated_box.dart
lib/src/rules/use_enums.dart
Expand All @@ -208,10 +215,12 @@ lib/src/rules/use_test_throws_matchers.dart
lib/src/rules/use_to_and_as_if_applicable.dart
lib/src/rules/use_truncating_division.dart
lib/src/rules/valid_regexps.dart
lib/src/test_utilities/analysis_error_info.dart
lib/src/test_utilities/analyzer_utils.dart
lib/src/test_utilities/annotation.dart
lib/src/test_utilities/formatter.dart
lib/src/test_utilities/lint_driver.dart
lib/src/test_utilities/linter_options.dart
lib/src/test_utilities/test_linter.dart
lib/src/test_utilities/test_resource_provider.dart
lib/src/util/ascii_utils.dart
Expand Down Expand Up @@ -329,6 +338,7 @@ test/rules/matching_super_parameters_test.dart
test/rules/missing_code_block_language_in_doc_comment_test.dart
test/rules/missing_whitespace_between_adjacent_strings_test.dart
test/rules/no_adjacent_strings_in_list_test.dart
test/rules/no_default_cases_test.dart
test/rules/no_duplicate_case_values_test.dart
test/rules/no_leading_underscores_for_library_prefixes_test.dart
test/rules/no_leading_underscores_for_local_identifiers_test.dart
Expand Down Expand Up @@ -474,15 +484,12 @@ test/validate_rule_description_format_test.dart
test/verify_checks_test.dart
test/verify_generated_files_test.dart
test/verify_reflective_test_suites_test.dart
test_data/rules/no_default_cases.dart
test_data/rules/overridden_fields.dart
test_data/rules/prefer_const_declarations.dart
test_data/rules/prefer_void_to_null.dart
test_data/rules/require_trailing_commas.dart
test_data/rules/type_init_formals.dart
test_data/rules/unawaited_futures.dart
test_data/rules/unmocked/unsafe_html.dart
test_data/rules/unnecessary_lambdas.dart
test_data/rules/unnecessary_parenthesis.dart
test_data/rules/void_checks.dart
tool/benchmark.dart
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,9 @@

import 'package:analyzer/dart/ast/ast.dart';
import 'package:analyzer/dart/ast/visitor.dart';
import 'package:analyzer/dart/element/element.dart';
import 'package:analyzer/dart/element/element2.dart';

import '../analyzer.dart';
import '../extensions.dart';

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

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

@override
void visitClassDeclaration(ClassDeclaration node) {
var element = node.declaredElement;
if (element == null || element.isAugmentation || element.isSealed) {
return;
}
var fragment = node.declaredFragment;
if (fragment == null || fragment.isAugmentation) return;
var element = fragment.element;
if (element.isSealed) return;

var interface = context.inheritanceManager.getInterface(element);
var map = interface.map;
var interface = context.inheritanceManager.getInterface2(element);
var map = interface.map2;
for (var member in map.values) {
var enclosingElement = member.enclosingElement3;
if (enclosingElement is ClassElement &&
var enclosingElement = member.enclosingElement2;
if (enclosingElement is ClassElement2 &&
!enclosingElement.isDartCoreObject) {
return;
}
}

var declaredElement = node.declaredElement;
var declaredElement = node.declaredFragment?.element;
if (declaredElement == null) return;

var constructors = declaredElement.allConstructors;
var constructors = declaredElement.constructors2;
if (constructors.isNotEmpty &&
constructors.any((c) => !c.isDefaultConstructor)) {
return;
}

var methods = declaredElement.allMethods;
var methods = declaredElement.methods2;
if (methods.isNotEmpty && !methods.every((m) => m.isStatic)) return;

if (methods.isNotEmpty ||
declaredElement.allFields.any((f) => !f.isConst)) {
if (methods.isNotEmpty || declaredElement.fields2.any((f) => !f.isConst)) {
rule.reportLint(node);
}
}
Expand Down
28 changes: 15 additions & 13 deletions pkg/linter/lib/src/rules/avoid_futureor_void.dart
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,11 @@

import 'package:analyzer/dart/ast/ast.dart';
import 'package:analyzer/dart/ast/visitor.dart';
import 'package:analyzer/dart/element/element.dart';
import 'package:analyzer/dart/element/element2.dart';
import 'package:analyzer/dart/element/type.dart';
// ignore: implementation_imports
import 'package:analyzer/src/dart/element/element.dart'
show TypeParameterElementImpl;
show TypeParameterElementImpl2;

import '../analyzer.dart';

Expand Down Expand Up @@ -137,15 +137,15 @@ class _Visitor extends SimpleAstVisitor<void> {
case NamedType():
var arguments = typeAnnotation.typeArguments?.arguments;
if (arguments != null) {
var element = typeAnnotation.element?.declaration;
List<TypeParameterElement>? typeParameterList;
var element = typeAnnotation.element2?.baseElement;
List<TypeParameterElement2>? typeParameterList;
if (element != null) {
switch (element) {
case ClassElement(:var typeParameters):
case MixinElement(:var typeParameters):
case EnumElement(:var typeParameters):
case TypeAliasElement(:var typeParameters):
typeParameterList = typeParameters;
case ClassElement2(:var typeParameters2):
case MixinElement2(:var typeParameters2):
case EnumElement2(:var typeParameters2):
case TypeAliasElement2(:var typeParameters2):
typeParameterList = typeParameters2;
default:
typeParameterList = null;
}
Expand All @@ -162,13 +162,15 @@ class _Visitor extends SimpleAstVisitor<void> {
var length = arguments.length;
for (var i = 0; i < length; ++i) {
var parameter = typeParameterList[i];
if (parameter is! TypeParameterElementImpl) continue;
if (parameter is! TypeParameterElementImpl2) continue;
var argument = arguments[i];
Variance parameterVariance;
if (parameter.isLegacyCovariant ||
parameter.variance.isCovariant) {
var parameterFragment = parameter.firstFragment;
if (parameterFragment == null) return;
if (parameterFragment.isLegacyCovariant ||
parameterFragment.variance.isCovariant) {
parameterVariance = variance;
} else if (parameter.variance.isContravariant) {
} else if (parameterFragment.variance.isContravariant) {
parameterVariance = variance.inverse;
} else {
parameterVariance = _inout;
Expand Down
14 changes: 8 additions & 6 deletions pkg/linter/lib/src/rules/avoid_init_to_null.dart
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

import 'package:analyzer/dart/ast/ast.dart';
import 'package:analyzer/dart/ast/visitor.dart';
import 'package:analyzer/dart/element/element.dart';
import 'package:analyzer/dart/element/element2.dart';
import 'package:analyzer/dart/element/type.dart';

import '../analyzer.dart';
Expand Down Expand Up @@ -41,12 +41,13 @@ class _Visitor extends SimpleAstVisitor<void> {

@override
void visitDefaultFormalParameter(DefaultFormalParameter node) {
var declaredElement = node.declaredElement;
var declaredElement = node.declaredFragment?.element;
if (declaredElement == null) return;

if (declaredElement is SuperFormalParameterElement) {
var superConstructorParameter = declaredElement.superConstructorParameter;
if (superConstructorParameter is! ParameterElement) return;
if (declaredElement is SuperFormalParameterElement2) {
var superConstructorParameter =
declaredElement.superConstructorParameter2;
if (superConstructorParameter is! FormalParameterElement) return;
var defaultValue = superConstructorParameter.defaultValueCode ?? 'null';
if (defaultValue != 'null') return;
}
Expand All @@ -58,7 +59,8 @@ class _Visitor extends SimpleAstVisitor<void> {

@override
void visitVariableDeclaration(VariableDeclaration node) {
var declaredElement = node.declaredElement;
var declaredElement =
node.declaredElement2 ?? node.declaredFragment?.element;
if (declaredElement != null &&
!node.isConst &&
!node.isFinal &&
Expand Down
11 changes: 11 additions & 0 deletions pkg/linter/test/rules/avoid_init_to_null_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,17 @@ class AvoidInitToNullSuperFormalsTest extends LintRuleTest {
@override
String get lintRule => LintNames.avoid_init_to_null;

test_forLoop() async {
await assertDiagnostics(r'''
void f() {
for (var i = null; i != null; i++) {
}
}
''', [
lint(22, 8),
]);
}

test_nullableStringInit() async {
await assertDiagnostics(r'''
class A {
Expand Down
2 changes: 1 addition & 1 deletion tools/VERSION
Original file line number Diff line number Diff line change
Expand Up @@ -27,5 +27,5 @@ CHANNEL dev
MAJOR 3
MINOR 7
PATCH 0
PRERELEASE 81
PRERELEASE 82
PRERELEASE_PATCH 0

0 comments on commit 4d91906

Please sign in to comment.