! RUN: %python %S/test_modfile.py %s %flang_fc1
! Ensure that m2.mod explicitly USEs a generic interface from m1
! so it can utilize its shadowed derived type.
module m1
implicit none
type :: xyz
integer :: n
end type
interface xyz
module procedure xzy
end interface
contains
function xzy(j) result(res)
integer, intent(in) :: j
type(xyz) :: res
res%n = j
end function
end module
!Expect: m1.mod
!module m1
!type::xyz
!integer(4)::n
!end type
!interface xyz
!procedure::xzy
!end interface
!contains
!function xzy(j) result(res)
!integer(4),intent(in)::j
!type(xyz)::res
!end
!end
module m2
implicit none
contains
function foo(j) result(res)
use :: m1, only: xyz
integer, intent(in) :: j
type(xyz) :: res
res = xyz(j)
end function
end module
!Expect: m2.mod
!module m2
!contains
!function foo(j) result(res)
!use m1,only:xyz
!integer(4),intent(in)::j
!type(xyz)::res
!end
!end