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
42904290 return FieldOffsetVectorOffset;
42914291 }
42924292
4293+ bool isActor () const {
4294+ return this ->getTypeContextDescriptorFlags ().class_isActor ();
4295+ }
4296+
42934297 bool isDefaultActor () const {
42944298 return this ->getTypeContextDescriptorFlags ().class_isDefaultActor ();
42954299 }
Original file line number Diff line number Diff line change @@ -1395,6 +1395,11 @@ class TypeContextDescriptorFlags : public FlagSet<uint16_t> {
13951395
13961396 // Type-specific flags:
13971397
1398+ // / Set if the class is an actor.
1399+ // /
1400+ // / Only meaningful for class descriptors.
1401+ Class_IsActor = 7 ,
1402+
13981403 // / Set if the class is a default actor class. Note that this is
13991404 // / based on the best knowledge available to the class; actor
14001405 // / classes with resilient superclassess might be default actors
@@ -1485,6 +1490,9 @@ class TypeContextDescriptorFlags : public FlagSet<uint16_t> {
14851490 FLAGSET_DEFINE_FLAG_ACCESSORS (Class_IsDefaultActor,
14861491 class_isDefaultActor,
14871492 class_setIsDefaultActor)
1493+ FLAGSET_DEFINE_FLAG_ACCESSORS (Class_IsActor,
1494+ class_isActor,
1495+ class_setIsActor)
14881496
14891497 FLAGSET_DEFINE_FIELD_ACCESSORS (Class_ResilientSuperclassReferenceKind,
14901498 Class_ResilientSuperclassReferenceKind_width,
Original file line number Diff line number Diff line change @@ -1620,6 +1620,9 @@ namespace {
16201620 if (MetadataLayout->hasResilientSuperclass ())
16211621 flags.class_setHasResilientSuperclass (true );
16221622
1623+ if (getType ()->isActor ())
1624+ flags.class_setIsActor (true );
1625+
16231626 if (getType ()->isDefaultActor (IGM.getSwiftModule (),
16241627 ResilienceExpansion::Maximal))
16251628 flags.class_setIsDefaultActor (true );
Original file line number Diff line number Diff line change 44// REQUIRES: concurrency
55
66// 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 }},
1010
1111import resilient_actor
1212
You can’t perform that action at this time.
0 commit comments