J Giles wrote:
> function foo
> real foo
> ...
> end function foo
>
> A reference to this would not need parenthesis. Indeed, this cleans
> up a peculiarity of Fortran syntax (empty parenthesis). No other
> class of agrumentless object needs empty parenthesis. A scalar
> doesn't need them. A subroutine which takes no arguments
> doesn't need parenthesis. Indeed, I'd like to see empty parenthesis
> made illegal. I agree that we can't make them illegal until IMPLICIT
> is gone. But we can take steps along that road.
It's not enough to make IMPLICIT illegal. It's also necessary to make
implicit interfaces illegal. Consider:
call sub ( foo )
Should this pass "foo" or "foo()"?
It's obvious if "sub" has explicit interface, but knowing the type of
"foo" isn't enough.
It may also be necessary to revise the generic resolution rules to
take procedure-ness into account (but maybe that's orthogonal).
Best regards,
Van Snyder
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|