Version 3.7.0-23.0.dev
Merge 4a80b6d88bd87bcbbc8e84942f12a2ea3a71bdd4 into dev
diff --git a/DEPS b/DEPS
index 6040b9a..1c696d6 100644
--- a/DEPS
+++ b/DEPS
@@ -146,6 +146,7 @@
"dart_style_rev": "5d35f4d829ffb8532d345d95d3e9504ae6cd839e", # disable tools/rev_sdk_deps.dart
"dartdoc_rev": "80c6f18f34b387d4b9ce89ddd2e3049093335f9d",
"ecosystem_rev": "2d58550f9e3fd8ecbc3b2e4444095fcb204a66c6",
+ "file_rev": "6842feaef1c4e06239bd30f8d3ef722838b1c97e",
"fixnum_rev": "83293b8ed86ccd574a94fcf4a2da43f31c1b43e0",
"flute_rev": "a531c96a8b43d015c6bfbbfe3ab54867b0763b8b",
"glob_rev": "00a9c82d31c01ae88ec9ae4021d842e9b832aa52",
@@ -161,7 +162,7 @@
"markdown_rev": "d53feae0760a4f0aae5ffdfb12d8e6acccf14b40",
"matcher_rev": "31f13583630e093731c8cf2b843c14196d748c5c",
"material_color_utilities_rev": "799b6ba2f3f1c28c67cc7e0b4f18e0c7d7f3c03e",
- "mockito_rev": "3de67548e833a8eef66a2a49070b197c2c08b3ab",
+ "mockito_rev": "57d484f9b8e7f6a504966a901174358a42fa932a",
"native_rev": "659511886501bcce638c3966590df04984909ef0", # dart-native-interop-team@ is rolling breaking changes manually while the assets features are in experimental.
"package_config_rev": "bafff8e90be25e1985f7e3ee40ea1d22571a93e6",
"path_rev": "e969f42ed112dd702a9453beb9df6c12ae2d3805",
@@ -175,7 +176,7 @@
"sse_rev": "af2c5c572a8da6d2f7551b80d75121f2a38a4c79",
"stack_trace_rev": "115bcd9591d251dab7a5ad518655c2124a1cc525",
"stream_channel_rev": "f4407168b275fcde9187baefd7dbce76d0992825",
- "string_scanner_rev": "2139417ffcd0392bde3ba9bc83ee13eaa5fbed01",
+ "string_scanner_rev": "084b201c54b168aced178fff41fce71e3869ae42",
"sync_http_rev": "91c0dd5ef9a008f0277aadcfd83036f82e572d09",
"tar_rev": "5a1ea943e70cdf3fa5e1102cdbb9418bd9b4b81a",
"term_glyph_rev": "19d8c08a4e81122639129c62049896021910c932",
@@ -183,7 +184,7 @@
"test_descriptor_rev": "a3db1efe3dc725dcae9ee61647d3bfc19b3231ac",
"test_process_rev": "52ee3f5ab70ed965bb7122c1d499081fbccd0bde",
"test_reflective_loader_rev": "598af2f503955020af0eaa82558d574a03934078",
- "tools_rev": "3f7a46606496f826c2f60586ab71c2b7a9bfbf15",
+ "tools_rev": "f882de9ba86712003728d4663e1b73a620d352b1",
"typed_data_rev": "6abfafdcf661cd8a814619d7e2a3e99edb3a3862",
"vector_math_rev": "2cfbe2c115a57b368ccbc3c89ebd38a06764d3d1",
"watcher_rev": "3b850778ad0b62db3aa2cfe48832870c2461db30",
@@ -421,6 +422,9 @@
"url": Var("dart_git") + "flute.git" + "@" + Var("flute_rev"),
"condition": "checkout_flute",
},
+ Var("dart_root") + "/third_party/pkg/file":
+ Var("dart_git") + "external/github.com/google/file.dart"
+ + "@" + Var("file_rev"),
Var("dart_root") + "/third_party/pkg/glob":
Var("dart_git") + "glob.git" + "@" + Var("glob_rev"),
Var("dart_root") + "/third_party/pkg/html":
diff --git a/benchmarks/analysis_options.yaml b/benchmarks/analysis_options.yaml
index 2e8f09b..16ed5a3 100644
--- a/benchmarks/analysis_options.yaml
+++ b/benchmarks/analysis_options.yaml
@@ -49,7 +49,6 @@
#- omit_local_variable_types
#- only_throw_errors
- overridden_fields
- - package_api_docs
- package_names
- package_prefixed_library_names
- prefer_adjacent_string_concatenation
diff --git a/pkg/_fe_analyzer_shared/analysis_options.yaml b/pkg/_fe_analyzer_shared/analysis_options.yaml
index 3fe6296..2a7e821 100644
--- a/pkg/_fe_analyzer_shared/analysis_options.yaml
+++ b/pkg/_fe_analyzer_shared/analysis_options.yaml
@@ -15,7 +15,6 @@
- avoid_empty_else
- empty_statements
- valid_regexps
- - package_api_docs
- lines_longer_than_80_chars
# - always_specify_types
- use_super_parameters
diff --git a/pkg/analysis_server/lib/src/services/correction/dart/remove_comparison.dart b/pkg/analysis_server/lib/src/services/correction/dart/remove_comparison.dart
index a6a7e7d..e0cc673 100644
--- a/pkg/analysis_server/lib/src/services/correction/dart/remove_comparison.dart
+++ b/pkg/analysis_server/lib/src/services/correction/dart/remove_comparison.dart
@@ -12,7 +12,6 @@
import 'package:analyzer_plugin/utilities/change_builder/change_builder_core.dart';
import 'package:analyzer_plugin/utilities/fixes/fixes.dart';
import 'package:analyzer_plugin/utilities/range_factory.dart';
-import 'package:linter/src/lint_codes.dart';
class RemoveComparison extends ResolvedCorrectionProducer {
@override
@@ -51,8 +50,7 @@
return errorCode == WarningCode.UNNECESSARY_NAN_COMPARISON_TRUE ||
errorCode == WarningCode.UNNECESSARY_NULL_COMPARISON_ALWAYS_NULL_TRUE ||
errorCode == WarningCode.UNNECESSARY_NULL_COMPARISON_NEVER_NULL_TRUE ||
- errorCode == WarningCode.UNNECESSARY_TYPE_CHECK_TRUE ||
- errorCode == LinterLintCode.avoid_null_checks_in_equality_operators;
+ errorCode == WarningCode.UNNECESSARY_TYPE_CHECK_TRUE;
}
@override
diff --git a/pkg/analysis_server/lib/src/services/correction/error_fix_status.yaml b/pkg/analysis_server/lib/src/services/correction/error_fix_status.yaml
index 1fcdf41..ce059ef 100644
--- a/pkg/analysis_server/lib/src/services/correction/error_fix_status.yaml
+++ b/pkg/analysis_server/lib/src/services/correction/error_fix_status.yaml
@@ -1923,8 +1923,6 @@
status: noFix
LintCode.avoid_multiple_declarations_per_line:
status: hasFix
-LintCode.avoid_null_checks_in_equality_operators:
- status: hasFix
LintCode.avoid_positional_boolean_parameters:
status: noFix
notes: |-
diff --git a/pkg/analysis_server/lib/src/services/correction/fix_internal.dart b/pkg/analysis_server/lib/src/services/correction/fix_internal.dart
index 60b1a65..73c1701 100644
--- a/pkg/analysis_server/lib/src/services/correction/fix_internal.dart
+++ b/pkg/analysis_server/lib/src/services/correction/fix_internal.dart
@@ -313,9 +313,6 @@
LinterLintCode.avoid_multiple_declarations_per_line: [
SplitMultipleDeclarations.new,
],
- LinterLintCode.avoid_null_checks_in_equality_operators: [
- RemoveComparison.new,
- ],
LinterLintCode.avoid_print: [
MakeConditionalOnDebugMode.new,
RemovePrint.new,
diff --git a/pkg/analysis_server/test/src/services/correction/fix/remove_comparison_test.dart b/pkg/analysis_server/test/src/services/correction/fix/remove_comparison_test.dart
index 4efed80..56f09a9 100644
--- a/pkg/analysis_server/test/src/services/correction/fix/remove_comparison_test.dart
+++ b/pkg/analysis_server/test/src/services/correction/fix/remove_comparison_test.dart
@@ -12,10 +12,10 @@
void main() {
defineReflectiveSuite(() {
defineReflectiveTests(RemoveComparisonTest);
- defineReflectiveTests(RemoveTypeCheckTest);
- defineReflectiveTests(RemoveTypeCheckBulkTest);
- defineReflectiveTests(RemoveNullCheckComparisonTest);
defineReflectiveTests(RemoveNullCheckComparisonBulkTest);
+ defineReflectiveTests(RemoveNullCheckComparisonTest);
+ defineReflectiveTests(RemoveTypeCheckBulkTest);
+ defineReflectiveTests(RemoveTypeCheckTest);
});
}
@@ -610,7 +610,7 @@
final String name = '';
@override
- operator ==(Object? other) =>
+ operator ==(Object other) =>
other != null &&
other is Person &&
name == other.name;
@@ -620,7 +620,7 @@
final String name = '';
@override
- operator ==(Object? other) =>
+ operator ==(Object other) =>
other != null &&
other is Person &&
name == other.name;
@@ -631,7 +631,7 @@
final String name = '';
@override
- operator ==(Object? other) =>
+ operator ==(Object other) =>
other is Person &&
name == other.name;
}
@@ -640,7 +640,7 @@
final String name = '';
@override
- operator ==(Object? other) =>
+ operator ==(Object other) =>
other is Person &&
name == other.name;
}
diff --git a/pkg/dev_compiler/test/hot_reload_suite.dart b/pkg/dev_compiler/test/hot_reload_suite.dart
index 05eba1e..e66996c 100644
--- a/pkg/dev_compiler/test/hot_reload_suite.dart
+++ b/pkg/dev_compiler/test/hot_reload_suite.dart
@@ -13,6 +13,7 @@
import 'package:dev_compiler/dev_compiler.dart' as ddc_names
show libraryUriToJsIdentifier;
import 'package:front_end/src/api_unstable/ddc.dart' as fe;
+import 'package:path/path.dart' as p;
import 'package:reload_test/ddc_helpers.dart' as ddc_helpers;
import 'package:reload_test/frontend_server_controller.dart';
import 'package:reload_test/hot_reload_memory_filesystem.dart';
@@ -232,9 +233,10 @@
// Report results for this test's sources' diff validations.
void reportDiffOutcome(Uri fileUri, String testOutput, bool testPassed) {
final filePath = fileUri.path;
+ final relativeFilePath = p.relative(filePath, from: allTestsUri.path);
var outcome = TestResultOutcome(
configuration: argResults['named-configuration'] as String,
- testName: '$filePath-diff',
+ testName: '$relativeFilePath-diff',
testOutput: testOutput,
);
outcome.elapsedTime = stopwatch.elapsed;
diff --git a/pkg/front_end/analysis_options.yaml b/pkg/front_end/analysis_options.yaml
index ffe3431..1f73667 100644
--- a/pkg/front_end/analysis_options.yaml
+++ b/pkg/front_end/analysis_options.yaml
@@ -19,7 +19,6 @@
- avoid_empty_else
- empty_statements
- valid_regexps
- - package_api_docs
- lines_longer_than_80_chars
- unrelated_type_equality_checks
- annotate_overrides
diff --git a/pkg/frontend_server/analysis_options.yaml b/pkg/frontend_server/analysis_options.yaml
index fd71b86..9ff1bcb 100644
--- a/pkg/frontend_server/analysis_options.yaml
+++ b/pkg/frontend_server/analysis_options.yaml
@@ -13,7 +13,6 @@
- avoid_empty_else
- empty_statements
- valid_regexps
- - package_api_docs
- lines_longer_than_80_chars
- unrelated_type_equality_checks
- annotate_overrides
diff --git a/pkg/kernel/analysis_options.yaml b/pkg/kernel/analysis_options.yaml
index e1e580d9..5e69d0b 100644
--- a/pkg/kernel/analysis_options.yaml
+++ b/pkg/kernel/analysis_options.yaml
@@ -14,7 +14,6 @@
- avoid_empty_else
- empty_statements
- valid_regexps
- - package_api_docs
- lines_longer_than_80_chars
- unrelated_type_equality_checks
- annotate_overrides
diff --git a/pkg/linter/analysis_options.yaml b/pkg/linter/analysis_options.yaml
index 88b2aa6..14263f4 100644
--- a/pkg/linter/analysis_options.yaml
+++ b/pkg/linter/analysis_options.yaml
@@ -38,7 +38,6 @@
- no_adjacent_strings_in_list
- noop_primitive_operations
- only_throw_errors
- - package_api_docs
- parameter_assignments
- prefer_asserts_in_initializer_lists
- prefer_const_constructors_in_immutables
diff --git a/pkg/linter/analyzer_use_new_elements.txt b/pkg/linter/analyzer_use_new_elements.txt
index f09005c..e3e70b1 100644
--- a/pkg/linter/analyzer_use_new_elements.txt
+++ b/pkg/linter/analyzer_use_new_elements.txt
@@ -31,6 +31,7 @@
lib/src/rules/avoid_return_types_on_setters.dart
lib/src/rules/avoid_returning_null.dart
lib/src/rules/avoid_returning_null_for_future.dart
+lib/src/rules/avoid_returning_this.dart
lib/src/rules/avoid_shadowing_type_parameters.dart
lib/src/rules/avoid_single_cascade_in_expression_statements.dart
lib/src/rules/avoid_slow_async_io.dart
@@ -346,6 +347,8 @@
test/rules/prefer_int_literals_test.dart
test/rules/prefer_interpolation_to_compose_strings_test.dart
test/rules/prefer_is_empty_test.dart
+test/rules/prefer_is_not_empty_test.dart
+test/rules/prefer_is_not_operator_test.dart
test/rules/prefer_iterable_whereType_test.dart
test/rules/prefer_mixin_test.dart
test/rules/prefer_null_aware_method_calls_test.dart
@@ -442,9 +445,6 @@
test_data/rules/no_default_cases.dart
test_data/rules/overridden_fields.dart
test_data/rules/prefer_const_declarations.dart
-test_data/rules/prefer_final_fields.dart
-test_data/rules/prefer_is_not_empty.dart
-test_data/rules/prefer_is_not_operator.dart
test_data/rules/prefer_void_to_null.dart
test_data/rules/require_trailing_commas.dart
test_data/rules/type_init_formals.dart
diff --git a/pkg/linter/example/all.yaml b/pkg/linter/example/all.yaml
index 9ce6437..a1b6f45 100644
--- a/pkg/linter/example/all.yaml
+++ b/pkg/linter/example/all.yaml
@@ -27,7 +27,6 @@
- avoid_init_to_null
- avoid_js_rounded_ints
- avoid_multiple_declarations_per_line
- - avoid_null_checks_in_equality_operators
- avoid_positional_boolean_parameters
- avoid_print
- avoid_private_typedef_functions
diff --git a/pkg/linter/lib/src/lint_codes.g.dart b/pkg/linter/lib/src/lint_codes.g.dart
index ab85246..d149d98 100644
--- a/pkg/linter/lib/src/lint_codes.g.dart
+++ b/pkg/linter/lib/src/lint_codes.g.dart
@@ -240,13 +240,6 @@
"Try splitting the variable declarations into multiple lines.",
);
- static const LintCode avoid_null_checks_in_equality_operators =
- LinterLintCode(
- LintNames.avoid_null_checks_in_equality_operators,
- "Unnecessary null comparison in implementation of '=='.",
- correctionMessage: "Try removing the comparison.",
- );
-
static const LintCode avoid_positional_boolean_parameters = LinterLintCode(
LintNames.avoid_positional_boolean_parameters,
"'bool' parameters should be named parameters.",
diff --git a/pkg/linter/lib/src/rules/avoid_null_checks_in_equality_operators.dart b/pkg/linter/lib/src/rules/avoid_null_checks_in_equality_operators.dart
index da8ed02..6d58b24 100644
--- a/pkg/linter/lib/src/rules/avoid_null_checks_in_equality_operators.dart
+++ b/pkg/linter/lib/src/rules/avoid_null_checks_in_equality_operators.dart
@@ -2,113 +2,19 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
-import 'package:analyzer/dart/ast/ast.dart';
-import 'package:analyzer/dart/ast/token.dart';
-import 'package:analyzer/dart/ast/visitor.dart';
-import 'package:analyzer/dart/element/element.dart';
-import 'package:analyzer/dart/element/nullability_suffix.dart';
+import 'package:pub_semver/pub_semver.dart';
import '../analyzer.dart';
-import '../extensions.dart';
const _desc = r"Don't check for `null` in custom `==` operators.";
-bool _isComparingEquality(TokenType tokenType) =>
- tokenType == TokenType.BANG_EQ || tokenType == TokenType.EQ_EQ;
-
-bool _isComparingParameterWithNull(BinaryExpression node, Element? parameter) =>
- _isComparingEquality(node.operator.type) &&
- ((node.leftOperand.isNullLiteral &&
- _isParameter(node.rightOperand, parameter)) ||
- (node.rightOperand.isNullLiteral &&
- _isParameter(node.leftOperand, parameter)));
-
-bool _isParameter(Expression expression, Element? parameter) =>
- expression.canonicalElement == parameter;
-
-bool _isParameterWithQuestionQuestion(
- BinaryExpression node, Element? parameter) =>
- node.operator.type == TokenType.QUESTION_QUESTION &&
- _isParameter(node.leftOperand, parameter);
-
class AvoidNullChecksInEqualityOperators extends LintRule {
AvoidNullChecksInEqualityOperators()
: super(
- name: LintNames.avoid_null_checks_in_equality_operators,
- description: _desc,
- );
+ name: LintNames.avoid_null_checks_in_equality_operators,
+ description: _desc,
+ state: State.removed(since: Version(3, 7, 0)));
@override
- LintCode get lintCode =>
- LinterLintCode.avoid_null_checks_in_equality_operators;
-
- @override
- void registerNodeProcessors(
- NodeLintRegistry registry, LinterContext context) {
- var visitor = _Visitor(this);
- registry.addMethodDeclaration(this, visitor);
- }
-}
-
-class _BodyVisitor extends RecursiveAstVisitor<void> {
- final Element? parameter;
- final LintRule rule;
-
- _BodyVisitor(this.parameter, this.rule);
-
- @override
- visitBinaryExpression(BinaryExpression node) {
- if (_isParameterWithQuestionQuestion(node, parameter) ||
- _isComparingParameterWithNull(node, parameter)) {
- rule.reportLint(node);
- }
- super.visitBinaryExpression(node);
- }
-
- @override
- visitMethodInvocation(MethodInvocation node) {
- if (node.operator?.type == TokenType.QUESTION_PERIOD &&
- node.target.canonicalElement == parameter) {
- rule.reportLint(node);
- }
- super.visitMethodInvocation(node);
- }
-
- @override
- visitPropertyAccess(PropertyAccess node) {
- if (node.operator.type == TokenType.QUESTION_PERIOD &&
- node.target.canonicalElement == parameter) {
- rule.reportLint(node);
- }
- super.visitPropertyAccess(node);
- }
-}
-
-class _Visitor extends SimpleAstVisitor<void> {
- final LintRule rule;
-
- _Visitor(this.rule);
-
- @override
- void visitMethodDeclaration(MethodDeclaration node) {
- var parameters = node.parameters?.parameters;
- if (parameters == null) {
- return;
- }
-
- if (node.name.type != TokenType.EQ_EQ || parameters.length != 1) {
- return;
- }
-
- var parameter = parameters.first.declaredElement?.canonicalElement;
-
- // Analyzer will produce UNNECESSARY_NULL_COMPARISON_FALSE|TRUE
- // See: https://github.com/dart-lang/linter/issues/2864
- if (parameter is VariableElement &&
- parameter.type.nullabilitySuffix != NullabilitySuffix.question) {
- return;
- }
-
- node.body.accept(_BodyVisitor(parameter, rule));
- }
+ LintCode get lintCode => LinterLintCode.removed_lint;
}
diff --git a/pkg/linter/lib/src/rules/avoid_returning_this.dart b/pkg/linter/lib/src/rules/avoid_returning_this.dart
index 9f2d909..ef77d4d 100644
--- a/pkg/linter/lib/src/rules/avoid_returning_this.dart
+++ b/pkg/linter/lib/src/rules/avoid_returning_this.dart
@@ -2,9 +2,9 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
-import 'package:analyzer/dart/ast/ast.dart';
import 'package:analyzer/dart/ast/visitor.dart';
import 'package:analyzer/dart/element/type.dart';
+import 'package:analyzer/src/dart/ast/ast.dart'; // ignore: implementation_imports
import '../analyzer.dart';
import '../extensions.dart';
@@ -79,10 +79,11 @@
return;
}
- var returnType = node.declaredElement?.returnType;
+ var returnType = node.declaredFragment?.element.returnType;
if (returnType is InterfaceType &&
- // ignore: cast_nullable_to_non_nullable
- returnType.element == (parent as Declaration).declaredElement) {
+ returnType.element3 ==
+ // ignore: cast_nullable_to_non_nullable
+ (parent as FragmentDeclaration).declaredFragment?.element) {
} else {
return;
}
diff --git a/pkg/linter/lib/src/rules/prefer_constructors_over_static_methods.dart b/pkg/linter/lib/src/rules/prefer_constructors_over_static_methods.dart
index 642a3340..85c0008 100644
--- a/pkg/linter/lib/src/rules/prefer_constructors_over_static_methods.dart
+++ b/pkg/linter/lib/src/rules/prefer_constructors_over_static_methods.dart
@@ -80,10 +80,12 @@
extension on AstNode? {
InterfaceType? typeToCheckOrNull() => switch (this) {
- ExtensionTypeDeclaration e =>
- e.typeParameters == null ? e.declaredElement?.thisType : null,
- ClassDeclaration c =>
- c.typeParameters == null ? c.declaredElement?.thisType : null,
+ ExtensionTypeDeclaration e => e.typeParameters == null
+ ? e.declaredFragment?.element.thisType
+ : null,
+ ClassDeclaration c => c.typeParameters == null
+ ? c.declaredFragment?.element.thisType
+ : null,
_ => null
};
}
diff --git a/pkg/linter/lib/src/rules/recursive_getters.dart b/pkg/linter/lib/src/rules/recursive_getters.dart
index a7ce0c0..d2c0a3e 100644
--- a/pkg/linter/lib/src/rules/recursive_getters.dart
+++ b/pkg/linter/lib/src/rules/recursive_getters.dart
@@ -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 '../analyzer.dart';
@@ -31,11 +31,11 @@
class _BodyVisitor extends RecursiveAstVisitor<void> {
final LintRule rule;
- final ExecutableElement element;
+ final ExecutableElement2 element;
_BodyVisitor(this.element, this.rule);
bool isSelfReference(SimpleIdentifier node) {
- if (node.staticElement != element) return false;
+ if (node.element != element) return false;
var parent = node.parent;
if (parent is PrefixedIdentifier) return false;
if (parent is PropertyAccess && parent.target is! ThisExpression) {
@@ -76,7 +76,7 @@
// getters have null arguments, methods have parameters, could be empty.
if (node.functionExpression.parameters != null) return;
- _verifyElement(node.functionExpression, node.declaredElement);
+ _verifyElement(node.functionExpression, node.declaredFragment?.element);
}
@override
@@ -84,10 +84,10 @@
// getters have null arguments, methods have parameters, could be empty.
if (node.parameters != null) return;
- _verifyElement(node.body, node.declaredElement);
+ _verifyElement(node.body, node.declaredFragment?.element);
}
- void _verifyElement(AstNode node, ExecutableElement? element) {
+ void _verifyElement(AstNode node, ExecutableElement2? element) {
if (element == null) return;
node.accept(_BodyVisitor(element, rule));
}
diff --git a/pkg/linter/messages.yaml b/pkg/linter/messages.yaml
index 0e3c327..1400550 100644
--- a/pkg/linter/messages.yaml
+++ b/pkg/linter/messages.yaml
@@ -1455,6 +1455,7 @@
addedIn: "2.0"
categories: [style]
hasPublishedDocs: false
+ removedIn: "3.7"
deprecatedDetails: |-
**DON'T** check for `null` in custom `==` operators.
@@ -1482,6 +1483,8 @@
operator ==(Object? other) => other is Person && name == other.name;
}
```
+
+ This rule has been removed.
avoid_positional_boolean_parameters:
problemMessage: "'bool' parameters should be named parameters."
correctionMessage: "Try converting the parameter to a named parameter."
diff --git a/pkg/linter/test/rules/all.dart b/pkg/linter/test/rules/all.dart
index 5bda8b6..402d92c 100644
--- a/pkg/linter/test/rules/all.dart
+++ b/pkg/linter/test/rules/all.dart
@@ -43,8 +43,6 @@
import 'avoid_js_rounded_ints_test.dart' as avoid_js_rounded_ints;
import 'avoid_multiple_declarations_per_line_test.dart'
as avoid_multiple_declarations_per_line;
-import 'avoid_null_checks_in_equality_operators_test.dart'
- as avoid_null_checks_in_equality_operators;
import 'avoid_positional_boolean_parameters_test.dart'
as avoid_positional_boolean_parameters;
import 'avoid_print_test.dart' as avoid_print;
@@ -346,7 +344,6 @@
avoid_init_to_null.main();
avoid_js_rounded_ints.main();
avoid_multiple_declarations_per_line.main();
- avoid_null_checks_in_equality_operators.main();
avoid_positional_boolean_parameters.main();
avoid_print.main();
avoid_private_typedef_functions.main();
diff --git a/pkg/linter/test/rules/avoid_null_checks_in_equality_operators_test.dart b/pkg/linter/test/rules/avoid_null_checks_in_equality_operators_test.dart
deleted file mode 100644
index ff5600c..0000000
--- a/pkg/linter/test/rules/avoid_null_checks_in_equality_operators_test.dart
+++ /dev/null
@@ -1,125 +0,0 @@
-// Copyright (c) 2024, the Dart project authors. Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-import 'package:test_reflective_loader/test_reflective_loader.dart';
-
-import '../rule_test_support.dart';
-
-main() {
- defineReflectiveSuite(() {
- defineReflectiveTests(AvoidNullChecksInEqualityOperatorsTest);
- });
-}
-
-@reflectiveTest
-class AvoidNullChecksInEqualityOperatorsTest extends LintRuleTest {
- @override
- String get lintRule => LintNames.avoid_null_checks_in_equality_operators;
-
- test_dynamicParameter_neNull() async {
- // https://github.com/dart-lang/linter/issues/2864
- await assertDiagnostics(r'''
-class C {
- String foo = '';
- @override
- operator ==(dynamic other) {
- return other != null && other is C && foo == other.foo;
- }
-}
-''', [
- error(WarningCode.NON_NULLABLE_EQUALS_PARAMETER, 52, 2),
- ]);
- }
-
- test_dynamicParameter_propertyAccess() async {
- await assertDiagnostics(r'''
-class C {
- String foo = '';
- @override
- operator ==(dynamic other) => other is C && foo == other.foo;
-}
-''', [
- error(WarningCode.NON_NULLABLE_EQUALS_PARAMETER, 52, 2),
- ]);
- }
-
- test_nonNullableParameter_neNull() async {
- // https://github.com/dart-lang/linter/issues/2864
- await assertDiagnostics(r'''
-class C {
- String foo = '';
- @override
- operator ==(Object other) {
- return other != null && other is C && foo == other.foo;
- }
-}
-''', [
- error(WarningCode.UNNECESSARY_NULL_COMPARISON_NEVER_NULL_TRUE, 88, 7),
- ]);
- }
-
- test_nullableParameter_eqeqNull_not() async {
- await assertDiagnostics(r'''
-class C {
- String foo = '';
- @override
- operator ==(Object? other) =>
- !(other == null) && other is C && foo == other.foo;
-}
-''', [
- error(WarningCode.NON_NULLABLE_EQUALS_PARAMETER, 52, 2),
- lint(85, 13),
- ]);
- }
-
- test_nullableParameter_fieldComparisonOnLocal() async {
- await assertDiagnostics(r'''
-class C {
- String foo;
- C(this.foo);
- @override
- operator ==(Object? other) {
- if (other is C) {
- var toCompare = other ?? C("");
- return toCompare.foo == foo;
- }
- return false;
- }
-
-}
-''', [
- error(WarningCode.NON_NULLABLE_EQUALS_PARAMETER, 62, 2),
- lint(126, 14),
- error(StaticWarningCode.DEAD_NULL_AWARE_EXPRESSION, 135, 5),
- ]);
- }
-
- test_nullableParameter_neNull() async {
- await assertDiagnostics(r'''
-class C {
- String foo = '';
- @override
- operator ==(Object? other) =>
- other != null && other is C && foo == other.foo;
-}
-''', [
- error(WarningCode.NON_NULLABLE_EQUALS_PARAMETER, 52, 2),
- lint(83, 13),
- ]);
- }
-
- test_nullableParameter_nullAwarePropertyAccess() async {
- await assertDiagnostics(r'''
-class C {
- String foo = '';
- @override
- operator ==(Object? other) => other is C && foo == other?.foo;
-}
-''', [
- error(WarningCode.NON_NULLABLE_EQUALS_PARAMETER, 52, 2),
- lint(94, 10),
- error(StaticWarningCode.INVALID_NULL_AWARE_OPERATOR, 99, 2),
- ]);
- }
-}
diff --git a/pkg/reload_test/lib/test_helpers.dart b/pkg/reload_test/lib/test_helpers.dart
index a205399..ace1aed 100644
--- a/pkg/reload_test/lib/test_helpers.dart
+++ b/pkg/reload_test/lib/test_helpers.dart
@@ -18,7 +18,7 @@
TestResultOutcome({
required this.configuration,
- this.suiteName = 'tests/reload',
+ this.suiteName = 'hot_reload',
required this.testName,
this.expectedResult = 'Pass',
this.testOutput = '',
diff --git a/pkg/test_runner/analysis_options.yaml b/pkg/test_runner/analysis_options.yaml
index 2d96f81..a2884c0 100644
--- a/pkg/test_runner/analysis_options.yaml
+++ b/pkg/test_runner/analysis_options.yaml
@@ -15,7 +15,6 @@
- comment_references
- directives_ordering
- omit_local_variable_types
- - package_api_docs
- prefer_const_constructors
- throw_in_finally
- unnecessary_lambdas
diff --git a/pkg/testing/analysis_options.yaml b/pkg/testing/analysis_options.yaml
index 2bd5500..d37843c 100644
--- a/pkg/testing/analysis_options.yaml
+++ b/pkg/testing/analysis_options.yaml
@@ -14,5 +14,4 @@
- always_declare_return_types
- avoid_void_async
- lines_longer_than_80_chars
- - package_api_docs
- unawaited_futures
diff --git a/tools/VERSION b/tools/VERSION
index de9a871..77a3a6f 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -27,5 +27,5 @@
MAJOR 3
MINOR 7
PATCH 0
-PRERELEASE 22
+PRERELEASE 23
PRERELEASE_PATCH 0
diff --git a/tools/generate_package_config.dart b/tools/generate_package_config.dart
index 67a6268..4e2cd4a 100644
--- a/tools/generate_package_config.dart
+++ b/tools/generate_package_config.dart
@@ -9,9 +9,7 @@
import 'dart:io';
// Important! Do not add package: imports to this file.
-//
// Do not add relative deps for libraries that themselves use package deps.
-//
// This tool runs before the .dart_tool/package_config.json file is created, so
// can not itself use package references.
@@ -90,6 +88,14 @@
];
packages.sort((a, b) => a.name.compareTo(b.name));
+ // TODO(devoncarew): Temporarily ignore the second package:file and
+ // package:file_testing locations.
+ packages.removeWhere((p) {
+ final path = posix(p.rootUri);
+ return path == 'third_party/pkg/file/packages/file' ||
+ path == 'third_party/pkg/file/packages/file_testing';
+ });
+
// Remove any packages with identical names.
final uniqueNames = packages.map((p) => p.name).toSet();
diff --git a/tools/package_deps/bin/package_deps.dart b/tools/package_deps/bin/package_deps.dart
index ba3099c..a2815be 100644
--- a/tools/package_deps/bin/package_deps.dart
+++ b/tools/package_deps/bin/package_deps.dart
@@ -453,6 +453,8 @@
_findPackages(Directory('pkg'));
_findPackages(Directory(path.join('third_party', 'devtools')));
_findPackages(Directory(path.join('third_party', 'pkg')));
+ _findPackages(
+ Directory(path.join('third_party', 'pkg', 'file', 'packages')));
if (verbose) {
print('Package versions in the SDK:');