...
1-- in.cue --
2domToSub: {
3 foo: [string]: a: *1 | int
4 foo: b: a: 1
5}
6
7// Issue #759
8subToDom: {
9 #maybeString: {ip?: string}
10 something: ip: *"default" | string
11 something: #maybeString
12}
13
14// references to definitions of a disjunction should be resolved and counted
15// as dominator nodes.
16resolveDefaults: {
17 #monitor: {
18 kind: "a"
19 } | {
20 kind: "b"
21 }
22
23 monitor: #monitor
24
25 monitor: kind: "a"
26}
27
28issue781: {
29 #monitor_check: {
30 check_name: string
31 check_interval?: string
32 }
33
34 #monitor_check: {
35 check_type: "nginx_config"
36 } | {
37 check_type: "docker_running"
38 vars: {
39 container_name: string
40 }
41 }
42
43 monitor: {
44 checks: [...#monitor_check]
45 }
46
47 monitor: {
48 checks: [{
49 check_type: "nginx_config"
50 check_name: "nginx_config"
51 }]
52 }
53}
54
55// Issue #801
56// Here the concrete value selects the default from a dominator, after which
57// the dominator becomes an exact match. The exact match should not allow it
58// to be erased, as the exact match is only there because subordinate value
59// was first used to select the default.
60dontEraseDefaultSelection: {
61 rule: _#Rule & {
62 verbs: ["c"]
63 }
64 _#Rule: {
65 verbs: *["a", "b"] | ["c"]
66 }
67}
68-- out/trim --
69== in.cue
70domToSub: {
71 foo: [string]: a: *1 | int
72 foo: b: {}
73}
74
75// Issue #759
76subToDom: {
77 #maybeString: {ip?: string}
78 something: ip: *"default" | string
79 something: #maybeString
80}
81
82// references to definitions of a disjunction should be resolved and counted
83// as dominator nodes.
84resolveDefaults: {
85 #monitor: {
86 kind: "a"
87 } | {
88 kind: "b"
89 }
90
91 monitor: #monitor
92
93 monitor: kind: "a"
94}
95
96issue781: {
97 #monitor_check: {
98 check_name: string
99 check_interval?: string
100 }
101
102 #monitor_check: {
103 check_type: "nginx_config"
104 } | {
105 check_type: "docker_running"
106 vars: {
107 container_name: string
108 }
109 }
110
111 monitor: {
112 checks: [...#monitor_check]
113 }
114
115 monitor: {
116 checks: [{
117 check_type: "nginx_config"
118 check_name: "nginx_config"
119 }]
120 }
121}
122
123// Issue #801
124// Here the concrete value selects the default from a dominator, after which
125// the dominator becomes an exact match. The exact match should not allow it
126// to be erased, as the exact match is only there because subordinate value
127// was first used to select the default.
128dontEraseDefaultSelection: {
129 rule: _#Rule & {
130 verbs: ["c"]
131 }
132 _#Rule: {
133 verbs: *["a", "b"] | ["c"]
134 }
135}
View as plain text