File: 038_continue_recursive_closing_for_optionals.txtar

package info (click to toggle)
golang-github-cue-lang-cue 0.14.2-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 19,644 kB
  • sloc: makefile: 20; sh: 15
file content (117 lines) | stat: -rw-r--r-- 1,761 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
#name: continue recursive closing for optionals
#evalFull
-- in.cue --
#S: {
	[string]: {a: int}
}
a: #S & {
	v: {b: int}
}
-- out/def --
#S: {
	[string]: {
		a: int
	}
}
a: #S & {
	v: {
		b: int
	}
}
-- out/legacy-debug --
<0>{#S: <1>{[]: <2>(_: string)-><3>C{a: int}, }, a: <4>{[]: <5>(_: string)-><6>C{a: int}, v: _|_(int:field "b" not allowed in closed struct)}}
-- out/compile --
--- in.cue
{
  #S: {
    [string]: {
      a: int
    }
  }
  a: (〈0;#S〉 & {
    v: {
      b: int
    }
  })
}
-- out/eval/stats --
Leaks:  0
Freed:  6
Reused: 2
Allocs: 4
Retain: 0

Unifications: 6
Conjuncts:    9
Disjuncts:    6
-- out/evalalpha --
Errors:
a.v.b: field not allowed:
    ./in.cue:5:6

Result:
(_|_){
  // [eval]
  #S: (#struct){
  }
  a: (_|_){
    // [eval]
    v: (_|_){
      // [eval]
      b: (_|_){
        // [eval] a.v.b: field not allowed:
        //     ./in.cue:5:6
      }
      a: (int){ int }
    }
  }
}
-- diff/-out/evalalpha<==>+out/eval --
diff old new
--- old
+++ new
@@ -1,7 +1,5 @@
 Errors:
 a.v.b: field not allowed:
-    ./in.cue:2:12
-    ./in.cue:4:4
     ./in.cue:5:6
 
 Result:
@@ -15,8 +13,6 @@
       // [eval]
       b: (_|_){
         // [eval] a.v.b: field not allowed:
-        //     ./in.cue:2:12
-        //     ./in.cue:4:4
         //     ./in.cue:5:6
       }
       a: (int){ int }
-- diff/todo/p2 --
Missing positions.
-- out/eval --
Errors:
a.v.b: field not allowed:
    ./in.cue:2:12
    ./in.cue:4:4
    ./in.cue:5:6

Result:
(_|_){
  // [eval]
  #S: (#struct){
  }
  a: (_|_){
    // [eval]
    v: (_|_){
      // [eval]
      b: (_|_){
        // [eval] a.v.b: field not allowed:
        //     ./in.cue:2:12
        //     ./in.cue:4:4
        //     ./in.cue:5:6
      }
      a: (int){ int }
    }
  }
}