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.