swiftlang/swift

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

Open

#88.709 aberto em 28 de abr. de 2026

Ver no GitHub
 (2 comments) (0 reactions) (1 assignee)Swift (10.719 forks)batch import
actor isolationcompilerconcurrencydiagnostics qualitygood first issueswift 6.3type checker

Métricas do repositório

Stars
 (69.989 stars)
Métricas de merge de PR
 (Mesclagem média 7d 6h) (556 fundiu PRs em 30d)

Description

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

Guia do colaborador