(j3.2006) Parent component of extension of abstract type
Thu Nov 12 17:01:27 EST 2015
I raised essentially the same issue a while back (2-3 years ago). The short answer is ?Yes - this is what was intended.?
One argument is that if you could access such a parent, then you would be able to invoke methods on it. E.g., what if there was a deferred method? And if you don?t have any deferred methods, why does it need to be abstract?
But ? I agree that it would be nice if one could access the non-deferred items in an abstract parent. In practice, I?ve found the situation where I miss the ability is extremely rare.
> On Nov 12, 2015, at 4:32 PM, Van Snyder <Van.Snyder at jpl.nasa.gov> wrote:
> It seems a bit strange that I can't access the parent component of an
> object of a type that is an extension of an abstract type, but I can
> access components of the parent component. Is this what we intended?
> program P
> type, abstract :: T0
> integer :: N = 42
> end type T0
> type, extends(t0) :: T1
> end type T1
> type(t1) :: V1, V2
> print '(a,i0)', 'V1 ', v1
> print '(a,i0)', 'V1%T0 ', v1%t0 ! Prohibited
> print '(a,i0)', 'V1%T0%n ', v1%t0%n
> v2 = v1
> v2%t0 = v1%t0 ! Prohibited
> v2%t0%n = v1%t0%n
> end program P
> J3 mailing list
> J3 at mailman.j3-fortran.org
Thomas Clune, Ph. D. <Thomas.L.Clune at nasa.gov>
Software Infrastructure Team Lead
Global Modeling and Assimilation Office, Code 610.1
MS 610.1 B33-C128
Greenbelt, MD 20771
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the J3