blob: b7b0ce7db6b0e1c9236145d285699bf9af1ebaf7 [file] [log] [blame] [edit]
! RUN: %python %S/test_errors.py %s %flang_fc1
! Test name conflicts with type-bound generics
module m
type base1(k)
integer, kind :: k = 4
real x
contains
procedure, nopass :: tbp => sub1
generic :: gen1 => tbp
generic :: gen2 => tbp
end type
type, extends(base1) :: ext1
contains
procedure, nopass :: sub1, sub2
!ERROR: Type parameter, component, or procedure binding 'base1' already defined in this type
generic :: base1 => sub1
!ERROR: Type bound generic procedure 'k' may not have the same name as a non-generic symbol inherited from an ancestor type
generic :: k => sub1
!ERROR: Type bound generic procedure 'x' may not have the same name as a non-generic symbol inherited from an ancestor type
generic :: x => sub1
!ERROR: Type bound generic procedure 'tbp' may not have the same name as a non-generic symbol inherited from an ancestor type
generic :: tbp => sub1
generic :: gen1 => sub1 ! ok
!ERROR: Generic 'gen2' may not have specific procedures 'tbp' and 'sub2' as their interfaces are not distinguishable
generic :: gen2 => sub2
end type
contains
subroutine sub1
end
subroutine sub2
end
end