xref: /llvm-project/flang/test/Semantics/resolve117.f90 (revision 2216c4c6a4e29a945af75f02b9a733ac5b016ed7)
1*2216c4c6SPeter Klausler! RUN: %python %S/test_errors.py %s %flang_fc1
2*2216c4c6SPeter Klausler! Test name conflicts with type-bound generics
3*2216c4c6SPeter Klauslermodule m
4*2216c4c6SPeter Klausler  type base1(k)
5*2216c4c6SPeter Klausler    integer, kind :: k = 4
6*2216c4c6SPeter Klausler    real x
7*2216c4c6SPeter Klausler   contains
8*2216c4c6SPeter Klausler    procedure, nopass :: tbp => sub
9*2216c4c6SPeter Klausler    generic :: gen => tbp
10*2216c4c6SPeter Klausler  end type
11*2216c4c6SPeter Klausler  type, extends(base1) :: ext1
12*2216c4c6SPeter Klausler   contains
13*2216c4c6SPeter Klausler    procedure, nopass :: sub
14*2216c4c6SPeter Klausler    !ERROR: Type parameter, component, or procedure binding 'base1' already defined in this type
15*2216c4c6SPeter Klausler    generic :: base1 => sub
16*2216c4c6SPeter Klausler    !ERROR: Type bound generic procedure 'k' may not have the same name as a non-generic symbol inherited from an ancestor type
17*2216c4c6SPeter Klausler    generic :: k => sub
18*2216c4c6SPeter Klausler    !ERROR: Type bound generic procedure 'x' may not have the same name as a non-generic symbol inherited from an ancestor type
19*2216c4c6SPeter Klausler    generic :: x => sub
20*2216c4c6SPeter Klausler    !ERROR: Type bound generic procedure 'tbp' may not have the same name as a non-generic symbol inherited from an ancestor type
21*2216c4c6SPeter Klausler    generic :: tbp => sub
22*2216c4c6SPeter Klausler    generic :: gen => sub ! ok
23*2216c4c6SPeter Klausler  end type
24*2216c4c6SPeter Klausler contains
25*2216c4c6SPeter Klausler  subroutine sub
26*2216c4c6SPeter Klausler  end
27*2216c4c6SPeter Klauslerend
28