3 /* cycles without inheritance */
10 const int A
= self
::C
;
11 const int B
= self
::A
;
12 const int C
= self
::B
;
16 const int A
= D
::X + Z
::L
;
17 const int B
= self
::A
;
19 const int W
= self
::WW
;
20 const int WW
= Z
::L + Z
::Y
;
22 const int C_SELF
= self
::C_SELF
;
23 const int C_SELF2
= C
::C_SELF2
;
35 /* cycles with inheritance */
40 class CF
extends CE
{}
42 /* Same constant name but no cycle */
43 class C_OK
{ const int A
= 42; }
44 class D_OK
{ const int A
= C_OK
::A
; } // No error here
46 /* Indirect cycle: we report only in E_KO, not in F_OK */
48 const int A
= E_KO
::B
; // Error here
49 const int B
= E_KO
::A
; // Error here
53 const int A
= E_KO
::A
; // No error here.