Skip to content

Commit a9e37e2

Browse files
stereotype441Commit Queue
authored and
Commit Queue
committed
[analyzer] Add warnings to test expectations rather than ignoring.
Konstantin pointed out in https://dart-review.googlesource.com/c/sdk/+/413521/comment/773e5821_595e0362/ that: - The cost of including these warnings in test expectations is low, - Including them has the advantage of including more information in the test, which is nice, and - These warnings aren't really a distraction; they are an expected part of the analyzer's behavior (e.g., when calling a method on `Never`, we expect a dead code warning, even if the test in question is ostensibly testing some other behavior). Including the warning as an expected outcome has the advantage of confirming that the test is indeed behaving in the way we expect. Change-Id: Iaa44e80e5332b83d5165e8a362a97dd871d8bf25 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/413561 Auto-Submit: Paul Berry <[email protected]> Reviewed-by: Konstantin Shcheglov <[email protected]> Commit-Queue: Konstantin Shcheglov <[email protected]>
1 parent b70685e commit a9e37e2

File tree

3 files changed

+26
-20
lines changed

3 files changed

+26
-20
lines changed

pkg/analyzer/test/src/dart/resolution/extension_method_test.dart

+4-3
Original file line numberDiff line numberDiff line change
@@ -1038,16 +1038,17 @@ PrefixedIdentifier
10381038
}
10391039

10401040
test_instance_getter_fromInstance_Never() async {
1041-
await assertNoErrorsInCode('''
1041+
await assertErrorsInCode('''
10421042
extension E on Never {
10431043
int get foo => 0;
10441044
}
10451045
10461046
f(Never a) {
1047-
// ignore: dead_code
10481047
a.foo;
10491048
}
1050-
''');
1049+
''', [
1050+
error(WarningCode.DEAD_CODE, 63, 4),
1051+
]);
10511052
var access = findNode.prefixed('a.foo');
10521053
assertResolvedNodeText(access, r'''
10531054
PrefixedIdentifier

pkg/analyzer/test/src/diagnostics/dead_code_test.dart

+2-2
Original file line numberDiff line numberDiff line change
@@ -171,10 +171,10 @@ void f(int a) {
171171
await assertErrorsInCode(r'''
172172
Never doNotReturn() => throw 0;
173173
174-
// ignore: unnecessary_type_check_true
175174
test() => doNotReturn() is int;
176175
''', [
177-
error(WarningCode.DEAD_CODE, 99, 4),
176+
error(WarningCode.UNNECESSARY_TYPE_CHECK_TRUE, 43, 20),
177+
error(WarningCode.DEAD_CODE, 60, 4),
178178
]);
179179
}
180180

pkg/analyzer/test/src/diagnostics/receiver_of_type_never_test.dart

+20-15
Original file line numberDiff line numberDiff line change
@@ -887,12 +887,13 @@ PrefixExpression
887887
}
888888

889889
test_propertyAccess_never_read() async {
890-
await assertNoErrorsInCode(r'''
890+
await assertErrorsInCode(r'''
891891
void f(Never x) {
892-
// ignore: dead_code
893892
x.foo;
894893
}
895-
''');
894+
''', [
895+
error(WarningCode.DEAD_CODE, 22, 4),
896+
]);
896897

897898
var node = findNode.singlePrefixedIdentifier;
898899
assertResolvedNodeText(node, r'''
@@ -915,12 +916,13 @@ PrefixedIdentifier
915916
}
916917

917918
test_propertyAccess_never_read_hashCode() async {
918-
await assertNoErrorsInCode(r'''
919+
await assertErrorsInCode(r'''
919920
void f(Never x) {
920-
// ignore: dead_code
921921
x.hashCode;
922922
}
923-
''');
923+
''', [
924+
error(WarningCode.DEAD_CODE, 22, 9),
925+
]);
924926

925927
var node = findNode.singlePrefixedIdentifier;
926928
assertResolvedNodeText(node, r'''
@@ -987,12 +989,13 @@ AssignmentExpression
987989
}
988990

989991
test_propertyAccess_never_tearOff_toString() async {
990-
await assertNoErrorsInCode(r'''
992+
await assertErrorsInCode(r'''
991993
void f(Never x) {
992-
// ignore: dead_code
993994
x.toString;
994995
}
995-
''');
996+
''', [
997+
error(WarningCode.DEAD_CODE, 22, 9),
998+
]);
996999

9971000
var node = findNode.singlePrefixedIdentifier;
9981001
assertResolvedNodeText(node, r'''
@@ -1143,12 +1146,13 @@ PrefixedIdentifier
11431146
}
11441147

11451148
test_propertyAccess_toString() async {
1146-
await assertNoErrorsInCode(r'''
1149+
await assertErrorsInCode(r'''
11471150
void f() {
1148-
// ignore: dead_code
11491151
(throw '').toString;
11501152
}
1151-
''');
1153+
''', [
1154+
error(WarningCode.DEAD_CODE, 24, 9),
1155+
]);
11521156

11531157
var node = findNode.singlePropertyAccess;
11541158
assertResolvedNodeText(node, r'''
@@ -1173,12 +1177,13 @@ PropertyAccess
11731177
}
11741178

11751179
test_throw_getter_hashCode() async {
1176-
await assertNoErrorsInCode(r'''
1180+
await assertErrorsInCode(r'''
11771181
void f() {
1178-
// ignore: dead_code
11791182
(throw '').hashCode;
11801183
}
1181-
''');
1184+
''', [
1185+
error(WarningCode.DEAD_CODE, 24, 9),
1186+
]);
11821187

11831188
var node = findNode.singlePropertyAccess;
11841189
assertResolvedNodeText(node, r'''

0 commit comments

Comments
 (0)