File tree Expand file tree Collapse file tree 2 files changed +23
-1
lines changed Expand file tree Collapse file tree 2 files changed +23
-1
lines changed Original file line number Diff line number Diff line change @@ -15201,7 +15201,16 @@ ConstraintSystem::SolutionKind ConstraintSystem::simplifyFixConstraint(
15201
15201
locator.endsWith<LocatorPathElt::SubscriptMember>())
15202
15202
? 1
15203
15203
: 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 decl = overload->choice.getDeclOrNull()) {
15207
+ if (auto VD = dyn_cast<VarDecl>(decl)) {
15208
+ if (!VD->isSettableInSwift(DC)) {
15209
+ impact += 10;
15210
+ }
15211
+ }
15212
+ }
15213
+ }
15205
15214
return recordFix(fix, impact) ? SolutionKind::Error : SolutionKind::Solved;
15206
15215
}
15207
15216
Original file line number Diff line number Diff line change @@ -762,3 +762,16 @@ struct S2<T> {
762
762
// expected-note@-1 {{add explicit 'S2<T>.' to refer to mutable static property of 'S2<T>'}} {{5-5=S2<T>.}}
763
763
}
764
764
}
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