This rule looks like a trick to allow both in a single rule:
new Class1<...>();
new Class1.Class2<...>(); // Where Class2 is a static inner class
The allowed expression: new Class1<Integer>.Class2<Integer>();
will never compile in Java since:
The member type Class1.Class2 cannot be qualified with a parameterized type, since it is static. Remove arguments from qualifying type Class1