swiftlang/swift

Misleading error about `nonisolated` not being applicable to mutable stored properties

オープン

#88,709 opened on 2026/04/28

 (2 件のコメント) (0 件のリアクション) (1 人の担当者)Swift (10,719 件のフォーク)batch import
actor isolationcompilerconcurrencydiagnostics qualitygood first issueswift 6.3type checker

Repository metrics

Stars
 (69,989 個のスター)
PR merge metrics
 (PR metrics pending)

説明

Description

No response

Reproduction

@MainActor
final class C {
  nonisolated var c = 0
}
actor A {
  nonisolated var a = 0
}
@MainActor
struct S {
  nonisolated var s = 0
}
<source>:3:3: error: 'nonisolated' cannot be applied to mutable stored properties
 1 | @MainActor
 2 | final class C {
 3 |   nonisolated var c = 0
   |   |               `- note: convert 'c' to a 'let' constant or consider declaring it 'nonisolated(unsafe)' if manually managing concurrency safety
   |   `- error: 'nonisolated' cannot be applied to mutable stored properties
 4 | }
 5 | actor A {

<source>:6:3: error: 'nonisolated' cannot be applied to mutable stored properties
 4 | }
 5 | actor A {
 6 |   nonisolated var a = 0
   |   |               `- note: convert 'a' to a 'let' constant or consider declaring it 'nonisolated(unsafe)' if manually managing concurrency safety
   |   `- error: 'nonisolated' cannot be applied to mutable stored properties
 7 | }
 8 | @MainActor

Expected behavior

'nonisolated' cannot be applied to mutable stored properties

Yes it can — see s. The message needs to be more specific.

Environment

Swift version 6.4-dev (f4c024ed196fc27)

Additional information

No response

コントリビューターガイド