Version 2.14.0-43.0.dev
Merge commit '50de84a3fb7664c7f23e48c8be85ef5d6914f4e9' into 'dev'
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