Last year Apple added new qualifiers to pointer types: _Nullable, _Nonnull, and _Null_unspecified. This patch extends that to array types used in function declarations, which should have always been supported since they immediately decay to pointers.
void test(int ints[_Nonnull],
void *ptrs[_Nullable],
void **nestedPtrs[_Nullable],
void ** _Nullable reference);Follow-up work:
- Figure out what to do with -Wnullability-completeness
- Figure out how this affects #pragma clang assume_nonnull. Most likely the best answer is a new warning.
Part of rdar://problem/25846421
I think this should be handled by UnwrapTypeForDebugInfo instead of here; this is after all just a type sugar node.