diff --git a/pkg/analyzer/lib/src/dart/resolver/lexical_lookup.dart b/pkg/analyzer/lib/src/dart/resolver/lexical_lookup.dart
index 63bc1cf..542fd5e 100644
--- a/pkg/analyzer/lib/src/dart/resolver/lexical_lookup.dart
+++ b/pkg/analyzer/lib/src/dart/resolver/lexical_lookup.dart
@@ -30,7 +30,7 @@
             requested: _resolver.toLegacyElement(scopeSetter),
           );
         }
-        if (!scopeGetter!.isInstanceMember) {
+        if (scopeGetter != null && !scopeGetter.isInstanceMember) {
           return LexicalLookupResult(
             recovery: _resolver.toLegacyElement(scopeGetter),
           );
@@ -41,6 +41,11 @@
             requested: _resolver.toLegacyElement(scopeGetter),
           );
         }
+        if (scopeSetter != null && !scopeSetter.isInstanceMember) {
+          return LexicalLookupResult(
+            recovery: _resolver.toLegacyElement(scopeSetter),
+          );
+        }
       }
     }
 
diff --git a/pkg/analyzer/test/src/diagnostics/assignment_to_final_test.dart b/pkg/analyzer/test/src/diagnostics/assignment_to_final_test.dart
index 0e78785..d45f72d 100644
--- a/pkg/analyzer/test/src/diagnostics/assignment_to_final_test.dart
+++ b/pkg/analyzer/test/src/diagnostics/assignment_to_final_test.dart
@@ -52,6 +52,24 @@
     ]);
   }
 
+  test_simpleIdentifier_inheritedSetter_shadowedBy_topLevelGetter() async {
+    await assertErrorsInCode('''
+class A {
+  void set foo(int _) {}
+}
+
+int get foo => 0;
+
+class B extends A {
+  void bar() {
+    foo = 0;
+  }
+}
+''', [
+      error(CompileTimeErrorCode.ASSIGNMENT_TO_FINAL, 96, 3),
+    ]);
+  }
+
   test_simpleIdentifier_topLevelGetter() async {
     await assertErrorsInCode('''
 int get x => 0;
diff --git a/pkg/analyzer/test/src/diagnostics/undefined_identifier_test.dart b/pkg/analyzer/test/src/diagnostics/undefined_identifier_test.dart
index 1c584a0..69cb215 100644
--- a/pkg/analyzer/test/src/diagnostics/undefined_identifier_test.dart
+++ b/pkg/analyzer/test/src/diagnostics/undefined_identifier_test.dart
@@ -133,6 +133,24 @@
     ]);
   }
 
+  test_inheritedGetter_shadowedBy_topLevelSetter() async {
+    await assertErrorsInCode('''
+class A {
+  int get foo => 0;
+}
+
+void set foo(int _) {}
+
+class B extends A {
+  void bar() {
+    foo;
+  }
+}
+''', [
+      error(CompileTimeErrorCode.UNDEFINED_IDENTIFIER, 96, 3),
+    ]);
+  }
+
   test_initializer() async {
     await assertErrorsInCode('''
 var a = b;
diff --git a/tools/VERSION b/tools/VERSION
index 46d1cb5..dd4adca 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -27,5 +27,5 @@
 MAJOR 2
 MINOR 14
 PATCH 0
-PRERELEASE 42
+PRERELEASE 43
 PRERELEASE_PATCH 0
\ No newline at end of file
