zoecarver
22dd716b73
[cxx-interop] Mark clang-related requests as un-cached.
...
Pointers from clang appear to be unstable in some capacity. My theory is that clang loads one module, then frees its AST when it's done, or maybe just re-allocates the AST at some point. In any case, we cannot cache requests on clang pointers.
This should fix the flakeyness issue that we've been seeing for a while.
2023-03-29 18:17:00 -07:00
zoecarver
a10bf21fcd
[cxx-interop] 'Support' C++ move only types; fix a few bugs in the object model.
...
The implemented object model should now match the object model outlined in the Forward Vision document.
2023-03-20 15:47:22 -07:00
Alex Lorenz
cf0763dc87
[interop] Swift -> C++ -> Swift class type bridging
2023-03-18 19:29:55 -07:00
zoecarver
bcf4977a64
[cxx-interop] Separate CxxRecordSemantics and IsSafeUseOfCxxDecl requests.
2023-03-10 17:39:12 -08:00
zoecarver
3abfcee4c6
[cxx-interop] Don't cache CxxRecordSemanticsRequest.
2022-11-02 15:58:03 -07:00
zoecarver
dc581b9d58
Support foreign reference types when C++ interop is disabled.
2022-10-26 14:50:09 -07:00
Becca Royal-Gordon
ecf0ee65b8
Cache @_objcImpl pointers and diagnose dupes
2022-10-18 17:21:56 -07:00
Becca Royal-Gordon
f2a0ab79c7
Add basic Sema support for @_objcImplementation
...
Does not validate members yet; nor does it emit different metadata.
2022-10-18 17:21:56 -07:00
zoecarver
13b0a5bc37
[nfc] Clang format changes.
2022-07-21 17:34:36 -04:00
zoecarver
74d76e2888
[cxx-interop] Add diagnostics and validation for retain/release function; require all foreign reference types to provide retain release functions or be immortal.
2022-07-21 12:25:21 -04:00
zoecarver
3498ff9765
[cxx-interop] Remove UnsafeLifetimeOperation record semantic kind.
...
This makes "owned" the default kind for records that have custom copy constructors and no pointer-members.
2022-07-18 17:15:15 -04:00
zoecarver
ca5fa9aa9b
[nfc] Clang format changes.
2022-07-18 17:15:15 -04:00
zoecarver
9d1d03124b
[nfc][cxx-interop] Add diagnostics when something cannot be imported.
2022-07-18 17:15:15 -04:00
zoecarver
6acffbbee6
[cxx-interop] Flip the switch: only import safe APIs.
2022-07-18 17:15:15 -04:00
zoecarver
fc3b3a1d71
[cxx-interop] Implement foreign reference types.
...
This is an expiremental feature to allow an attribute, `import_as_ref`, to import a C++ record as a non-reference-counted reference type in Swift.
2021-12-08 15:35:18 +00:00
zoecarver
b8e52a7ad2
[cxx-interop] Lazily import members of Clang namespaces and records via requests.
...
Also adds a ClangImporter request zone and move some requests into it.
2021-10-20 14:52:43 -07:00
zoecarver
0ca8dd364f
[nfc][cxx-interop] Add three requests ClangDirectLookupRequest, CXXNamespaceMemberLookup, and ClangRecordMemberLookup.
...
None of these requests are used, so this is a non-functional change.
2021-10-13 16:31:09 -07:00
zoecarver
d706863a52
[cxx-interop][nfc] Add a ClangImporter request zone.
...
This is just the boilerplate for adding a request zone. I haven't actually added any requrests in this commit.
2021-09-28 17:08:48 -07:00