implemented parsing and typechecking for @actorIndependent(unsafe)

[broken] first impl of @actorIndependent in the type checker.

[broken] fixed mistake in my parsing code wrt invalid source range

[broken] found another spot where ActorIndependent needs custom handling

[broken] incomplete set of @actorIndependent(unsafe) tests

updates to ActorIndependentUnsafe

[fixed] add FIXME plus simple handling of IndependentUnsafe context

finished @actorIndependent(unsafe) regression tests

added wip serialization / deserialization test

focus test to just one actor class

round-trip serialize/deserialize test for @actorIndependent

serialize -> deserialize -> serialize -> compare to original

most of doug's comments

addressed robert's comments

fix printing bug; add module printing to regression test

[nfc] update comment for ActorIsolation::IndependentUnsafe
This commit is contained in:
Kavon Farvardin
2020-10-12 18:44:37 -07:00
parent 849e9d660f
commit 34d22105b8
18 changed files with 425 additions and 31 deletions

View File

@@ -56,7 +56,7 @@ const uint16_t SWIFTMODULE_VERSION_MAJOR = 0;
/// describe what change you made. The content of this comment isn't important;
/// it just ensures a conflict if two people change the module format.
/// Don't worry about adhering to the 80-column limit for this line.
const uint16_t SWIFTMODULE_VERSION_MINOR = 582; // sil specialize attribute module parameter
const uint16_t SWIFTMODULE_VERSION_MINOR = 583; // @actorIndependent safe/unsafe attribute
/// A standard hash seed used for all string hashes in a serialized module.
///
@@ -1807,6 +1807,11 @@ namespace decls_block {
BCFixed<2> // inline value
>;
using ActorIndependentDeclAttrLayout = BCRecordLayout<
ActorIndependent_DECL_ATTR,
BCFixed<1> // unsafe flag
>;
using OptimizeDeclAttrLayout = BCRecordLayout<
Optimize_DECL_ATTR,
BCFixed<2> // optimize value