! RUN: %python %S/test_errors.py %s %flang_fc1 module m1 type :: t1 sequence real :: x end type type :: t2 sequence real :: x end type type :: t3 real :: x end type type :: t4 real, private :: x end type contains subroutine s1a(x) type(t1), intent(in) :: x end subroutine s2a(x) type(t2), intent(in) :: x end subroutine s3a(x) type(t3), intent(in) :: x end subroutine s4a(x) type(t4), intent(in) :: x end end module m2 type t10 integer n contains procedure :: f generic:: operator(+) => f end type contains elemental type(t10) function f(x,y) class(t10), intent(in) :: x, y f%n = x%n + y%n end end module m3 use m2, only: rt10 => t10 end program test use m1, only: s1a, s2a, s3a, s4a use m2, only: t10 use m3, only: rt10 ! alias for t10, ensure no distinguishability error type :: t1 sequence integer :: x ! distinct type end type type :: t2 sequence real :: x end type type :: t3 ! no SEQUENCE real :: x end type type :: t4 real :: x ! not PRIVATE end type interface distinguishable1 procedure :: s1a, s1b end interface interface distinguishable2 procedure :: s1a, s1b end interface interface distinguishable3 procedure :: s1a, s1b end interface !ERROR: Generic 'indistinguishable' may not have specific procedures 's2b' and 's2a' as their interfaces are not distinguishable interface indistinguishable procedure :: s2a, s2b end interface contains subroutine s1b(x) type(t1), intent(in) :: x end subroutine s2b(x) type(t2), intent(in) :: x end subroutine s3b(x) type(t3), intent(in) :: x end subroutine s4b(x) type(t4), intent(in) :: x end end