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);