Partial fix for generic function types - non-driver case
R=scheglov@google.com
Review-Url: https://codereview.chromium.org/2802203003 .
diff --git a/pkg/analyzer/lib/src/generated/resolver.dart b/pkg/analyzer/lib/src/generated/resolver.dart
index 173a2c8..ccfa988 100644
--- a/pkg/analyzer/lib/src/generated/resolver.dart
+++ b/pkg/analyzer/lib/src/generated/resolver.dart
@@ -10183,7 +10183,7 @@
if (returnType == null) {
return _dynamicType;
} else {
- return returnType.type;
+ return _typeNameResolver._getType(returnType);
}
}
diff --git a/pkg/analyzer/test/generated/non_error_resolver_driver_test.dart b/pkg/analyzer/test/generated/non_error_resolver_driver_test.dart
index b18fe32..be0f9b5 100644
--- a/pkg/analyzer/test/generated/non_error_resolver_driver_test.dart
+++ b/pkg/analyzer/test/generated/non_error_resolver_driver_test.dart
@@ -16,4 +16,9 @@
class NonErrorResolverTest_Driver extends NonErrorResolverTest {
@override
bool get enableNewAnalysisDriver => true;
+
+ @failingTest
+ test_genericTypeAlias_fieldAndReturnType() async {
+ return super.test_genericTypeAlias_fieldAndReturnType();
+ }
}
diff --git a/pkg/analyzer/test/generated/non_error_resolver_test.dart b/pkg/analyzer/test/generated/non_error_resolver_test.dart
index 0f5557f..e89057b 100644
--- a/pkg/analyzer/test/generated/non_error_resolver_test.dart
+++ b/pkg/analyzer/test/generated/non_error_resolver_test.dart
@@ -2158,6 +2158,27 @@
verify([source]);
}
+ test_genericTypeAlias_fieldAndReturnType() async {
+ Source source = addSource(r'''
+typedef Foo = int Function<T>(T x);
+int foo<T>(T x) => 3;
+Foo bar() => foo;
+void test1() {
+ bar()<String>("hello");
+}
+
+class A {
+ Foo f;
+ void test() {
+ f<String>("hello");
+ }
+}
+''');
+ await computeAnalysisResult(source);
+ assertNoErrors(source);
+ verify([source]);
+ }
+
test_genericTypeAlias_noTypeParameters() async {
Source source = addSource(r'''
typedef Foo = int Function<T>(T x);