commit | 4aaa15edb2f7f6df6f5c75ba5d0ddf9a3c1e4129 | [log] [tgz] |
---|---|---|
author | Paul Berry <paulberry@google.com> | Mon Jun 17 23:21:08 2019 +0000 |
committer | commit-bot@chromium.org <commit-bot@chromium.org> | Mon Jun 17 23:21:08 2019 +0000 |
tree | 495c5914bdf549bd79a78838e7b0f9bec6f5ed98 | |
parent | aafc6b7d5bddc331f416a6fd47e216fc8230274e [diff] |
Migration: fix detection of variable/parameter reference inside parentheses. Change-Id: Ifebbb834de278a38c30f8e555175515220706a1b Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/106423 Commit-Queue: Paul Berry <paulberry@google.com> Reviewed-by: Konstantin Shcheglov <scheglov@google.com> Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
diff --git a/pkg/nnbd_migration/lib/src/graph_builder.dart b/pkg/nnbd_migration/lib/src/graph_builder.dart index 97b1092..b673ac5 100644 --- a/pkg/nnbd_migration/lib/src/graph_builder.dart +++ b/pkg/nnbd_migration/lib/src/graph_builder.dart
@@ -852,6 +852,7 @@ } bool _isVariableOrParameterReference(Expression expression) { + expression = expression.unParenthesized; if (expression is SimpleIdentifier) { var element = expression.staticElement; if (element is LocalVariableElement) return true;
diff --git a/pkg/nnbd_migration/test/migration_visitor_test.dart b/pkg/nnbd_migration/test/migration_visitor_test.dart index 85e574a..cb2e1e0 100644 --- a/pkg/nnbd_migration/test/migration_visitor_test.dart +++ b/pkg/nnbd_migration/test/migration_visitor_test.dart
@@ -1230,9 +1230,8 @@ } '''); - // TODO(paulberry): this is wrong. It should be a hard edge. assertNullCheck(checkExpression('c).x'), - assertEdge(decoratedTypeAnnotation('C c').node, never, hard: false)); + assertEdge(decoratedTypeAnnotation('C c').node, never, hard: true)); } test_return_implicit_null() async {