(j3.2006) Abstract types and type-bound procedures

Malcolm Cohen malcolm
Thu Nov 25 18:56:32 EST 2010


Tobias Burnus writes:
>    CALL polymorphic%abstract%tbp()
>
>where "polymorphic" is some polymorphic type,
> which extends "abstract"

I think you mean a polymorphic object of some type that extends "abstract".

>and "tbp" is a non-deferred type-bound procedure of "abstract".
>
>Is this valid or not?

Not.

> It seems to be valid if I read the following correctly. (Quotes from F2008, 
> N1830.)
>
>R1220 call-stmt is CALL procedure-designator [ ( [ actual-arg-spec-list ] ) ]
>R1221 procedure-designator is procedure-name
>                            or proc-component-ref
>                            or data-ref % binding-name
>
>R611 data-ref is part-ref [ % part-ref ] ...
>R612 part-ref is part-name [ ( section-subscript-list ) ] [ image-selector ]
>
>C611 (R611) If the rightmost part-name is of abstract type, data-ref shall be
>polymorphic.

And you even quoted the constraint that makes it invalid!

In your example, the "data-ref" is "polymorphic%abstract".
You said that "abstract" was of abstract type.
And "polymorphic%abstract" certainly is not polymorphic - you have selected the 
bit that is of type "abstract".

Cheers,
-- 
................................Malcolm Cohen, Nihon NAG, Tokyo. 




More information about the J3 mailing list