5 ! Contributed by Fran Martinez Fadrique
11 generic
:: operator(==) => t_equal_i
, i_equal_t
! OK
12 procedure
, private
:: t_equal_i
13 procedure
, private
, pass(t
) :: i_equal_t
16 function t_equal_i (t
, i
) result(res
)
17 class(t_test
), intent(in
) :: t
18 integer, intent(in
) :: i
21 print *, 't_equal_i', t
%i
, i
23 end function t_equal_i
25 function i_equal_t (i
, t
) result(res
)
26 integer, intent(in
) :: i
27 class(t_test
), intent(in
) :: t
30 print *, 'i_equal_t', i
, t
%i
32 end function i_equal_t
39 generic
:: gen
=> t2_equal_i
, i_equal_t2
! { dg-error "'t2_equal_i' and 'i_equal_t2' for GENERIC 'gen' at .1. are ambiguous" }
40 procedure
, private
:: t2_equal_i
41 procedure
, private
, pass(t
) :: i_equal_t2
44 function t2_equal_i (t
, i
) result(res
)
45 class(t2_test
), intent(in
) :: t
46 integer, intent(in
) :: i
49 print *, 't2_equal_i', t
%i
, i
51 end function t2_equal_i
53 function i_equal_t2 (i
, t
) result(res
)
54 integer, intent(in
) :: i
55 class(t2_test
), intent(in
) :: t
58 print *, 'i_equal_t2', i
, t
%i
60 end function i_equal_t2