(j3.2006) Parent component of extension of abstract type

Van Snyder Van.Snyder
Thu Nov 12 17:20:36 EST 2015


On Thu, 2015-11-12 at 22:13 +0000, Bill Long wrote:
> On Nov 12, 2015, at 3: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?
> 
> You?re not allowed to declare an object of an abstract type.  So it
> would seem odd to allow a designator for an object of an abstract
> type. 

According to the definition of type extension, an extension of an
abstract type has a component of abstract type.  But it can't be
accessed as a whole.  But its components can be accessed even if its
name appears in the <data-ref>.

Maybe we should allow to instantiate nonpolymorphic objects of abstract
type, but prohibit invoking deferred type-bound procedures using one as
the <data-ref>.

> Cheers,
> Bill
> 
> > 
> > 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
> > http://mailman.j3-fortran.org/mailman/listinfo/j3
> 
> Bill Long                                                                       longb at cray.com
> Fortran Technical Support  &                                  voice:  651-605-9024
> Bioinformatics Software Development                     fax:  651-605-9142
> Cray Inc./ Cray Plaza, Suite 210/ 380 Jackson St./ St. Paul, MN 55101
> 
> 





More information about the J3 mailing list