Version 2.15.0-246.0.dev

Merge commit '85bac75b0e03c739164c7b7924754be4766a4112' into 'dev'
diff --git a/pkg/analyzer/lib/src/dart/resolver/function_reference_resolver.dart b/pkg/analyzer/lib/src/dart/resolver/function_reference_resolver.dart
index 192c7e5..6257b73 100644
--- a/pkg/analyzer/lib/src/dart/resolver/function_reference_resolver.dart
+++ b/pkg/analyzer/lib/src/dart/resolver/function_reference_resolver.dart
@@ -656,6 +656,8 @@
         }
 
         if (method is PropertyAccessorElement) {
+          function.staticElement = method;
+          function.staticType = method.returnType;
           _resolve(node: node, rawType: method.variable.type);
           return;
         }
diff --git a/pkg/analyzer/test/src/dart/resolution/function_reference_test.dart b/pkg/analyzer/test/src/dart/resolution/function_reference_test.dart
index 9a56b92..92e8e49 100644
--- a/pkg/analyzer/test/src/dart/resolution/function_reference_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/function_reference_test.dart
@@ -578,6 +578,23 @@
         findElement.getter('foo'), 'void Function(int)');
   }
 
+  test_instanceGetter_functionTyped_inherited() async {
+    await assertNoErrorsInCode('''
+abstract class A {
+  late void Function<T>(T) foo;
+}
+abstract class B extends A {
+  bar() {
+    foo<int>;
+  }
+}
+
+''');
+
+    assertFunctionReference(findNode.functionReference('foo<int>;'),
+        findElement.getter('foo'), 'void Function(int)');
+  }
+
   test_instanceMethod() async {
     await assertNoErrorsInCode('''
 class A {
diff --git a/tools/VERSION b/tools/VERSION
index 553f6f7..5be107b 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -27,5 +27,5 @@
 MAJOR 2
 MINOR 15
 PATCH 0
-PRERELEASE 245
+PRERELEASE 246
 PRERELEASE_PATCH 0
\ No newline at end of file