Index: pkg/analyzer/test/src/summary/linker_test.dart |
diff --git a/pkg/analyzer/test/src/summary/linker_test.dart b/pkg/analyzer/test/src/summary/linker_test.dart |
index 01a6c44b747fb5b4327b83d3b8661a8eb8fe0849..38796c203823736d90caf85d085c37faea3d34e5 100644 |
--- a/pkg/analyzer/test/src/summary/linker_test.dart |
+++ b/pkg/analyzer/test/src/summary/linker_test.dart |
@@ -458,6 +458,32 @@ class C extends B { |
expect(cls.methods[0].returnType.toString(), 'void'); |
} |
+ void test_inferredType_parameter_genericFunctionType() { |
+ var bundle = createPackageBundle( |
+ ''' |
+class A<T> { |
+ A<R> map<R>(R Function(T) f) => null; |
+} |
+''', |
+ path: '/a.dart'); |
+ addBundle('/a.ds', bundle); |
+ createLinker(''' |
+import 'a.dart'; |
+class C extends A<int> { |
+ map<R2>(f) => null; |
+} |
+'''); |
+ LibraryElementForLink library = linker.getLibrary(linkerInputs.testDartUri); |
+ library.libraryCycleForLink.ensureLinked(); |
+ ClassElementForLink_Class c = library.getContainedName('C'); |
+ expect(c.methods, hasLength(1)); |
+ MethodElementForLink map = c.methods[0]; |
+ expect(map.parameters, hasLength(1)); |
+ FunctionType fType = map.parameters[0].type; |
+ expect(fType.returnType.toString(), 'R2'); |
+ expect(fType.parameters[0].type.toString(), 'int'); |
+ } |
+ |
void test_inferredType_staticField_dynamic() { |
createLinker(''' |
dynamic x = null; |