commit | 7928dbd2702505ece411724e3cf804707ca27da8 | [log] [tgz] |
---|---|---|
author | Mike Fairhurst <mfairhurst@google.com> | Mon May 06 21:18:59 2019 +0000 |
committer | commit-bot@chromium.org <commit-bot@chromium.org> | Mon May 06 21:18:59 2019 +0000 |
tree | 46565f2a1fe16fd15ed4c5ac2a8540064dc2b3d2 | |
parent | 36c315eaccecefce96ed5ba54d3cbdd74904e86a [diff] |
[analyzer] Resolve nullability of generic function types Change-Id: Ie14ae8844b83f54b5e2c9d1d5424ca8f015bb5d0 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/101463 Reviewed-by: Brian Wilkerson <brianwilkerson@google.com> Commit-Queue: Mike Fairhurst <mfairhurst@google.com>
diff --git a/pkg/analyzer/lib/src/generated/resolver.dart b/pkg/analyzer/lib/src/generated/resolver.dart index 9502121..ee1cc5a 100644 --- a/pkg/analyzer/lib/src/generated/resolver.dart +++ b/pkg/analyzer/lib/src/generated/resolver.dart
@@ -7908,6 +7908,12 @@ @override void visitGenericFunctionType(GenericFunctionType node) { GenericFunctionTypeElementImpl element = node.type?.element; + if (node.type != null) { + var nullability = + _typeNameResolver._getNullability(node.question != null); + (node as GenericFunctionTypeImpl).type = + (node.type as TypeImpl).withNullability(nullability); + } if (element != null) { super.visitGenericFunctionType(node); element.returnType =
diff --git a/pkg/analyzer/test/src/diagnostics/unchecked_use_of_nullable_value_test.dart b/pkg/analyzer/test/src/diagnostics/unchecked_use_of_nullable_value_test.dart index ce2c1f0..5ee8a4e 100644 --- a/pkg/analyzer/test/src/diagnostics/unchecked_use_of_nullable_value_test.dart +++ b/pkg/analyzer/test/src/diagnostics/unchecked_use_of_nullable_value_test.dart
@@ -177,10 +177,7 @@ '''); } - @failingTest test_invoke_nullable() async { - // test is failing because nullable function invocations aren't being - // resolved correctly await assertErrorCodesInCode(r''' m() { Function()? x;