Sema: Fix rendering of accessor names in an availability diagnostic.

This commit is contained in:
Allan Shortlidge
2025-07-26 15:14:58 -07:00
parent c4a9bf0109
commit 60554b3de1
4 changed files with 4 additions and 6 deletions

View File

@@ -3520,8 +3520,8 @@ NOTE(multiple_override_prev,none,
"%0 previously overridden here", (DeclName))
ERROR(override_unavailable, none,
"cannot override %0 which has been marked unavailable%select{|: %1}1",
(DeclBaseName, StringRef))
"cannot override %base0 which has been marked unavailable%select{|: %1}1",
(ValueDecl *, StringRef))
NOTE(suggest_removing_override, none,
"remove 'override' modifier to declare a new %0",
(DeclBaseName))

View File

@@ -1631,7 +1631,7 @@ void swift::diagnoseOverrideOfUnavailableDecl(ValueDecl *override,
if (attr.getRename().empty()) {
EncodedDiagnosticMessage EncodedMessage(attr.getMessage());
diags.diagnose(override, diag::override_unavailable,
override->getBaseName(), EncodedMessage.Message);
override, EncodedMessage.Message);
diags.diagnose(base, diag::availability_marked_unavailable, base);
return;

View File

@@ -56,8 +56,7 @@ func testAvailableOverrideOfUnavailableDecl() {
override var computedPropertyWithUnavailableSet: Int {
get { 0 }
// FIXME: Diagnostic should refer to "setter for 'computedPropertyWithUnavailableSet'" rather than '_'.
set {} // expected-error {{cannot override '_' which has been marked unavailable}}
set {} // expected-error {{cannot override setter for 'computedPropertyWithUnavailableSet' which has been marked unavailable}}
}
}

View File

@@ -917,7 +917,6 @@ class SubWithLimitedMemberAvailability : SuperWithAlwaysAvailableMembers {
get { return 9 }
@available(OSX, introduced: 51)
set(newVal) {} // expected-error {{overriding setter for 'setterShouldAlwaysBeAvailableProperty' must be as available as declaration it overrides}}
// This is a terrible diagnostic. rdar://problem/20427938
}
override var getterShouldAlwaysBeAvailableProperty: Int {