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 @@ -1389,6 +1389,11 @@ class TypeContextDescriptorFlags : public FlagSet<uint16_t> {
1389
1389
1390
1390
// Type-specific flags:
1391
1391
1392
+ // / Set if the class is an actor.
1393
+ // /
1394
+ // / Only meaningful for class descriptors.
1395
+ Class_IsActor = 7 ,
1396
+
1392
1397
// / Set if the class is a default actor class. Note that this is
1393
1398
// / based on the best knowledge available to the class; actor
1394
1399
// / classes with resilient superclassess might be default actors
@@ -1479,6 +1484,9 @@ class TypeContextDescriptorFlags : public FlagSet<uint16_t> {
1479
1484
FLAGSET_DEFINE_FLAG_ACCESSORS (Class_IsDefaultActor,
1480
1485
class_isDefaultActor,
1481
1486
class_setIsDefaultActor)
1487
+ FLAGSET_DEFINE_FLAG_ACCESSORS (Class_IsActor,
1488
+ class_isActor,
1489
+ class_setIsActor)
1482
1490
1483
1491
FLAGSET_DEFINE_FIELD_ACCESSORS (Class_ResilientSuperclassReferenceKind,
1484
1492
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