One more edge case I found was in the creation of a two dimensional array and initializing the arrays in the two dimensional array
So from Jeffrey's response - https://docs.oracle.com/javase/specs/jls/se7/html/jls-10.html#jls-10.6 - "An array initializer may be specified in a declaration, or as part of an array creation expression", the below code should appear to work because the the array initializer is being used to initialize the array
int[][] grid = new int[3][3];
grid[0] = {1,1,1};
However this didn't work(compilation error), and I had to rewrite this as
grid[0] = new int[]{1,1,1};