-
Notifications
You must be signed in to change notification settings - Fork 10.5k
Use new-style _Nullable keywords in obj-c header #260
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Use the keywords `_Nullable`, `_Nonnull`, and `_Null_unspecified` instead of the older compatibility forms `__nullable`, `__nonnull`, and `__null_unspecified`. Part of rdar://problem/23614638
This would reduce compatibility with older toolchains. |
Which ones are relevant to working with swift 2.2? -Chris
|
I'm just wondering if we'd have bootstrapping problems by doing that. |
I don't think that is a concern. No released public clang supported the __nullable forms, and Swift includes its own drop of clang with it, that does support the new forms. If there was a compatibility issue, a few -D_Nullable=__nullable flags seem like they could be used to work around it. That said, I'd like @jrose-apple to review this when it isn't the weekend :-) |
Ok, then that sounds good to me. I haven't looked at the build system yet, but as long as it uses the built clang instead of the bootstrap compiler, that should be fine. (see https://llvm.org/bugs/show_bug.cgi?id=25753 for why I bring this up). |
Xcode 6.3 used the double-underscored forms, and we changed the syntax in Xcode 7. That's why I'd been holding off on making this change. |
That said, this only affects code using the generated (Objective-)C headers, and the double-underscored keywords will cause problems on Linux. Merging. |
Use new-style _Nullable keywords in obj-c header
cmake parity updates
cmake parity updates Signed-off-by: Daniel A. Steffen <[email protected]>
Update BlueSocket commit and config to build against Swift 4.2
Use the keywords
_Nullable
,_Nonnull
, and_Null_unspecified
instead of the older compatibility forms
__nullable
,__nonnull
, and__null_unspecified
.Part of rdar://problem/23614638