Check for '!' operator when report HintCode.NULL_CHECK_ALWAYS_FAILS

Follow up for:
https://dart-review.googlesource.com/c/sdk/+/170122

Change-Id: If9b3cb1a18ecd7cf21149dbd0fda4ec209506b90
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/170220
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
This commit is contained in:
Konstantin Shcheglov 2020-11-04 03:43:25 +00:00 committed by commit-bot@chromium.org
parent ffc36db613
commit 1726476120
2 changed files with 4 additions and 3 deletions

View file

@ -613,7 +613,8 @@ class BestPracticesVerifier extends RecursiveAstVisitor<void> {
@override
void visitPostfixExpression(PostfixExpression node) {
_deprecatedVerifier.postfixExpression(node);
if (node.operand.staticType?.isDartCoreNull ?? false) {
if (node.operator.type == TokenType.BANG &&
node.operand.staticType.isDartCoreNull) {
_errorReporter.reportErrorForNode(HintCode.NULL_CHECK_ALWAYS_FAILS, node);
}
super.visitPostfixExpression(node);

View file

@ -37,10 +37,10 @@ void f() {
test_nullLiteral_parenthesized() async {
await assertErrorsInCode(r'''
void f() {
null!;
(null)!;
}
''', [
error(HintCode.NULL_CHECK_ALWAYS_FAILS, 13, 5),
error(HintCode.NULL_CHECK_ALWAYS_FAILS, 13, 7),
]);
}