The following program is valid as F2003 has:
"188.8.131.52 Interface block
"A generic name may be the same as a derived-type name, in which case all of the procedures in the interface block shall be functions."
Currently, it is rejected with:
Error: DERIVED attribute of 'foo' conflicts with PROCEDURE attribute at (1)
integer :: bar
module procedure constructor
type(foo) function constructor()
This is going to be big trouble to fix.
I do not know how we can easily distinguish between two symbols with the same name and different flavours.
Maybe derived types should not be in the symtree but in one of their own?
Same as the other.
*** This bug has been marked as a duplicate of bug 39427 ***