On Sat, Apr 09, 2016 at 06:51:50PM +0200, Dominique d'Humières wrote: > > > > > It is valid syntax because of > > > > "An empty sequence forms a zero-sized rank-one array." > > > > It seems that J3 saw the error in their ways as (/ /) is clearly > > an empty array constructor, and fixed the possibility of creating > > a typeless zero-sized, rank-one array. > > This is exactly the point of the patch! typeless zero-sized, rank-one array > are not allowed, while typed zero-sized, rank-one array are. >
And, you're missing the point that your patch is suggesting that one use (/ INTEGER :: /), which is clearly invalid Fortran 95. > >>> Adding any text referring > >>> to type-spec is wrong. > >>> > >> > >> Are you considering (/ ( i, i = 1, 0 ) /) as non empty? > >> > > > > It is a zero-sized rank-one array with type INTEGER. > > That is not the answer to the question. I answered the question that was asked. The crucial point is that (/ (i,i=1,0) /) as a type! > Is (/ ( i, i = 1, 0 ) /) non empty, yes or no? That wasn't that originally asked question. > IMO "empty array constructor" is ambiguous. Yes, it is. That is why J3 made changes in Fortran 2003. -- Steve