This is true for all primitive type arrays, isn't it?  Then perhaps the implementation for Array<T> should be hand coded, while the implementation for primitive type arrays should use this generated code with the null check portion removed?