! { dg-do compile }
! { dg-require-visibility "" }
!
! PR fortran/47399
!
! Contributed by Wolfgang Kilian.
!

module mytypes
   implicit none
   private
   public :: mytype, get_i

   integer, save :: i_priv = 13
   type :: mytype
      integer :: dummy
    contains
      procedure, nopass :: i => get_i
   end type mytype
 contains
   pure function get_i () result (i)
     integer :: i
     i = i_priv
   end function get_i
end module mytypes

subroutine test()
   use mytypes
   implicit none

   type(mytype) :: a
   type(mytype), parameter :: a_const = mytype (0)
   integer, dimension (get_i()) :: x            ! #1
   integer, dimension (a%i()) :: y              ! #2
   integer, dimension (a_const%i()) :: z        ! #3

   if (size (x) /= 13 .or. size(y) /= 13 .or. size(z) /= 13) STOP 1
!   print *, size (x), size(y), size(z)
end subroutine test

call test()
end
