...
1# TODO(fmt): first line indented when it should not be: cuelang.org/issue/722
2
3-- in.cue --
4 // cycle is a structural cycle
5cycle: a: cycle
6
7// reference to outside structural cycle
8r1a: cycle | int
9r1b: int | cycle
10
11r2a: cycle | 1
12r2b: 1 | cycle
13
14r3a: cycle | null
15r3b: null | cycle
16
17r4a: cycle | {}
18r4b: {} | cycle
19
20r5a: cycle | []
21r5b: [] | cycle
22
23// reference to ancestor node
24s1a: x: s1a | int
25s1b: x: int | s1b
26
27s2a: x: s2a | 1
28s2b: x: 1 | s2b
29
30s3a: x: s3a | null
31s3b: x: null | s3b
32
33s4a: x: s4a | {}
34s4b: x: {} | s4b
35
36s5a: x: s5a | []
37s5b: x: [] | s5b
38-- out/eval/stats --
39Leaks: 0
40Freed: 73
41Reused: 68
42Allocs: 5
43Retain: 0
44
45Unifications: 33
46Conjuncts: 73
47Disjuncts: 73
48-- out/eval --
49Errors:
50cycle.a: structural cycle
51
52Result:
53(_|_){
54 // [structural cycle]
55 cycle: (_|_){
56 // [structural cycle]
57 a: (_|_){
58 // [structural cycle] cycle.a: structural cycle
59 }
60 }
61 r1a: (int){ int }
62 r1b: (int){ int }
63 r2a: (int){ 1 }
64 r2b: (int){ 1 }
65 r3a: (null){ null }
66 r3b: (null){ null }
67 r4a: (struct){
68 }
69 r4b: (struct){
70 }
71 r5a: (#list){
72 }
73 r5b: (#list){
74 }
75 s1a: (struct){
76 x: (int){ int }
77 }
78 s1b: (struct){
79 x: (int){ int }
80 }
81 s2a: (struct){
82 x: (int){ 1 }
83 }
84 s2b: (struct){
85 x: (int){ 1 }
86 }
87 s3a: (struct){
88 x: (null){ null }
89 }
90 s3b: (struct){
91 x: (null){ null }
92 }
93 s4a: (struct){
94 x: (struct){
95 }
96 }
97 s4b: (struct){
98 x: (struct){
99 }
100 }
101 s5a: (struct){
102 x: (#list){
103 }
104 }
105 s5b: (struct){
106 x: (#list){
107 }
108 }
109}
110-- out/compile --
111--- in.cue
112{
113 cycle: {
114 a: 〈1;cycle〉
115 }
116 r1a: (〈0;cycle〉|int)
117 r1b: (int|〈0;cycle〉)
118 r2a: (〈0;cycle〉|1)
119 r2b: (1|〈0;cycle〉)
120 r3a: (〈0;cycle〉|null)
121 r3b: (null|〈0;cycle〉)
122 r4a: (〈0;cycle〉|{})
123 r4b: ({}|〈0;cycle〉)
124 r5a: (〈0;cycle〉|[])
125 r5b: ([]|〈0;cycle〉)
126 s1a: {
127 x: (〈1;s1a〉|int)
128 }
129 s1b: {
130 x: (int|〈1;s1b〉)
131 }
132 s2a: {
133 x: (〈1;s2a〉|1)
134 }
135 s2b: {
136 x: (1|〈1;s2b〉)
137 }
138 s3a: {
139 x: (〈1;s3a〉|null)
140 }
141 s3b: {
142 x: (null|〈1;s3b〉)
143 }
144 s4a: {
145 x: (〈1;s4a〉|{})
146 }
147 s4b: {
148 x: ({}|〈1;s4b〉)
149 }
150 s5a: {
151 x: (〈1;s5a〉|[])
152 }
153 s5b: {
154 x: ([]|〈1;s5b〉)
155 }
156}
View as plain text