This is an important feature to start gradually displacing code in C code bases with Swift, so I’m +1 almost no matter what. I do have two questions still:
In Type Checking, I’m noticing that we do bridge @convention(c) “closures” to C function types, but there’s no mention of @convention(block) bridging to blocks. Can Swift implement C functions that have block arguments?
In Type Checking, we specify that Int bridges. In the C → Swift direction, size_t bridges to Int. However, in the compatibility header section, we say that Int is emitted as ptrdiff_t and UInt is emitted as size_t. Does this mean the C declaration void foo(size_t x) is imported as func foo(_ x: Int) but must be implemented as func foo(_ x: UInt)?