File tree Expand file tree Collapse file tree 4 files changed +18
-3
lines changed Expand file tree Collapse file tree 4 files changed +18
-3
lines changed Original file line number Diff line number Diff line change @@ -4290,6 +4290,10 @@ class TargetClassDescriptor final
4290
4290
return FieldOffsetVectorOffset;
4291
4291
}
4292
4292
4293
+ bool isActor () const {
4294
+ return this ->getTypeContextDescriptorFlags ().class_isActor ();
4295
+ }
4296
+
4293
4297
bool isDefaultActor () const {
4294
4298
return this ->getTypeContextDescriptorFlags ().class_isDefaultActor ();
4295
4299
}
Original file line number Diff line number Diff line change @@ -1395,6 +1395,11 @@ class TypeContextDescriptorFlags : public FlagSet<uint16_t> {
1395
1395
1396
1396
// Type-specific flags:
1397
1397
1398
+ // / Set if the class is an actor.
1399
+ // /
1400
+ // / Only meaningful for class descriptors.
1401
+ Class_IsActor = 7 ,
1402
+
1398
1403
// / Set if the class is a default actor class. Note that this is
1399
1404
// / based on the best knowledge available to the class; actor
1400
1405
// / classes with resilient superclassess might be default actors
@@ -1485,6 +1490,9 @@ class TypeContextDescriptorFlags : public FlagSet<uint16_t> {
1485
1490
FLAGSET_DEFINE_FLAG_ACCESSORS (Class_IsDefaultActor,
1486
1491
class_isDefaultActor,
1487
1492
class_setIsDefaultActor)
1493
+ FLAGSET_DEFINE_FLAG_ACCESSORS (Class_IsActor,
1494
+ class_isActor,
1495
+ class_setIsActor)
1488
1496
1489
1497
FLAGSET_DEFINE_FIELD_ACCESSORS (Class_ResilientSuperclassReferenceKind,
1490
1498
Class_ResilientSuperclassReferenceKind_width,
Original file line number Diff line number Diff line change @@ -1620,6 +1620,9 @@ namespace {
1620
1620
if (MetadataLayout->hasResilientSuperclass ())
1621
1621
flags.class_setHasResilientSuperclass (true );
1622
1622
1623
+ if (getType ()->isActor ())
1624
+ flags.class_setIsActor (true );
1625
+
1623
1626
if (getType ()->isDefaultActor (IGM.getSwiftModule (),
1624
1627
ResilienceExpansion::Maximal))
1625
1628
flags.class_setIsDefaultActor (true );
Original file line number Diff line number Diff line change 4
4
// REQUIRES: concurrency
5
5
6
6
// CHECK: @"$s13default_actor1ACMn" = hidden constant
7
- // 0x81000050: 0x01000000 IsDefaultActor
8
- // 0x81010050 : the same, but using a singleton metadata initialization
9
- // CHECK-SAME: i32 {{-2130706352|-2130640816 }},
7
+ // 0x81800050: 0x01800000 IsActor + IsDefaultActor
8
+ // 0x81810050 : the same, but using a singleton metadata initialization
9
+ // CHECK-SAME: i32 {{-2122317744|-2122252208 }},
10
10
11
11
import resilient_actor
12
12
You can’t perform that action at this time.
0 commit comments