File tree Expand file tree Collapse file tree 2 files changed +19
-1
lines changed Expand file tree Collapse file tree 2 files changed +19
-1
lines changed Original file line number Diff line number Diff line change @@ -15201,7 +15201,12 @@ ConstraintSystem::SolutionKind ConstraintSystem::simplifyFixConstraint(
1520115201 locator.endsWith<LocatorPathElt::SubscriptMember>())
1520215202 ? 1
1520315203 : 0;
15204-
15204+ // An overload choice that isn't settable is least interesting for diagnosis.
15205+ if (auto overload = findSelectedOverloadFor(getCalleeLocator(fix->getLocator()))) {
15206+ if (auto *var = dyn_cast_or_null<VarDecl>(overload->choice.getDeclOrNull())) {
15207+ impact += !var->isSettableInSwift(DC) ? 1 : 0;
15208+ }
15209+ }
1520515210 return recordFix(fix, impact) ? SolutionKind::Error : SolutionKind::Solved;
1520615211 }
1520715212
Original file line number Diff line number Diff line change @@ -762,3 +762,16 @@ struct S2<T> {
762762 // expected-note@-1 {{add explicit 'S2<T>.' to refer to mutable static property of 'S2<T>'}} {{5-5=S2<T>.}}
763763 }
764764}
765+
766+ // SR-3680, https://github.com/apple/swift/issues/46265
767+ protocol HasFoo {
768+ var foo : String { get }
769+ }
770+ protocol CanSetFoo {
771+ var foo : String { get set }
772+ }
773+ extension HasFoo where Self: CanSetFoo {
774+ func bar( ) { // expected-note {{mark method 'mutating' to make 'self' mutable}}{{3-3=mutating }}
775+ self . foo = " bar " // expected-error {{cannot assign to property: 'self' is immutable}}
776+ }
777+ }
You can’t perform that action at this time.
0 commit comments