File tree Expand file tree Collapse file tree 2 files changed +14
-4
lines changed Expand file tree Collapse file tree 2 files changed +14
-4
lines changed Original file line number Diff line number Diff line change @@ -6096,10 +6096,9 @@ computeDefaultInferredActorIsolation(ValueDecl *value) {
6096
6096
sendableConformanceRequiresNonisolated (nominalTypeDecl))
6097
6097
return { };
6098
6098
6099
- // FIXME: deinit should be implicitly MainActor too.
6100
6099
if (isa<TypeDecl>(value) || isa<ExtensionDecl>(value) ||
6101
- isa<AbstractStorageDecl>(value) || isa<FuncDecl>(value) ||
6102
- isa<ConstructorDecl >(value)) {
6100
+ isa<AbstractStorageDecl>(value) ||
6101
+ isa<AbstractFunctionDecl >(value)) {
6103
6102
// Preconcurrency here is used to stage the diagnostics
6104
6103
// when users select `@MainActor` default isolation with
6105
6104
// non-strict concurrency modes (pre Swift 6).
Original file line number Diff line number Diff line change 8
8
class Klass {
9
9
// Implicit deinit
10
10
// CHECK: // Klass.deinit
11
- // CHECK-NEXT: // Isolation: unspecified
11
+ // CHECK-NEXT: // Isolation: global_actor. type: MainActor
12
12
// CHECK-NEXT: sil hidden [ossa] @$s16assume_mainactor5KlassCfd : $@convention(method) (@guaranteed Klass) -> @owned Builtin.NativeObject {
13
13
14
14
// Implicit deallocating deinit
15
15
// CHECK: // Klass.__deallocating_deinit
16
16
// CHECK-NEXT: // Isolation: nonisolated
17
17
// CHECK-NEXT: sil hidden [ossa] @$s16assume_mainactor5KlassCfD : $@convention(method) (@owned Klass) -> () {
18
+ // CHECK: swift_task_deinitOnExecutor
18
19
19
20
// Implicit allocating init
20
21
// CHECK: // Klass.__allocating_init()
@@ -66,6 +67,16 @@ struct NonIsolatedStructContainingKlass {
66
67
// CHECK-NEXT: sil hidden [ossa] @$s16assume_mainactor32NonIsolatedStructContainingKlassVACycfC : $@convention(method) (@thin NonIsolatedStructContainingKlass.Type) -> @owned NonIsolatedStructContainingKlass {
67
68
}
68
69
70
+ struct NonCopyableStruct : ~ Copyable {
71
+ var x : Int
72
+ var y : Int
73
+
74
+ // CHECK: NonCopyableStruct.deinit
75
+ // CHECK-NEXT: Isolation: nonisolated
76
+ deinit {
77
+ }
78
+ }
79
+
69
80
@globalActor
70
81
actor CustomActor {
71
82
static nonisolated let shared = CustomActor ( )
You can’t perform that action at this time.
0 commit comments