Version 2.14.0-11.0.dev
Merge commit 'f4d136eb14e5baf1b8724d206b9ed897c44bcd64' into 'dev'
diff --git a/pkg/analyzer/lib/src/error/best_practices_verifier.dart b/pkg/analyzer/lib/src/error/best_practices_verifier.dart
index c2c568d..21460b7 100644
--- a/pkg/analyzer/lib/src/error/best_practices_verifier.dart
+++ b/pkg/analyzer/lib/src/error/best_practices_verifier.dart
@@ -367,7 +367,9 @@
@override
void visitExpressionFunctionBody(ExpressionFunctionBody node) {
- _checkForReturnOfDoNotStore(node.expression);
+ if (!_invalidAccessVerifier._inTestDirectory) {
+ _checkForReturnOfDoNotStore(node.expression);
+ }
super.visitExpressionFunctionBody(node);
}
@@ -406,8 +408,9 @@
field.name,
[field.name, overriddenElement!.enclosingElement.name]);
}
-
- _checkForAssignmentOfDoNotStore(field.initializer);
+ if (!_invalidAccessVerifier._inTestDirectory) {
+ _checkForAssignmentOfDoNotStore(field.initializer);
+ }
}
} finally {
_deprecatedVerifier.popInDeprecated();
@@ -678,8 +681,10 @@
void visitTopLevelVariableDeclaration(TopLevelVariableDeclaration node) {
_deprecatedVerifier.pushInDeprecatedMetadata(node.metadata);
- for (var decl in node.variables.variables) {
- _checkForAssignmentOfDoNotStore(decl.initializer);
+ if (!_invalidAccessVerifier._inTestDirectory) {
+ for (var decl in node.variables.variables) {
+ _checkForAssignmentOfDoNotStore(decl.initializer);
+ }
}
try {
diff --git a/pkg/analyzer/test/src/diagnostics/assignment_of_do_not_store_test.dart b/pkg/analyzer/test/src/diagnostics/assignment_of_do_not_store_test.dart
index 27f94c8..56b086d 100644
--- a/pkg/analyzer/test/src/diagnostics/assignment_of_do_not_store_test.dart
+++ b/pkg/analyzer/test/src/diagnostics/assignment_of_do_not_store_test.dart
@@ -10,11 +10,45 @@
main() {
defineReflectiveSuite(() {
defineReflectiveTests(AssignmentOfDoNotStoreTest);
+ defineReflectiveTests(AssignmentOfDoNotStoreInTestsTest);
});
}
@reflectiveTest
+class AssignmentOfDoNotStoreInTestsTest extends PubPackageResolutionTest {
+ @override
+ void setUp() {
+ super.setUp();
+ writeTestPackageConfigWithMeta();
+ }
+
+ test_noHintsInTestDir() async {
+ // Code that is in a test dir (the default for PubPackageResolutionTests)
+ // should not trigger the hint.
+ // (See:https://github.com/dart-lang/sdk/issues/45594)
+ await assertNoErrorsInCode(
+ '''
+import 'package:meta/meta.dart';
+
+class A {
+ @doNotStore
+ String get v => '';
+}
+
+class B {
+ String f = A().v;
+}
+''',
+ );
+ }
+}
+
+@reflectiveTest
class AssignmentOfDoNotStoreTest extends PubPackageResolutionTest {
+ /// Override the default which is in .../test and should not trigger hints.
+ @override
+ String get testPackageRootPath => '$workspaceRootPath/test_project';
+
@override
void setUp() {
super.setUp();
diff --git a/pkg/analyzer/test/src/diagnostics/return_of_do_not_store_test.dart b/pkg/analyzer/test/src/diagnostics/return_of_do_not_store_test.dart
index ec72a74..4ec91f6 100644
--- a/pkg/analyzer/test/src/diagnostics/return_of_do_not_store_test.dart
+++ b/pkg/analyzer/test/src/diagnostics/return_of_do_not_store_test.dart
@@ -10,11 +10,44 @@
main() {
defineReflectiveSuite(() {
defineReflectiveTests(ReturnOfDoNotStoreTest);
+ defineReflectiveTests(ReturnOfDoNotStoreInTestsTest);
});
}
@reflectiveTest
+class ReturnOfDoNotStoreInTestsTest extends PubPackageResolutionTest {
+ @override
+ void setUp() {
+ super.setUp();
+ writeTestPackageConfigWithMeta();
+ }
+
+ test_noHintsInTestDir() async {
+ // Code that is in a test dir (the default for PubPackageResolutionTests)
+ // should not trigger the hint.
+ // (See:https://github.com/dart-lang/sdk/issues/45594)
+ await assertNoErrorsInCode(
+ '''
+import 'package:meta/meta.dart';
+
+@doNotStore
+String _v = '';
+
+String f() {
+ var v = () => _v;
+ return v();
+}
+''',
+ );
+ }
+}
+
+@reflectiveTest
class ReturnOfDoNotStoreTest extends PubPackageResolutionTest {
+ /// Override the default which is in .../test and should not trigger hints.
+ @override
+ String get testPackageRootPath => '$workspaceRootPath/test_project';
+
@override
void setUp() {
super.setUp();
diff --git a/tools/VERSION b/tools/VERSION
index bcb0d00..2c09787e 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -27,5 +27,5 @@
MAJOR 2
MINOR 14
PATCH 0
-PRERELEASE 10
+PRERELEASE 11
PRERELEASE_PATCH 0
\ No newline at end of file