xref: /llvm-project/flang/test/Semantics/generic12.f90 (revision ecf264d3b4eebcfcc3bd89ceac090b82fd5e75c7)
1! RUN: %python %S/test_errors.py %s %flang_fc1
2module m
3  type t
4   contains
5    procedure :: tweedledee
6    generic :: operator(.ga.) => tweedledee
7    generic, private :: operator(.gb.) => tweedledee
8  end type
9  interface operator(.gc.)
10    module procedure tweedledum
11  end interface
12 contains
13  integer function tweedledee(x,y)
14    class(t), intent(in) :: x, y
15    tweedledee = 1
16  end
17  integer function tweedledum(x,y)
18    class(t), intent(in) :: x, y
19    tweedledum = 2
20  end
21end
22
23module badDueToAccessibility
24  !ERROR: Generic 'OPERATOR(.ga.)' may not have specific procedures 'tweedledum' and 't%tweedledee' as their interfaces are not distinguishable
25  use m, operator(.ga.) => operator(.gc.)
26end
27
28module goodDueToInaccessibility
29  use m, operator(.gb.) => operator(.gc.)
30end
31