this repo has no description
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

all: enable toposort by default

Signed-off-by: Matthew Sackman <matthew@cue.works>
Change-Id: I307274073d89f189016c890db739e4305f0fa0c6
Reviewed-on: https://review.gerrithub.io/c/cue-lang/cue/+/1207475
TryBot-Result: CUEcueckoo <cueckoo@cuelang.org>
Reviewed-by: Marcel van Lohuizen <mpvl@gmail.com>
Unity-Result: CUE porcuepine <cue.porcuepine@gmail.com>

+776 -1194
+2 -2
.github/workflows/evict_caches.yaml
··· 6 6 - cron: 0 2 * * * 7 7 jobs: 8 8 test: 9 - if: ${{github.repository == 'cue-lang/cue'}} 10 - runs-on: ubuntu-24.04 11 9 defaults: 12 10 run: 13 11 shell: bash --noprofile --norc -euo pipefail {0} 12 + if: ${{github.repository == 'cue-lang/cue'}} 13 + runs-on: ubuntu-24.04 14 14 steps: 15 15 - name: Checkout code 16 16 uses: actions/checkout@v4
+10 -10
.github/workflows/push_tip_to_trybot.yaml
··· 1 1 # Code generated internal/ci/ci_tool.cue; DO NOT EDIT. 2 2 3 - name: Push tip to trybot 4 - "on": 5 - push: 6 - branches: 7 - - master 8 - - release-branch.* 9 3 concurrency: push_tip_to_trybot 10 4 jobs: 11 5 push: 6 + defaults: 7 + run: 8 + shell: bash --noprofile --norc -euo pipefail {0} 12 9 runs-on: ubuntu-24.04 10 + if: ${{github.repository == 'cue-lang/cue'}} 13 11 steps: 14 12 - name: Write netrc file for cueckoo Gerrithub 15 13 run: |- ··· 45 43 echo "Giving up" 46 44 exit 1 47 45 fi 48 - defaults: 49 - run: 50 - shell: bash --noprofile --norc -euo pipefail {0} 51 - if: ${{github.repository == 'cue-lang/cue'}} 46 + name: Push tip to trybot 47 + "on": 48 + push: 49 + branches: 50 + - master 51 + - release-branch.*
+6 -6
.github/workflows/release.yaml
··· 1 1 # Code generated internal/ci/ci_tool.cue; DO NOT EDIT. 2 2 3 3 name: Release 4 + concurrency: release 4 5 "on": 5 6 push: 6 7 tags: ··· 10 11 - ci/test 11 12 - master 12 13 - release-branch.* 13 - concurrency: release 14 14 jobs: 15 15 goreleaser: 16 - runs-on: ubuntu-24.04 17 - if: ${{github.repository == 'cue-lang/cue'}} 18 16 defaults: 19 17 run: 20 18 shell: bash --noprofile --norc -euo pipefail {0} 19 + runs-on: ubuntu-24.04 20 + if: ${{github.repository == 'cue-lang/cue'}} 21 21 steps: 22 22 - name: Checkout code 23 23 uses: actions/checkout@v4 ··· 82 82 install-only: true 83 83 version: v2.5.0 84 84 - name: Run GoReleaser with CUE 85 + env: 86 + CUE_TOKEN: ${{ secrets.NOTCUECKOO_CUE_TOKEN }} 87 + GITHUB_TOKEN: ${{ secrets.CUECKOO_GITHUB_PAT }} 85 88 run: |- 86 89 go run cuelang.org/go/cmd/cue login --token=${CUE_TOKEN} 87 90 cue cmd release 88 91 working-directory: ./internal/ci/goreleaser 89 - env: 90 - CUE_TOKEN: ${{ secrets.NOTCUECKOO_CUE_TOKEN }} 91 - GITHUB_TOKEN: ${{ secrets.CUECKOO_GITHUB_PAT }} 92 92 - if: startsWith(github.ref, 'refs/tags/v') 93 93 name: Re-test cuelang.org 94 94 run: 'curl -s -L -H "Accept: application/vnd.github+json" -H "Authorization: Bearer ${{ secrets.CUECKOO_GITHUB_PAT }}" -H "X-GitHub-Api-Version: 2022-11-28" --fail --request POST --data-binary "{\"event_type\":\"Re-test post release of ${GITHUB_REF##refs/tags/}\"}" https://api.github.com/repos/cue-lang/cuelang.org/dispatches'
+2 -2
.github/workflows/tip_triggers.yaml
··· 8 8 - ci/test 9 9 jobs: 10 10 push: 11 - runs-on: ubuntu-24.04 12 - if: ${{github.repository == 'cue-lang/cue'}} 13 11 defaults: 14 12 run: 15 13 shell: bash --noprofile --norc -euo pipefail {0} 14 + runs-on: ubuntu-24.04 15 + if: ${{github.repository == 'cue-lang/cue'}} 16 16 steps: 17 17 - name: Trigger unity build 18 18 run: 'curl -s -L -H "Accept: application/vnd.github+json" -H "Authorization: Bearer ${{ secrets.PORCUEPINE_GITHUB_PAT }}" -H "X-GitHub-Api-Version: 2022-11-28" --fail --request POST --data-binary "{\"event_type\":\"Check against ${GITHUB_SHA}\",\"client_payload\":{\"type\":\"unity\",\"payload\":{\"versions\":\"\\\"commit:${GITHUB_SHA}\\\"\"}}}" https://api.github.com/repos/cue-unity/unity-private/dispatches'
+19 -19
.github/workflows/trybot.yaml
··· 9 9 - release-branch.* 10 10 tags-ignore: 11 11 - v* 12 - workflow_dispatch: {} 13 12 pull_request_target: {} 13 + workflow_dispatch: {} 14 14 jobs: 15 15 test: 16 + defaults: 17 + run: 18 + shell: bash --noprofile --norc -euo pipefail {0} 16 19 strategy: 17 20 fail-fast: false 18 21 matrix: ··· 28 31 (contains(github.event.head_commit.message, ' 29 32 Dispatch-Trailer: {"type":"trybot"')) || ! (contains(github.event.head_commit.message, ' 30 33 Dispatch-Trailer: {"type":"')) 31 - defaults: 32 - run: 33 - shell: bash --noprofile --norc -euo pipefail {0} 34 34 steps: 35 35 - name: Checkout code 36 36 uses: actions/checkout@v4 ··· 117 117 run: go test ./... 118 118 - if: (matrix.go-version == '1.23.x' && matrix.runner == 'ubuntu-24.04') 119 119 name: Test with -race 120 - run: go test -race ./... 121 120 env: 122 121 GORACE: atexit_sleep_ms=10 122 + run: go test -race ./... 123 123 - if: (matrix.go-version == '1.23.x' && matrix.runner == 'ubuntu-24.04') 124 124 name: Test on 32 bits 125 - run: go test -short ./... 126 125 env: 127 126 GOARCH: "386" 127 + run: go test -short ./... 128 128 - name: Test with -tags=cuewasm 129 129 run: go test -tags cuewasm ./cmd/cue/cmd ./cue/interpreter/wasm 130 130 - name: gcloud auth for end-to-end tests 131 131 id: auth 132 - if: |- 133 - github.repository == 'cue-lang/cue' && (((github.ref == 'refs/heads/master' || startsWith(github.ref, 'refs/heads/release-branch.')) && (! (contains(github.event.head_commit.message, ' 134 - Dispatch-Trailer: {"type":"')))) || (github.ref == 'refs/heads/ci/test')) && (matrix.go-version == '1.23.x' && matrix.runner == 'ubuntu-24.04') 135 132 uses: google-github-actions/auth@v2 136 133 with: 137 134 credentials_json: ${{ secrets.E2E_GCLOUD_KEY }} 138 - - if: |- 135 + if: |- 139 136 github.repository == 'cue-lang/cue' && (((github.ref == 'refs/heads/master' || startsWith(github.ref, 'refs/heads/release-branch.')) && (! (contains(github.event.head_commit.message, ' 140 137 Dispatch-Trailer: {"type":"')))) || (github.ref == 'refs/heads/ci/test')) && (matrix.go-version == '1.23.x' && matrix.runner == 'ubuntu-24.04') 141 - name: gcloud setup for end-to-end tests 138 + - name: gcloud setup for end-to-end tests 142 139 uses: google-github-actions/setup-gcloud@v2 143 - - if: |- 140 + if: |- 144 141 github.repository == 'cue-lang/cue' && (((github.ref == 'refs/heads/master' || startsWith(github.ref, 'refs/heads/release-branch.')) && (! (contains(github.event.head_commit.message, ' 145 142 Dispatch-Trailer: {"type":"')))) || (github.ref == 'refs/heads/ci/test')) && (matrix.go-version == '1.23.x' && matrix.runner == 'ubuntu-24.04') 146 - name: End-to-end test 143 + - name: End-to-end test 147 144 env: 148 145 CUE_TEST_TOKEN: ${{ secrets.E2E_PORCUEPINE_CUE_TOKEN }} 149 146 run: |- 150 147 cd internal/_e2e 151 148 go test -race 152 - - if: (matrix.go-version == '1.23.x' && matrix.runner == 'ubuntu-24.04') 153 - name: Go checks 149 + if: |- 150 + github.repository == 'cue-lang/cue' && (((github.ref == 'refs/heads/master' || startsWith(github.ref, 'refs/heads/release-branch.')) && (! (contains(github.event.head_commit.message, ' 151 + Dispatch-Trailer: {"type":"')))) || (github.ref == 'refs/heads/ci/test')) && (matrix.go-version == '1.23.x' && matrix.runner == 'ubuntu-24.04') 152 + - name: Go checks 154 153 run: |- 155 154 go vet ./... 156 155 go mod tidy 157 156 (cd internal/_e2e && go test -run=-) 158 - - if: (matrix.go-version == '1.23.x' && matrix.runner == 'ubuntu-24.04') 159 - name: staticcheck 157 + if: (matrix.go-version == '1.23.x' && matrix.runner == 'ubuntu-24.04') 158 + - name: staticcheck 160 159 uses: dominikh/staticcheck-action@v1 161 160 with: 162 161 version: 2024.1.1 163 162 install-go: false 163 + if: (matrix.go-version == '1.23.x' && matrix.runner == 'ubuntu-24.04') 164 164 - if: (matrix.go-version == '1.23.x' && matrix.runner == 'ubuntu-24.04') 165 165 name: Check all git tags are available 166 166 run: |- ··· 179 179 fi 180 180 - if: (matrix.go-version == '1.23.x' && matrix.runner == 'ubuntu-24.04') 181 181 name: Generate 182 + env: 183 + CUE_TOKEN: ${{ secrets.NOTCUECKOO_CUE_TOKEN }} 182 184 run: |- 183 185 go run cuelang.org/go/cmd/cue login --token=${CUE_TOKEN} 184 186 go generate ./... 185 - env: 186 - CUE_TOKEN: ${{ secrets.NOTCUECKOO_CUE_TOKEN }} 187 187 - if: always() 188 188 name: Check that git is clean at the end of the job 189 189 run: test -z "$(git status --porcelain)" || (git status; git diff; false)
+2 -2
.github/workflows/trybot_dispatch.yaml
··· 8 8 - ci/test 9 9 jobs: 10 10 trybot: 11 - runs-on: ubuntu-24.04 12 - if: ${{ ((github.ref == 'refs/heads/ci/test') && false) || github.event.client_payload.type == 'trybot' }} 13 11 defaults: 14 12 run: 15 13 shell: bash --noprofile --norc -euo pipefail {0} 14 + runs-on: ubuntu-24.04 15 + if: ${{ ((github.ref == 'refs/heads/ci/test') && false) || github.event.client_payload.type == 'trybot' }} 16 16 steps: 17 17 - name: Write netrc file for cueckoo Gerrithub 18 18 run: |-
+10 -10
cmd/cue/cmd/testdata/script/cmd_many.txtar
··· 78 78 79 79 -- stdout.export-post.golden -- 80 80 { 81 - "itemsList": [], 82 - "items": {} 81 + "items": {}, 82 + "itemsList": [] 83 83 } 84 84 { 85 - "itemsList": [ 86 - "a" 87 - ], 88 85 "items": { 89 86 "a": "a" 90 - } 87 + }, 88 + "itemsList": [ 89 + "a" 90 + ] 91 91 } 92 92 { 93 - "itemsList": [ 94 - "b" 95 - ], 96 93 "items": { 97 94 "b": "b" 98 - } 95 + }, 96 + "itemsList": [ 97 + "b" 98 + ] 99 99 }
+4 -4
cmd/cue/cmd/testdata/script/embed.txtar
··· 152 152 153 153 """ 154 154 d: { 155 - "y/_test.json": { 156 - z: 45 157 - } 158 155 "x/input.yaml": { 159 156 a1: 2 157 + } 158 + "y/_test.json": { 159 + z: 45 160 160 } 161 161 "y/test.json": { 162 162 x: 34 ··· 238 238 239 239 """ 240 240 d: { 241 - "y/_test.json": z: 45 242 241 "x/input.yaml": a1: 2 242 + "y/_test.json": z: 45 243 243 "y/test.json": x: 34 244 244 } 245 245 f: info: {
+36 -36
cmd/cue/cmd/testdata/script/encoding_comments.txtar
··· 169 169 // disjunction is like a sum type. 170 170 disjunction: _disjunction1 | _disjunction2 171 171 -- eval-cue.stdout -- 172 - foo: "bar" 173 - struct: { 174 - field1: "message1" 175 - field2: "message2" 176 - } 172 + #Schema: {} 177 173 Data: { 178 174 name: "Foo" 179 175 } 180 - #Schema: {} 181 - list: [1, 2, 3] 176 + foo: "bar" 182 177 implicitUnified: "some value" 183 178 explicitUnified1: "some default" 184 179 explicitUnified2: "some value" 185 180 explicitUnified: "some value" 186 181 disjunction: "some default" 187 - -- export-cue.stdout -- 188 - // top-level comment before a simple field. 189 - foo: "bar" 190 - 191 - // top-level comment before a struct 192 182 struct: { 193 - // comment in a struct field 194 - field1: "message1" 195 - field2: "message2" 196 - 197 - // comment at the end of a struct. 183 + field1: "message1" 184 + field2: "message2" 198 185 } 199 - 186 + list: [1, 2, 3] 187 + -- export-cue.stdout -- 200 188 // Data fits the schema. 201 189 Data: { 202 190 // name is the schema name. ··· 205 193 name: "Foo" 206 194 } 207 195 208 - // top-level comment before a list. 209 - list: [1, 2, 3] 196 + // top-level comment before a simple field. 197 + foo: "bar" 210 198 211 199 // implicitUnified is any non-empty string. 212 200 ··· 224 212 225 213 // disjunction is like a sum type. 226 214 disjunction: "some default" 215 + 216 + // top-level comment before a struct 217 + struct: { 218 + // comment in a struct field 219 + field1: "message1" 220 + field2: "message2" 221 + 222 + // comment at the end of a struct. 223 + } 224 + 225 + // top-level comment before a list. 226 + list: [1, 2, 3] 227 227 -- export-json.stdout -- 228 228 { 229 + "Data": { 230 + "name": "Foo" 231 + }, 229 232 "foo": "bar", 233 + "implicitUnified": "some value", 234 + "explicitUnified1": "some default", 235 + "explicitUnified2": "some value", 236 + "explicitUnified": "some value", 237 + "disjunction": "some default", 230 238 "struct": { 231 239 "field1": "message1", 232 240 "field2": "message2" 233 241 }, 234 - "Data": { 235 - "name": "Foo" 236 - }, 237 242 "list": [ 238 243 1, 239 244 2, 240 245 3 241 - ], 242 - "implicitUnified": "some value", 243 - "explicitUnified1": "some default", 244 - "explicitUnified2": "some value", 245 - "explicitUnified": "some value", 246 - "disjunction": "some default" 246 + ] 247 247 } 248 248 -- export-yaml.stdout -- 249 + Data: 250 + name: Foo 249 251 foo: bar 252 + implicitUnified: some value 253 + explicitUnified1: some default 254 + explicitUnified2: some value 255 + explicitUnified: some value 256 + disjunction: some default 250 257 struct: 251 258 field1: message1 252 259 field2: message2 253 - Data: 254 - name: Foo 255 260 list: 256 261 - 1 257 262 - 2 258 263 - 3 259 - implicitUnified: some value 260 - explicitUnified1: some default 261 - explicitUnified2: some value 262 - explicitUnified: some value 263 - disjunction: some default 264 264 -- export-toml.stdout -- 265 265 disjunction = 'some default' 266 266 explicitUnified = 'some value'
+13 -13
cmd/cue/cmd/testdata/script/exp_gengotypes.txtar
··· 634 634 MultiTwo multipkg_two.Two `json:"multiTwo,omitempty"` 635 635 } 636 636 637 - type EmptyStruct struct { 638 - } 639 - 640 637 type Types struct { 641 638 Top any/* CUE top */ `json:"Top,omitempty"` 642 639 ··· 687 684 LinkedList *LinkedList `json:"LinkedList,omitempty"` 688 685 } 689 686 687 + type LinkedList struct { 688 + Item any/* CUE top */ `json:"item,omitempty"` 689 + 690 + Next *LinkedList `json:"next,omitempty"` 691 + } 692 + 693 + type EmptyStruct struct { 694 + } 695 + 690 696 type Root struct { 697 + Embedded1 int64 `json:"embedded1,omitempty"` 698 + 699 + Embedded2 int64 `json:"embedded2,omitempty"` 700 + 691 701 Types *Types `json:"types,omitempty"` 692 702 693 703 Fields *struct { ··· 758 768 759 769 MustEqual1 int64 `json:"mustEqual1,omitempty"` 760 770 761 - Embedded1 int64 `json:"embedded1,omitempty"` 762 - 763 - Embedded2 int64 `json:"embedded2,omitempty"` 764 - 765 771 MustEqual2 any/* TODO: IncompleteKind: _|_ */ `json:"mustEqual2,omitempty"` 766 772 } 767 773 ··· 774 780 type AttrChangedName int64 775 781 776 782 type AttrType constant.Kind 777 - 778 - type LinkedList struct { 779 - Item any/* CUE top */ `json:"item,omitempty"` 780 - 781 - Next *LinkedList `json:"next,omitempty"` 782 - } 783 783 784 784 type Root_innerStruct struct { 785 785 InnerStructField int64 `json:"innerStructField,omitempty"`
+2 -2
cmd/cue/cmd/testdata/script/export_issue3511.txtar
··· 26 26 "items": [ 27 27 [ 28 28 { 29 - "name": "kube-api-server", 30 - "namespace": "default" 29 + "namespace": "default", 30 + "name": "kube-api-server" 31 31 } 32 32 ] 33 33 ]
+1 -1
cmd/cue/cmd/testdata/script/hidden.txtar
··· 40 40 a: { 41 41 _h0: int 42 42 } 43 - _h2: string 44 43 #foo: { 45 44 _h1: string 46 45 } 46 + _h2: string
+3 -3
cmd/cue/cmd/testdata/script/issue269.txtar
··· 21 21 -- expect-stdout -- 22 22 #type: { 23 23 x: 0 24 + y: 0 24 25 i: 0 25 26 j: 0 26 - y: 0 27 27 } 28 28 data: { 29 29 a: { 30 30 x: 0 31 + y: 0 31 32 i: 0 32 33 j: 0 33 - y: 0 34 34 } 35 35 b: { 36 36 x: 0 37 + y: 0 37 38 i: 0 38 39 j: 0 39 - y: 0 40 40 } 41 41 }
+2 -2
cmd/cue/cmd/testdata/script/issue398.txtar
··· 17 17 package baz 18 18 x: 1 19 19 -- expect-stdout -- 20 - z: 3 21 - y: 2 22 20 x: 1 21 + y: 2 22 + z: 3
+2 -2
cmd/cue/cmd/testdata/script/load_pkg.txtar
··· 82 82 files: root_3: 0 83 83 -- sort/stdout-sort -- 84 84 files: { 85 - root_1: 0 86 - root_3: 0 87 85 child_1: 0 88 86 child_2: 0 89 87 child_3: 0 ··· 92 90 child_7: 0 93 91 grandchild_1: 0 94 92 grandchild_2: 0 93 + root_1: 0 94 + root_3: 0 95 95 } 96 96 flat: ["root_1", "root_3", "child_1", "child_2", "child_3", "child_5", "child_6", "child_7", "grandchild_1", "grandchild_2"]
+2 -2
cmd/cue/cmd/testdata/script/modget_initial.txtar
··· 65 65 } 66 66 -- want-stdout-1 -- 67 67 { 68 - "main": "main", 69 68 "foo.com/bar/hello@v0": "v0.2.3", 70 69 "bar.com@v0": "v0.5.0", 71 70 "baz.org@v0": "v0.10.2", 71 + "main": "main", 72 72 "example.com@v0": "v0.0.1" 73 73 } 74 74 -- want-module-2 -- ··· 93 93 } 94 94 -- want-stdout-2 -- 95 95 { 96 - "main": "main", 97 96 "foo.com/bar/hello@v0": "v0.2.3", 98 97 "bar.com@v0": "v0.5.0", 99 98 "baz.org@v0": "v0.11.0-alpha", 99 + "main": "main", 100 100 "example.com@v0": "v0.0.1" 101 101 } 102 102 -- cue.mod/module.cue --
+1 -1
cmd/cue/cmd/testdata/script/modtidy_initial.txtar
··· 40 40 } 41 41 -- want-stdout -- 42 42 { 43 - "main": "main", 44 43 "foo.com/bar/hello@v0": "v0.2.3", 45 44 "bar.com@v0": "v0.5.0", 46 45 "baz.org@v0": "v0.10.1", 46 + "main": "main", 47 47 "example.com@v0": "v0.0.1" 48 48 } 49 49 -- cue.mod/module.cue --
+2 -2
cmd/cue/cmd/testdata/script/modtidy_logging.txtar
··· 10 10 cmp stdout want-stdout 11 11 -- want-stdout -- 12 12 { 13 - "main": "main", 14 - "example.com@v0": "v0.0.1" 13 + "example.com@v0": "v0.0.1", 14 + "main": "main" 15 15 } 16 16 -- cue.mod/module.cue -- 17 17 module: "main.org@v0"
+1 -1
cmd/cue/cmd/testdata/script/registry_mux.txtar
··· 23 23 defaultRegistry: registry: "${CUE_REGISTRY1}" 24 24 moduleRegistries: "baz.org": registry: "${CUE_REGISTRY2}" 25 25 -- expect-stdout -- 26 - main: "main" 27 26 "foo.com/bar/hello@v0": "v0.2.3" 28 27 "bar.com@v0": "v0.5.0" 29 28 "baz.org@v0": "v0.10.1 in registry2" 29 + main: "main" 30 30 "example.com@v0": "v0.0.1" 31 31 -- cue.mod/module.cue -- 32 32 module: "main.org@v0"
+1 -1
cmd/cue/cmd/testdata/script/registry_mux_auth.txtar
··· 7 7 exec cue eval . 8 8 cmp stdout expect-stdout 9 9 -- expect-stdout -- 10 - main: "main" 11 10 "foo.com/bar/hello@v0": "v0.2.3" 12 11 "bar.com@v0": "v0.5.0" 13 12 "baz.org@v0": "v0.10.1 in registry2" 13 + main: "main" 14 14 "example.com@v0": "v0.0.1" 15 15 -- dockerconfig/config.json -- 16 16 {
+1 -1
cmd/cue/cmd/testdata/script/registry_publish.txtar
··· 16 16 stderr 'cannot fetch example.com@v0.0.1: module example.com@v0.0.1: module not found' 17 17 18 18 -- expect-eval-stdout -- 19 - main: "main" 20 19 "foo.com/bar/hello@v0": "v0.2.3" 21 20 "bar.com@v0": "v0.5.0" 22 21 "baz.org@v0": "v0.10.1" 22 + main: "main" 23 23 "example.com@v0": "v0.0.1" 24 24 -- main/cue.mod/module.cue -- 25 25 module: "main.org@v0"
+1 -1
cmd/cue/cmd/testdata/script/registry_publish_auth.txtar
··· 24 24 } 25 25 26 26 -- expect-eval-stdout -- 27 - main: "main" 28 27 "example.com@v0": "v0.0.1" 28 + main: "main" 29 29 -- main/cue.mod/module.cue -- 30 30 module: "main.org" 31 31 language: version: "v0.9.0-alpha.0"
+2 -2
cmd/cue/cmd/testdata/script/registry_simple.txtar
··· 9 9 exec cue vet . 10 10 exec cue fmt . 11 11 -- expect-stdout -- 12 - main: "main" 13 12 "foo.com/bar/hello@v0": "v0.2.3" 14 13 "bar.com@v0": "v0.5.0" 15 14 "baz.org@v0": "v0.10.1" 15 + main: "main" 16 16 "example.com@v0": "v0.0.1" 17 17 -- expect-stdout-json -- 18 18 { 19 - "main": "main", 20 19 "foo.com/bar/hello@v0": "v0.2.3", 21 20 "bar.com@v0": "v0.5.0", 22 21 "baz.org@v0": "v0.10.1", 22 + "main": "main", 23 23 "example.com@v0": "v0.0.1" 24 24 } 25 25 -- cue.mod/module.cue --
+2 -2
cmd/cue/cmd/testdata/script/sortfields.txtar
··· 43 43 "c": true, 44 44 "b": { 45 45 "x": true, 46 - "y": true, 47 - "z": true 46 + "z": true, 47 + "y": true 48 48 }, 49 49 "a": true 50 50 }
+5 -5
cue/interpreter/wasm/testdata/cue/multiple.txtar
··· 30 30 -- basic.wasm -- 31 31 -- basic1.wasm -- 32 32 -- out/wasm -- 33 - neg32: neg32() 34 - add: add 35 - x0: 3 36 - x1: 1 37 33 isPrime: is_prime() 38 34 fact: fact() 39 35 a0: -42 40 36 b1: true 41 37 b2: false 42 38 c1: 5040 43 - x2: 101 44 39 c2: 362880 40 + neg32: neg32() 41 + add: add 42 + x0: 3 43 + x1: 1 44 + x2: 101
+1 -1
cue/load/testdata/testfetch/simple.txtar
··· 1 1 -- out/modfetch -- 2 2 { 3 - main: "main" 4 3 "foo.com/bar/hello@v0": "v0.2.3" 5 4 "bar.com@v0": "v0.5.0" 6 5 "baz.org@v0": "v0.10.1" 6 + main: "main" 7 7 "example.com@v0": "v0.0.1" 8 8 } 9 9 -- cue.mod/module.cue --
+8 -8
encoding/openapi/testdata/openapi-norefs.json
··· 114 114 "maximum": 1000, 115 115 "exclusiveMaximum": true 116 116 }, 117 + "bar": { 118 + "type": "array", 119 + "items": { 120 + "type": "string" 121 + } 122 + }, 117 123 "a": { 118 124 "description": "Field a.", 119 125 "type": "integer", 120 126 "enum": [ 121 127 1 122 128 ] 123 - }, 124 - "bar": { 125 - "type": "array", 126 - "items": { 127 - "type": "string" 128 - } 129 129 }, 130 130 "b": { 131 131 "type": "string" ··· 165 165 "YourMessage": { 166 166 "type": "object", 167 167 "properties": { 168 + "b": {}, 168 169 "a": { 169 170 "type": "string" 170 - }, 171 - "b": {} 171 + } 172 172 }, 173 173 "oneOf": [ 174 174 {
+1 -1
internal/core/export/export_test.go
··· 91 91 } 92 92 return convert.GoValueToValue(ctx, in, false), nil 93 93 }, 94 - out: `Terminals: [{Name: "Name", Description: "Desc"}]`, 94 + out: `Terminals: [{Description: "Desc", Name: "Name"}]`, 95 95 }, { 96 96 in: func(ctx *adt.OpContext) (adt.Expr, error) { 97 97 in := &C{
+2 -121
internal/core/export/testdata/main/adt.txtar
··· 438 438 [errorListDef #Def] 439 439 [errorListDef 0] 440 440 [errorListDef 1] 441 - -- diff/value/todo/p3 -- 442 - Error message change. 443 - -- out/value-v3 -- 441 + -- out/value -- 444 442 == Simplified 445 443 _|_ // e3: index out of range [2] with length 2 446 444 == Raw ··· 514 512 // baz is a required field. 515 513 baz!: 5 516 514 } 517 - y1: { 518 - src: [1, 2, 3] 519 - foo0: 1 520 - foo1: 2 521 - foo2: 3 522 - bar1: 2 523 - x: [1, 2, 3] 524 - bar2: 3 525 - } 526 - preserveKeyFieldInComprehension: 1 527 - errorStructDef: { 528 - a: 1 529 - b: _|_ // errorStructDef.b: conflicting values 2 and 1 530 - #Def: 1 531 - } 532 - errorList: [1, _|_] 533 515 x: int 534 - errorListDef: { 535 - #Def: 1 536 - [1, _|_] 537 - } 538 - } 539 - == Eval 540 - _|_ // e3: index out of range [2] with length 2 541 - -- diff/-out/value-v3<==>+out/value -- 542 - diff old new 543 - --- old 544 - +++ new 545 - @@ -74,11 +74,11 @@ 546 - y1: { 547 - src: [1, 2, 3] 548 - foo0: 1 549 - - bar1: 2 550 - - bar2: 3 551 - foo1: 2 552 - - x: [1, 2, 3] 553 - foo2: 3 554 - + bar1: 2 555 - + x: [1, 2, 3] 556 - + bar2: 3 557 - } 558 - preserveKeyFieldInComprehension: 1 559 - errorStructDef: { 560 - -- out/value -- 561 - == Simplified 562 - _|_ // e3: index out of range [2] with length 2 563 - == Raw 564 - _|_ // e3: index out of range [2] with length 2 565 - == Final 566 - _|_ // e3: index out of range [2] with length 2 567 - == All 568 - { 569 - @foo(bar) 570 - p1: {} 571 - d1: { 572 - foobar: int 573 - } 574 - bar: "bar" 575 - d2: { 576 - foobar: { 577 - name: "xx" 578 - foo: "xx" 579 - } 580 - } 581 - 582 - // Issue #1910 583 - a: _ 584 - comp: { 585 - for k, v in [0] 586 - let w = v { 587 - "\(a)": w 588 - "bar": w 589 - } 590 - } 591 - bytes: '\xeb \x1a\xf5\xaa\xf0\xd6\x06)' 592 - c1: true 593 - s1: """ 594 - multi 595 - bar 596 - line 597 - """ 598 - l1: [3, ...int] 599 - l2: [...int] 600 - l3: [] 601 - l4: [1, 2] 602 - l5: { 603 - #foo: int 604 - [1, 3] 605 - } 606 - #foo: int 607 - l6: { 608 - #foo: int 609 - [1, 3] 610 - } 611 - n1: 1.0 612 - n10: 10 613 - 614 - // t is true 615 - t: true 616 - e1: <1.0 617 - e2: >1.0 & <10 618 - e3: _|_ // e3: index out of range [2] with length 2 619 - e4: _|_ // e4: index 3 out of range 620 - e5: _|_ // e3: index out of range [2] with length 2 621 - e6: false 622 - e7: true 623 - e8?: true 624 - m1: { 625 - // foo is an optional field 626 - foo?: 3 627 - 628 - // bar is a field 629 - bar: 4 630 - 631 - // baz is a required field. 632 - baz!: 5 633 - } 634 516 y1: { 635 517 src: [1, 2, 3] 636 518 foo0: 1 637 519 bar1: 2 638 520 bar2: 3 639 521 foo1: 2 640 - x: [1, 2, 3] 641 522 foo2: 3 523 + x: [1, 2, 3] 642 524 } 643 525 preserveKeyFieldInComprehension: 1 644 526 errorStructDef: { ··· 647 529 #Def: 1 648 530 } 649 531 errorList: [1, _|_] 650 - x: int 651 532 errorListDef: { 652 533 #Def: 1 653 534 [1, _|_]
+50 -50
internal/core/export/testdata/main/alias.txtar
··· 203 203 == Simplified 204 204 { 205 205 fieldAlias: { 206 + cross: { 207 + baz: 3 208 + "d-2": {} 209 + } 206 210 simple: { 207 211 "a-b": 4 208 212 foo: 4 209 213 "a-c": 5 210 - } 211 - cross: { 212 - baz: 3 213 - "d-2": {} 214 214 } 215 215 } 216 216 valueAlias: { ··· 258 258 // TODO: these could be merged into a single struct. 259 259 issue2374: { 260 260 a: { 261 - r: 0 262 261 z: 1 263 262 b: null 263 + r: 0 264 264 } 265 265 } 266 266 } 267 267 == Raw 268 268 { 269 269 fieldAlias: { 270 + cross: { 271 + baz: 3 272 + "d-2": {} 273 + } 270 274 simple: { 271 275 "a-b": 4 272 276 foo: 4 273 277 bar?: 5 274 278 "a-c": 5 275 - } 276 - cross: { 277 - baz: 3 278 - "d-2": {} 279 279 } 280 280 } 281 281 valueAlias: { ··· 327 327 // TODO: these could be merged into a single struct. 328 328 issue2374: { 329 329 a: { 330 - r: 0 331 330 z: 1 332 331 b: null 332 + r: 0 333 333 } 334 334 } 335 335 } 336 336 == Final 337 337 { 338 338 fieldAlias: { 339 + cross: { 340 + baz: 3 341 + "d-2": {} 342 + } 339 343 simple: { 340 344 "a-b": 4 341 345 foo: 4 342 346 "a-c": 5 343 347 } 344 - cross: { 345 - baz: 3 346 - "d-2": {} 347 - } 348 348 } 349 349 valueAlias: { 350 350 merge: { ··· 378 378 } 379 379 issue2374: { 380 380 a: { 381 - r: 0 382 381 z: 1 383 382 b: null 383 + r: 0 384 384 } 385 385 } 386 386 } 387 387 == All 388 388 { 389 389 fieldAlias: { 390 + cross: { 391 + baz: 3 392 + "d-2": {} 393 + } 390 394 simple: { 391 395 "a-b": 4 392 396 foo: 4 393 397 bar?: 5 394 398 "a-c": 5 395 - } 396 - cross: { 397 - baz: 3 398 - "d-2": {} 399 399 } 400 400 } 401 401 valueAlias: { ··· 447 447 // TODO: these could be merged into a single struct. 448 448 issue2374: { 449 449 a: { 450 - r: 0 451 450 z: 1 452 451 b: null 452 + r: 0 453 453 } 454 454 } 455 455 } 456 456 == Eval 457 457 { 458 458 fieldAlias: { 459 + cross: { 460 + baz: 3 461 + "d-2": {} 462 + } 459 463 simple: { 460 464 "a-b": 4 461 465 foo: 4 462 466 bar?: 5 463 467 "a-c": 5 464 - } 465 - cross: { 466 - baz: 3 467 - "d-2": {} 468 468 } 469 469 } 470 470 valueAlias: { ··· 501 501 } 502 502 issue2374: { 503 503 a: { 504 - r: 0 505 504 z: 1 506 505 b: null 506 + r: 0 507 507 } 508 508 } 509 509 } ··· 527 527 == Simplified 528 528 { 529 529 fieldAlias: { 530 + cross: { 531 + baz: 3 532 + "d-2": {} 533 + } 530 534 simple: { 531 535 "a-b": 4 532 536 foo: 4 533 537 "a-c": 5 534 - } 535 - cross: { 536 - baz: 3 537 - "d-2": {} 538 538 } 539 539 } 540 540 valueAlias: { ··· 582 582 // TODO: these could be merged into a single struct. 583 583 issue2374: { 584 584 a: { 585 - r: 0 586 585 z: 1 587 586 b: null 587 + r: 0 588 588 } 589 589 } 590 590 } 591 591 == Raw 592 592 { 593 593 fieldAlias: { 594 + cross: { 595 + baz: 3 596 + "d-2": {} 597 + } 594 598 simple: { 595 599 "a-b": 4 596 600 foo: 4 597 601 bar?: 5 598 602 "a-c": 5 599 - } 600 - cross: { 601 - baz: 3 602 - "d-2": {} 603 603 } 604 604 } 605 605 valueAlias: { ··· 651 651 // TODO: these could be merged into a single struct. 652 652 issue2374: { 653 653 a: { 654 - r: 0 655 654 z: 1 656 655 b: null 656 + r: 0 657 657 } 658 658 } 659 659 } 660 660 == Final 661 661 { 662 662 fieldAlias: { 663 + cross: { 664 + baz: 3 665 + "d-2": {} 666 + } 663 667 simple: { 664 668 "a-b": 4 665 669 foo: 4 666 670 "a-c": 5 667 671 } 668 - cross: { 669 - baz: 3 670 - "d-2": {} 671 - } 672 672 } 673 673 valueAlias: { 674 674 merge: { ··· 702 702 } 703 703 issue2374: { 704 704 a: { 705 - r: 0 706 705 z: 1 707 706 b: null 707 + r: 0 708 708 } 709 709 } 710 710 } 711 711 == All 712 712 { 713 713 fieldAlias: { 714 + cross: { 715 + baz: 3 716 + "d-2": {} 717 + } 714 718 simple: { 715 719 "a-b": 4 716 720 foo: 4 717 721 bar?: 5 718 722 "a-c": 5 719 - } 720 - cross: { 721 - baz: 3 722 - "d-2": {} 723 723 } 724 724 } 725 725 valueAlias: { ··· 771 771 // TODO: these could be merged into a single struct. 772 772 issue2374: { 773 773 a: { 774 - r: 0 775 774 z: 1 776 775 b: null 776 + r: 0 777 777 } 778 778 } 779 779 } 780 780 == Eval 781 781 { 782 782 fieldAlias: { 783 + cross: { 784 + baz: 3 785 + "d-2": {} 786 + } 783 787 simple: { 784 788 "a-b": 4 785 789 foo: 4 786 790 bar?: 5 787 791 "a-c": 5 788 - } 789 - cross: { 790 - baz: 3 791 - "d-2": {} 792 792 } 793 793 } 794 794 valueAlias: { ··· 825 825 } 826 826 issue2374: { 827 827 a: { 828 - r: 0 829 828 z: 1 830 829 b: null 830 + r: 0 831 831 } 832 832 } 833 833 }
+10 -10
internal/core/export/testdata/main/attrs.txtar
··· 233 233 c3: {} 234 234 } 235 235 dynamicComplex: { 236 - foo: "foo" 237 236 a: "foo" 237 + foo: "foo" 238 238 } 239 239 dynamicSimple: { 240 240 a: "foo" ··· 273 273 c3: {} 274 274 } 275 275 dynamicComplex: { 276 + a: "foo" 276 277 foo: "foo" 277 - a: "foo" 278 278 b?: "foo" 279 279 } 280 280 dynamicSimple: { ··· 311 311 c3: {} 312 312 } 313 313 dynamicComplex: { 314 - foo: "foo" 315 314 a: "foo" 315 + foo: "foo" 316 316 } 317 317 dynamicSimple: { 318 318 a: "foo" ··· 376 376 c3: {} @step(3) 377 377 } 378 378 dynamicComplex: { 379 - foo: "foo" @step(1) @step(2) 380 379 a: "foo" @step(3) @step(2) 380 + foo: "foo" @step(1) @step(2) 381 381 b?: "foo" @step(4) @step(2) 382 382 } 383 383 dynamicSimple: { ··· 441 441 c3: {} @step(3) 442 442 } 443 443 dynamicComplex: { 444 - foo: "foo" @step(1) @step(2) 445 444 a: "foo" @step(3) @step(2) 445 + foo: "foo" @step(1) @step(2) 446 446 b?: "foo" @step(4) @step(2) 447 447 } 448 448 dynamicSimple: { ··· 520 520 c3: {} 521 521 } 522 522 dynamicComplex: { 523 - foo: "foo" 524 523 a: "foo" 524 + foo: "foo" 525 525 } 526 526 dynamicSimple: { 527 527 a: "foo" ··· 560 560 c3: {} 561 561 } 562 562 dynamicComplex: { 563 + a: "foo" 563 564 foo: "foo" 564 - a: "foo" 565 565 b?: "foo" 566 566 } 567 567 dynamicSimple: { ··· 598 598 c3: {} 599 599 } 600 600 dynamicComplex: { 601 - foo: "foo" 602 601 a: "foo" 602 + foo: "foo" 603 603 } 604 604 dynamicSimple: { 605 605 a: "foo" ··· 663 663 c3: {} @step(3) 664 664 } 665 665 dynamicComplex: { 666 - foo: "foo" @step(1) @step(2) 667 666 a: "foo" @step(3) @step(2) 667 + foo: "foo" @step(1) @step(2) 668 668 b?: "foo" @step(4) @step(2) 669 669 } 670 670 dynamicSimple: { ··· 728 728 c3: {} @step(3) 729 729 } 730 730 dynamicComplex: { 731 - foo: "foo" @step(1) @step(2) 732 731 a: "foo" @step(3) @step(2) 732 + foo: "foo" @step(1) @step(2) 733 733 b?: "foo" @step(4) @step(2) 734 734 } 735 735 dynamicSimple: {
+1 -74
internal/core/export/testdata/main/issue662.txtar
··· 41 41 [#GraphFieldConfig] 42 42 [#GraphFieldConfig lineColor] 43 43 [#GraphFieldConfig drawStyle] 44 - -- out/value-v3 -- 44 + -- out/value -- 45 45 == Simplified 46 46 {} 47 47 == Raw ··· 76 76 lineColor?: string 77 77 } 78 78 } 79 - -- diff/-out/value-v3<==>+out/value -- 80 - diff old new 81 - --- old 82 - +++ new 83 - @@ -6,8 +6,8 @@ 84 - lineColor?: string 85 - } 86 - #GraphFieldConfig: { 87 - - lineColor?: string 88 - - drawStyle?: int 89 - + drawStyle?: int 90 - + lineColor?: string 91 - } 92 - } 93 - == Final 94 - @@ -18,8 +18,8 @@ 95 - lineColor?: string 96 - } 97 - #GraphFieldConfig: { 98 - - lineColor?: string 99 - - drawStyle?: int 100 - + drawStyle?: int 101 - + lineColor?: string 102 - } 103 - } 104 - == Eval 105 - @@ -28,7 +28,7 @@ 106 - lineColor?: string 107 - } 108 - #GraphFieldConfig: { 109 - - lineColor?: string 110 - - drawStyle?: int 111 - + drawStyle?: int 112 - + lineColor?: string 113 - } 114 - } 115 - -- diff/value/explanation -- 116 - reordering 117 - -- out/value -- 118 - == Simplified 119 - {} 120 - == Raw 121 - { 122 - #LineConfig: { 123 - lineColor?: string 124 - } 125 - #GraphFieldConfig: { 126 - lineColor?: string 127 - drawStyle?: int 128 - } 129 - } 130 - == Final 131 - {} 132 - == All 133 - { 134 - #LineConfig: { 135 - lineColor?: string 136 - } 137 - #GraphFieldConfig: { 138 - lineColor?: string 139 - drawStyle?: int 140 - } 141 - } 142 - == Eval 143 - { 144 - #LineConfig: { 145 - lineColor?: string 146 - } 147 - #GraphFieldConfig: { 148 - lineColor?: string 149 - drawStyle?: int 150 - } 151 - }
+417 -447
internal/core/export/testdata/main/let.txtar
··· 367 367 -- out/value-v3 -- 368 368 == Simplified 369 369 { 370 + cfgs: [{ 371 + metadata: { 372 + name: "one" 373 + } 374 + }, { 375 + metadata: { 376 + name: "two" 377 + } 378 + }] 379 + complete: { 380 + x: "a foo z" 381 + run: { 382 + a: "foo" 383 + } 384 + } 370 385 comprehension: { 371 386 for cfg in [{ 372 387 a: "one" ··· 377 392 } 378 393 } 379 394 } 380 - complete: { 381 - x: "a foo z" 382 - run: { 383 - a: "foo" 384 - } 385 - } 386 - cfgs: [{ 387 - metadata: { 388 - name: "one" 389 - } 390 - }, { 391 - metadata: { 392 - name: "two" 393 - } 394 - }] 395 395 files: { 396 396 "\("kind-\(cfg.name)")": { 397 397 patches: cfg 398 398 } 399 399 } 400 - scoped: { 401 - direct: { 402 - a: 1 403 - } 404 - embed1: { 405 - a: 1 406 - } 407 - embed2: { 408 - a: 1 409 - } 410 - list: { 411 - a: [1] 412 - } 413 - listStruct: { 414 - a: [{ 415 - a: 1 416 - }] 417 - } 418 - listEmbed: { 419 - a: [1] 420 - } 421 - } 422 - x: "foo" 423 400 incomplete: { 424 401 a: { 425 402 x: "a \(run.a) z" ··· 437 414 c: { 438 415 let A_1 = run.a 439 416 let A_2 = run2.a 440 - x: "a \(A_1) z" 441 - x2: "a \(A_2) z" 417 + x: "a \(A_1) z" 442 418 run: { 443 419 a: string 444 420 } 421 + x2: "a \(A_2) z" 445 422 run2: { 446 423 a: string 447 424 } ··· 449 426 d: { 450 427 let A_3 = run.a 451 428 let A_4 = run2.a 452 - x: "a \(A_3) z" 453 - x2: "a \(A_4) z" 429 + x: "a \(A_3) z" 454 430 run: { 455 431 a: string 456 432 } 433 + x2: "a \(A_4) z" 457 434 run2: { 458 435 a: string 459 436 } 460 437 } 461 438 } 462 - unresolvedDisjunction: {} 463 - y: "foo" 464 - } 465 - == Raw 466 - { 467 - comprehension: { 468 - for cfg in [{ 469 - a: "one" 470 - }] { 471 - let filepath = "kind-\(cfg.name)" 472 - "\(filepath)": { 473 - patches: cfg 474 - } 475 - } 476 - } 477 - #Foo: 2 478 - complete: { 479 - x: "a foo z" 480 - run: { 481 - a: "foo" 482 - } 483 - } 484 - cfgs: [{ 485 - metadata: { 486 - name: "one" 487 - } 488 - }, { 489 - metadata: { 490 - name: "two" 491 - } 492 - }] 493 - files: { 494 - "\("kind-\(cfg.name)")": { 495 - patches: cfg 496 - } 497 - } 498 439 scoped: { 499 - _args: { 500 - required: 1 501 - } 502 440 direct: { 503 441 a: 1 504 442 } ··· 520 458 a: [1] 521 459 } 522 460 } 461 + unresolvedDisjunction: {} 523 462 x: "foo" 463 + y: "foo" 464 + } 465 + == Raw 466 + { 467 + #Foo: 2 468 + cfgs: [{ 469 + metadata: { 470 + name: "one" 471 + } 472 + }, { 473 + metadata: { 474 + name: "two" 475 + } 476 + }] 477 + complete: { 478 + x: "a foo z" 479 + run: { 480 + a: "foo" 481 + } 482 + } 483 + comprehension: { 484 + for cfg in [{ 485 + a: "one" 486 + }] { 487 + let filepath = "kind-\(cfg.name)" 488 + "\(filepath)": { 489 + patches: cfg 490 + } 491 + } 492 + } 493 + files: { 494 + "\("kind-\(cfg.name)")": { 495 + patches: cfg 496 + } 497 + } 524 498 incomplete: { 525 499 a: { 526 500 x: "a \(run.a) z" ··· 538 512 c: { 539 513 let A_1 = run.a 540 514 let A_2 = run2.a 541 - x: "a \(A_1) z" 542 - x2: "a \(A_2) z" 515 + x: "a \(A_1) z" 543 516 run: { 544 517 a: string 545 518 } 519 + x2: "a \(A_2) z" 546 520 run2: { 547 521 a: string 548 522 } ··· 550 524 d: { 551 525 let A_3 = run.a 552 526 let A_4 = run2.a 553 - x: "a \(A_3) z" 554 - x2: "a \(A_4) z" 527 + x: "a \(A_3) z" 555 528 run: { 556 529 a: string 557 530 } 531 + x2: "a \(A_4) z" 558 532 run2: { 559 533 a: string 560 534 } 561 535 } 562 536 } 537 + scoped: { 538 + _args: { 539 + required: 1 540 + } 541 + direct: { 542 + a: 1 543 + } 544 + embed1: { 545 + a: 1 546 + } 547 + embed2: { 548 + a: 1 549 + } 550 + list: { 551 + a: [1] 552 + } 553 + listStruct: { 554 + a: [{ 555 + a: 1 556 + }] 557 + } 558 + listEmbed: { 559 + a: [1] 560 + } 561 + } 563 562 unresolvedDisjunction: { 564 563 #TypePrimitive: { 565 564 _args: { ··· 579 578 } 580 579 } 581 580 } 581 + x: "foo" 582 582 y: "foo" 583 583 } 584 584 == Final 585 585 { 586 - comprehension: _|_ // comprehension: key value of dynamic field must be concrete, found _|_(invalid interpolation: invalid interpolation: comprehension.filepath: undefined field: name) (and 1 more errors) 587 - complete: { 588 - x: "a foo z" 589 - run: { 590 - a: "foo" 591 - } 592 - } 593 586 cfgs: [{ 594 587 metadata: { 595 588 name: "one" ··· 599 592 name: "two" 600 593 } 601 594 }] 602 - files: _|_ // files: key value of dynamic field must be concrete, found _|_(invalid interpolation: invalid interpolation: filepath: undefined field: name) (and 3 more errors) 603 - scoped: { 604 - direct: { 605 - a: 1 606 - } 607 - embed1: { 608 - a: 1 609 - } 610 - embed2: { 611 - a: 1 612 - } 613 - list: { 614 - a: [1] 615 - } 616 - listStruct: { 617 - a: [{ 618 - a: 1 619 - }] 620 - } 621 - listEmbed: { 622 - a: [1] 595 + complete: { 596 + x: "a foo z" 597 + run: { 598 + a: "foo" 623 599 } 624 600 } 625 - x: "foo" 601 + comprehension: _|_ // comprehension: key value of dynamic field must be concrete, found _|_(invalid interpolation: invalid interpolation: comprehension.filepath: undefined field: name) (and 1 more errors) 602 + files: _|_ // files: key value of dynamic field must be concrete, found _|_(invalid interpolation: invalid interpolation: filepath: undefined field: name) (and 3 more errors) 626 603 incomplete: { 627 604 a: { 628 605 x: _|_ // invalid interpolation: incomplete.a.x: non-concrete value string (type string) ··· 637 614 } 638 615 } 639 616 c: { 640 - x: _|_ // invalid interpolation: incomplete.c.x: non-concrete value string (type string) 641 - x2: _|_ // invalid interpolation: incomplete.c.x2: non-concrete value string (type string) 617 + x: _|_ // invalid interpolation: incomplete.c.x: non-concrete value string (type string) 642 618 run: { 643 619 a: string 644 620 } 621 + x2: _|_ // invalid interpolation: incomplete.c.x2: non-concrete value string (type string) 645 622 run2: { 646 623 a: string 647 624 } 648 625 } 649 626 d: { 650 - x: _|_ // invalid interpolation: incomplete.d.x: non-concrete value string (type string) 651 - x2: _|_ // invalid interpolation: incomplete.d.x2: non-concrete value string (type string) 627 + x: _|_ // invalid interpolation: incomplete.d.x: non-concrete value string (type string) 652 628 run: { 653 629 a: string 654 630 } 631 + x2: _|_ // invalid interpolation: incomplete.d.x2: non-concrete value string (type string) 655 632 run2: { 656 633 a: string 657 634 } 658 635 } 659 636 } 660 - unresolvedDisjunction: {} 661 - y: "foo" 662 - } 663 - == All 664 - { 665 - comprehension: { 666 - for cfg in [{ 667 - a: "one" 668 - }] { 669 - let filepath = "kind-\(cfg.name)" 670 - "\(filepath)": { 671 - patches: cfg 672 - } 673 - } 674 - } 675 - #Foo: 2 676 - complete: { 677 - x: "a foo z" 678 - run: { 679 - a: "foo" 680 - } 681 - } 682 - cfgs: [{ 683 - metadata: { 684 - name: "one" 685 - } 686 - }, { 687 - metadata: { 688 - name: "two" 689 - } 690 - }] 691 - files: { 692 - "\("kind-\(cfg.name)")": { 693 - patches: cfg 694 - } 695 - } 696 637 scoped: { 697 - _args: { 698 - required: 1 699 - } 700 638 direct: { 701 639 a: 1 702 640 } ··· 718 656 a: [1] 719 657 } 720 658 } 659 + unresolvedDisjunction: {} 721 660 x: "foo" 661 + y: "foo" 662 + } 663 + == All 664 + { 665 + #Foo: 2 666 + cfgs: [{ 667 + metadata: { 668 + name: "one" 669 + } 670 + }, { 671 + metadata: { 672 + name: "two" 673 + } 674 + }] 675 + complete: { 676 + x: "a foo z" 677 + run: { 678 + a: "foo" 679 + } 680 + } 681 + comprehension: { 682 + for cfg in [{ 683 + a: "one" 684 + }] { 685 + let filepath = "kind-\(cfg.name)" 686 + "\(filepath)": { 687 + patches: cfg 688 + } 689 + } 690 + } 691 + files: { 692 + "\("kind-\(cfg.name)")": { 693 + patches: cfg 694 + } 695 + } 722 696 incomplete: { 723 697 a: { 724 698 x: "a \(run.a) z" ··· 736 710 c: { 737 711 let A_1 = run.a 738 712 let A_2 = run2.a 739 - x: "a \(A_1) z" 740 - x2: "a \(A_2) z" 713 + x: "a \(A_1) z" 741 714 run: { 742 715 a: string 743 716 } 717 + x2: "a \(A_2) z" 744 718 run2: { 745 719 a: string 746 720 } ··· 748 722 d: { 749 723 let A_3 = run.a 750 724 let A_4 = run2.a 751 - x: "a \(A_3) z" 752 - x2: "a \(A_4) z" 725 + x: "a \(A_3) z" 753 726 run: { 754 727 a: string 755 728 } 729 + x2: "a \(A_4) z" 756 730 run2: { 757 731 a: string 758 732 } 759 733 } 760 734 } 735 + scoped: { 736 + _args: { 737 + required: 1 738 + } 739 + direct: { 740 + a: 1 741 + } 742 + embed1: { 743 + a: 1 744 + } 745 + embed2: { 746 + a: 1 747 + } 748 + list: { 749 + a: [1] 750 + } 751 + listStruct: { 752 + a: [{ 753 + a: 1 754 + }] 755 + } 756 + listEmbed: { 757 + a: [1] 758 + } 759 + } 761 760 unresolvedDisjunction: { 762 761 #TypePrimitive: { 763 762 _args: { ··· 777 776 } 778 777 } 779 778 } 779 + x: "foo" 780 780 y: "foo" 781 781 } 782 782 == Eval 783 783 { 784 - comprehension: { 785 - for cfg in [{ 786 - a: "one" 787 - }] { 788 - let filepath = "kind-\(cfg.name)" 789 - "\(filepath)": { 790 - patches: cfg 791 - } 792 - } 793 - } 794 784 #Foo: 2 795 - complete: { 796 - x: "a foo z" 797 - run: { 798 - a: "foo" 799 - } 800 - } 801 785 cfgs: [{ 802 786 metadata: { 803 787 name: "one" ··· 807 791 name: "two" 808 792 } 809 793 }] 810 - files: { 811 - "\("kind-\(cfg.name)")": { 812 - patches: cfg 794 + complete: { 795 + x: "a foo z" 796 + run: { 797 + a: "foo" 813 798 } 814 799 } 815 - scoped: { 816 - direct: { 817 - a: 1 818 - } 819 - embed1: { 820 - a: 1 800 + comprehension: { 801 + for cfg in [{ 802 + a: "one" 803 + }] { 804 + let filepath = "kind-\(cfg.name)" 805 + "\(filepath)": { 806 + patches: cfg 807 + } 821 808 } 822 - embed2: { 823 - a: 1 824 - } 825 - list: { 826 - a: [1] 827 - } 828 - listStruct: { 829 - a: [{ 830 - a: 1 831 - }] 832 - } 833 - listEmbed: { 834 - a: [1] 809 + } 810 + files: { 811 + "\("kind-\(cfg.name)")": { 812 + patches: cfg 835 813 } 836 814 } 837 - x: "foo" 838 815 incomplete: { 839 816 a: { 840 817 x: "a \(run.a) z" ··· 852 829 c: { 853 830 let A_1 = run.a 854 831 let A_2 = run2.a 855 - x: "a \(A_1) z" 856 - x2: "a \(A_2) z" 832 + x: "a \(A_1) z" 857 833 run: { 858 834 a: string 859 835 } 836 + x2: "a \(A_2) z" 860 837 run2: { 861 838 a: string 862 839 } ··· 864 841 d: { 865 842 let A_3 = run.a 866 843 let A_4 = run2.a 867 - x: "a \(A_3) z" 868 - x2: "a \(A_4) z" 844 + x: "a \(A_3) z" 869 845 run: { 870 846 a: string 871 847 } 848 + x2: "a \(A_4) z" 872 849 run2: { 873 850 a: string 874 851 } 875 852 } 876 853 } 854 + scoped: { 855 + direct: { 856 + a: 1 857 + } 858 + embed1: { 859 + a: 1 860 + } 861 + embed2: { 862 + a: 1 863 + } 864 + list: { 865 + a: [1] 866 + } 867 + listStruct: { 868 + a: [{ 869 + a: 1 870 + }] 871 + } 872 + listEmbed: { 873 + a: [1] 874 + } 875 + } 877 876 unresolvedDisjunction: { 878 877 #TypePrimitive: { 879 878 "*": {} ··· 889 888 } 890 889 } 891 890 } 891 + x: "foo" 892 892 y: "foo" 893 893 } 894 894 -- diff/-out/value-v3<==>+out/value -- 895 895 diff old new 896 896 --- old 897 897 +++ new 898 - @@ -216,23 +216,23 @@ 899 - } 900 - == Final 901 - { 898 + @@ -231,8 +231,8 @@ 899 + a: "foo" 900 + } 901 + } 902 902 - comprehension: _|_ // invalid interpolation: cycle error 903 - - complete: { 904 - - x: "a foo z" 905 - - run: { 906 - - a: "foo" 907 - - } 908 - - } 909 - - cfgs: [{ 910 - - metadata: { 911 - - name: "one" 912 - - } 913 - - }, { 914 - - metadata: { 915 - - name: "two" 916 - - } 917 - - }] 918 - - files: _|_ // invalid interpolation: cycle error (and 1 more errors) 903 + - files: _|_ // invalid interpolation: cycle error (and 1 more errors) 919 904 + comprehension: _|_ // comprehension: key value of dynamic field must be concrete, found _|_(invalid interpolation: invalid interpolation: comprehension.filepath: undefined field: name) (and 1 more errors) 920 - + complete: { 921 - + x: "a foo z" 922 - + run: { 923 - + a: "foo" 924 - + } 925 - + } 926 - + cfgs: [{ 927 - + metadata: { 928 - + name: "one" 929 - + } 930 - + }, { 931 - + metadata: { 932 - + name: "two" 933 - + } 934 - + }] 935 - + files: _|_ // files: key value of dynamic field must be concrete, found _|_(invalid interpolation: invalid interpolation: filepath: undefined field: name) (and 3 more errors) 936 - scoped: { 937 - direct: { 938 - a: 1 905 + + files: _|_ // files: key value of dynamic field must be concrete, found _|_(invalid interpolation: invalid interpolation: filepath: undefined field: name) (and 3 more errors) 906 + incomplete: { 907 + a: { 908 + x: _|_ // invalid interpolation: incomplete.a.x: non-concrete value string (type string) 939 909 -- diff/value/explanation -- 940 910 Improved error messages. 941 911 -- out/value -- 942 912 == Simplified 943 913 { 914 + cfgs: [{ 915 + metadata: { 916 + name: "one" 917 + } 918 + }, { 919 + metadata: { 920 + name: "two" 921 + } 922 + }] 923 + complete: { 924 + x: "a foo z" 925 + run: { 926 + a: "foo" 927 + } 928 + } 944 929 comprehension: { 945 930 for cfg in [{ 946 931 a: "one" ··· 951 936 } 952 937 } 953 938 } 954 - complete: { 955 - x: "a foo z" 956 - run: { 957 - a: "foo" 958 - } 959 - } 960 - cfgs: [{ 961 - metadata: { 962 - name: "one" 963 - } 964 - }, { 965 - metadata: { 966 - name: "two" 967 - } 968 - }] 969 939 files: { 970 940 "\("kind-\(cfg.name)")": { 971 941 patches: cfg 972 942 } 973 943 } 974 - scoped: { 975 - direct: { 976 - a: 1 977 - } 978 - embed1: { 979 - a: 1 980 - } 981 - embed2: { 982 - a: 1 983 - } 984 - list: { 985 - a: [1] 986 - } 987 - listStruct: { 988 - a: [{ 989 - a: 1 990 - }] 991 - } 992 - listEmbed: { 993 - a: [1] 994 - } 995 - } 996 - x: "foo" 997 944 incomplete: { 998 945 a: { 999 946 x: "a \(run.a) z" ··· 1011 958 c: { 1012 959 let A_1 = run.a 1013 960 let A_2 = run2.a 1014 - x: "a \(A_1) z" 1015 - x2: "a \(A_2) z" 961 + x: "a \(A_1) z" 1016 962 run: { 1017 963 a: string 1018 964 } 965 + x2: "a \(A_2) z" 1019 966 run2: { 1020 967 a: string 1021 968 } ··· 1023 970 d: { 1024 971 let A_3 = run.a 1025 972 let A_4 = run2.a 1026 - x: "a \(A_3) z" 1027 - x2: "a \(A_4) z" 973 + x: "a \(A_3) z" 1028 974 run: { 1029 975 a: string 1030 976 } 977 + x2: "a \(A_4) z" 1031 978 run2: { 1032 979 a: string 1033 980 } 1034 981 } 1035 982 } 1036 - unresolvedDisjunction: {} 1037 - y: "foo" 1038 - } 1039 - == Raw 1040 - { 1041 - comprehension: { 1042 - for cfg in [{ 1043 - a: "one" 1044 - }] { 1045 - let filepath = "kind-\(cfg.name)" 1046 - "\(filepath)": { 1047 - patches: cfg 1048 - } 1049 - } 1050 - } 1051 - #Foo: 2 1052 - complete: { 1053 - x: "a foo z" 1054 - run: { 1055 - a: "foo" 1056 - } 1057 - } 1058 - cfgs: [{ 1059 - metadata: { 1060 - name: "one" 1061 - } 1062 - }, { 1063 - metadata: { 1064 - name: "two" 1065 - } 1066 - }] 1067 - files: { 1068 - "\("kind-\(cfg.name)")": { 1069 - patches: cfg 1070 - } 1071 - } 1072 983 scoped: { 1073 - _args: { 1074 - required: 1 1075 - } 1076 984 direct: { 1077 985 a: 1 1078 986 } ··· 1094 1002 a: [1] 1095 1003 } 1096 1004 } 1005 + unresolvedDisjunction: {} 1097 1006 x: "foo" 1007 + y: "foo" 1008 + } 1009 + == Raw 1010 + { 1011 + #Foo: 2 1012 + cfgs: [{ 1013 + metadata: { 1014 + name: "one" 1015 + } 1016 + }, { 1017 + metadata: { 1018 + name: "two" 1019 + } 1020 + }] 1021 + complete: { 1022 + x: "a foo z" 1023 + run: { 1024 + a: "foo" 1025 + } 1026 + } 1027 + comprehension: { 1028 + for cfg in [{ 1029 + a: "one" 1030 + }] { 1031 + let filepath = "kind-\(cfg.name)" 1032 + "\(filepath)": { 1033 + patches: cfg 1034 + } 1035 + } 1036 + } 1037 + files: { 1038 + "\("kind-\(cfg.name)")": { 1039 + patches: cfg 1040 + } 1041 + } 1098 1042 incomplete: { 1099 1043 a: { 1100 1044 x: "a \(run.a) z" ··· 1112 1056 c: { 1113 1057 let A_1 = run.a 1114 1058 let A_2 = run2.a 1115 - x: "a \(A_1) z" 1116 - x2: "a \(A_2) z" 1059 + x: "a \(A_1) z" 1117 1060 run: { 1118 1061 a: string 1119 1062 } 1063 + x2: "a \(A_2) z" 1120 1064 run2: { 1121 1065 a: string 1122 1066 } ··· 1124 1068 d: { 1125 1069 let A_3 = run.a 1126 1070 let A_4 = run2.a 1127 - x: "a \(A_3) z" 1128 - x2: "a \(A_4) z" 1071 + x: "a \(A_3) z" 1129 1072 run: { 1130 1073 a: string 1131 1074 } 1075 + x2: "a \(A_4) z" 1132 1076 run2: { 1133 1077 a: string 1134 1078 } 1135 1079 } 1136 1080 } 1081 + scoped: { 1082 + _args: { 1083 + required: 1 1084 + } 1085 + direct: { 1086 + a: 1 1087 + } 1088 + embed1: { 1089 + a: 1 1090 + } 1091 + embed2: { 1092 + a: 1 1093 + } 1094 + list: { 1095 + a: [1] 1096 + } 1097 + listStruct: { 1098 + a: [{ 1099 + a: 1 1100 + }] 1101 + } 1102 + listEmbed: { 1103 + a: [1] 1104 + } 1105 + } 1137 1106 unresolvedDisjunction: { 1138 1107 #TypePrimitive: { 1139 1108 _args: { ··· 1153 1122 } 1154 1123 } 1155 1124 } 1125 + x: "foo" 1156 1126 y: "foo" 1157 1127 } 1158 1128 == Final 1159 1129 { 1160 - comprehension: _|_ // invalid interpolation: cycle error 1161 - complete: { 1162 - x: "a foo z" 1163 - run: { 1164 - a: "foo" 1165 - } 1166 - } 1167 1130 cfgs: [{ 1168 1131 metadata: { 1169 1132 name: "one" ··· 1173 1136 name: "two" 1174 1137 } 1175 1138 }] 1176 - files: _|_ // invalid interpolation: cycle error (and 1 more errors) 1177 - scoped: { 1178 - direct: { 1179 - a: 1 1180 - } 1181 - embed1: { 1182 - a: 1 1183 - } 1184 - embed2: { 1185 - a: 1 1186 - } 1187 - list: { 1188 - a: [1] 1189 - } 1190 - listStruct: { 1191 - a: [{ 1192 - a: 1 1193 - }] 1194 - } 1195 - listEmbed: { 1196 - a: [1] 1139 + complete: { 1140 + x: "a foo z" 1141 + run: { 1142 + a: "foo" 1197 1143 } 1198 1144 } 1199 - x: "foo" 1145 + comprehension: _|_ // invalid interpolation: cycle error 1146 + files: _|_ // invalid interpolation: cycle error (and 1 more errors) 1200 1147 incomplete: { 1201 1148 a: { 1202 1149 x: _|_ // invalid interpolation: incomplete.a.x: non-concrete value string (type string) ··· 1211 1158 } 1212 1159 } 1213 1160 c: { 1214 - x: _|_ // invalid interpolation: incomplete.c.x: non-concrete value string (type string) 1215 - x2: _|_ // invalid interpolation: incomplete.c.x2: non-concrete value string (type string) 1161 + x: _|_ // invalid interpolation: incomplete.c.x: non-concrete value string (type string) 1216 1162 run: { 1217 1163 a: string 1218 1164 } 1165 + x2: _|_ // invalid interpolation: incomplete.c.x2: non-concrete value string (type string) 1219 1166 run2: { 1220 1167 a: string 1221 1168 } 1222 1169 } 1223 1170 d: { 1224 - x: _|_ // invalid interpolation: incomplete.d.x: non-concrete value string (type string) 1225 - x2: _|_ // invalid interpolation: incomplete.d.x2: non-concrete value string (type string) 1171 + x: _|_ // invalid interpolation: incomplete.d.x: non-concrete value string (type string) 1226 1172 run: { 1227 1173 a: string 1228 1174 } 1175 + x2: _|_ // invalid interpolation: incomplete.d.x2: non-concrete value string (type string) 1229 1176 run2: { 1230 1177 a: string 1231 1178 } 1232 1179 } 1233 1180 } 1234 - unresolvedDisjunction: {} 1235 - y: "foo" 1236 - } 1237 - == All 1238 - { 1239 - comprehension: { 1240 - for cfg in [{ 1241 - a: "one" 1242 - }] { 1243 - let filepath = "kind-\(cfg.name)" 1244 - "\(filepath)": { 1245 - patches: cfg 1246 - } 1247 - } 1248 - } 1249 - #Foo: 2 1250 - complete: { 1251 - x: "a foo z" 1252 - run: { 1253 - a: "foo" 1254 - } 1255 - } 1256 - cfgs: [{ 1257 - metadata: { 1258 - name: "one" 1259 - } 1260 - }, { 1261 - metadata: { 1262 - name: "two" 1263 - } 1264 - }] 1265 - files: { 1266 - "\("kind-\(cfg.name)")": { 1267 - patches: cfg 1268 - } 1269 - } 1270 1181 scoped: { 1271 - _args: { 1272 - required: 1 1273 - } 1274 1182 direct: { 1275 1183 a: 1 1276 1184 } ··· 1292 1200 a: [1] 1293 1201 } 1294 1202 } 1203 + unresolvedDisjunction: {} 1295 1204 x: "foo" 1205 + y: "foo" 1206 + } 1207 + == All 1208 + { 1209 + #Foo: 2 1210 + cfgs: [{ 1211 + metadata: { 1212 + name: "one" 1213 + } 1214 + }, { 1215 + metadata: { 1216 + name: "two" 1217 + } 1218 + }] 1219 + complete: { 1220 + x: "a foo z" 1221 + run: { 1222 + a: "foo" 1223 + } 1224 + } 1225 + comprehension: { 1226 + for cfg in [{ 1227 + a: "one" 1228 + }] { 1229 + let filepath = "kind-\(cfg.name)" 1230 + "\(filepath)": { 1231 + patches: cfg 1232 + } 1233 + } 1234 + } 1235 + files: { 1236 + "\("kind-\(cfg.name)")": { 1237 + patches: cfg 1238 + } 1239 + } 1296 1240 incomplete: { 1297 1241 a: { 1298 1242 x: "a \(run.a) z" ··· 1310 1254 c: { 1311 1255 let A_1 = run.a 1312 1256 let A_2 = run2.a 1313 - x: "a \(A_1) z" 1314 - x2: "a \(A_2) z" 1257 + x: "a \(A_1) z" 1315 1258 run: { 1316 1259 a: string 1317 1260 } 1261 + x2: "a \(A_2) z" 1318 1262 run2: { 1319 1263 a: string 1320 1264 } ··· 1322 1266 d: { 1323 1267 let A_3 = run.a 1324 1268 let A_4 = run2.a 1325 - x: "a \(A_3) z" 1326 - x2: "a \(A_4) z" 1269 + x: "a \(A_3) z" 1327 1270 run: { 1328 1271 a: string 1329 1272 } 1273 + x2: "a \(A_4) z" 1330 1274 run2: { 1331 1275 a: string 1332 1276 } 1333 1277 } 1334 1278 } 1279 + scoped: { 1280 + _args: { 1281 + required: 1 1282 + } 1283 + direct: { 1284 + a: 1 1285 + } 1286 + embed1: { 1287 + a: 1 1288 + } 1289 + embed2: { 1290 + a: 1 1291 + } 1292 + list: { 1293 + a: [1] 1294 + } 1295 + listStruct: { 1296 + a: [{ 1297 + a: 1 1298 + }] 1299 + } 1300 + listEmbed: { 1301 + a: [1] 1302 + } 1303 + } 1335 1304 unresolvedDisjunction: { 1336 1305 #TypePrimitive: { 1337 1306 _args: { ··· 1351 1320 } 1352 1321 } 1353 1322 } 1323 + x: "foo" 1354 1324 y: "foo" 1355 1325 } 1356 1326 == Eval 1357 1327 { 1358 - comprehension: { 1359 - for cfg in [{ 1360 - a: "one" 1361 - }] { 1362 - let filepath = "kind-\(cfg.name)" 1363 - "\(filepath)": { 1364 - patches: cfg 1365 - } 1366 - } 1367 - } 1368 1328 #Foo: 2 1369 - complete: { 1370 - x: "a foo z" 1371 - run: { 1372 - a: "foo" 1373 - } 1374 - } 1375 1329 cfgs: [{ 1376 1330 metadata: { 1377 1331 name: "one" ··· 1381 1335 name: "two" 1382 1336 } 1383 1337 }] 1384 - files: { 1385 - "\("kind-\(cfg.name)")": { 1386 - patches: cfg 1338 + complete: { 1339 + x: "a foo z" 1340 + run: { 1341 + a: "foo" 1387 1342 } 1388 1343 } 1389 - scoped: { 1390 - direct: { 1391 - a: 1 1392 - } 1393 - embed1: { 1394 - a: 1 1395 - } 1396 - embed2: { 1397 - a: 1 1344 + comprehension: { 1345 + for cfg in [{ 1346 + a: "one" 1347 + }] { 1348 + let filepath = "kind-\(cfg.name)" 1349 + "\(filepath)": { 1350 + patches: cfg 1351 + } 1398 1352 } 1399 - list: { 1400 - a: [1] 1401 - } 1402 - listStruct: { 1403 - a: [{ 1404 - a: 1 1405 - }] 1406 - } 1407 - listEmbed: { 1408 - a: [1] 1353 + } 1354 + files: { 1355 + "\("kind-\(cfg.name)")": { 1356 + patches: cfg 1409 1357 } 1410 1358 } 1411 - x: "foo" 1412 1359 incomplete: { 1413 1360 a: { 1414 1361 x: "a \(run.a) z" ··· 1426 1373 c: { 1427 1374 let A_1 = run.a 1428 1375 let A_2 = run2.a 1429 - x: "a \(A_1) z" 1430 - x2: "a \(A_2) z" 1376 + x: "a \(A_1) z" 1431 1377 run: { 1432 1378 a: string 1433 1379 } 1380 + x2: "a \(A_2) z" 1434 1381 run2: { 1435 1382 a: string 1436 1383 } ··· 1438 1385 d: { 1439 1386 let A_3 = run.a 1440 1387 let A_4 = run2.a 1441 - x: "a \(A_3) z" 1442 - x2: "a \(A_4) z" 1388 + x: "a \(A_3) z" 1443 1389 run: { 1444 1390 a: string 1445 1391 } 1392 + x2: "a \(A_4) z" 1446 1393 run2: { 1447 1394 a: string 1448 1395 } 1449 1396 } 1450 1397 } 1398 + scoped: { 1399 + direct: { 1400 + a: 1 1401 + } 1402 + embed1: { 1403 + a: 1 1404 + } 1405 + embed2: { 1406 + a: 1 1407 + } 1408 + list: { 1409 + a: [1] 1410 + } 1411 + listStruct: { 1412 + a: [{ 1413 + a: 1 1414 + }] 1415 + } 1416 + listEmbed: { 1417 + a: [1] 1418 + } 1419 + } 1451 1420 unresolvedDisjunction: { 1452 1421 #TypePrimitive: { 1453 1422 "*": {} ··· 1463 1432 } 1464 1433 } 1465 1434 } 1435 + x: "foo" 1466 1436 y: "foo" 1467 1437 }
+3 -109
internal/core/export/testdata/main/merge.txtar
··· 75 75 [#B #def] 76 76 [#B #f] 77 77 [#B #bar] 78 - -- out/value-v3 -- 79 - == Simplified 80 - {} 81 - == Raw 82 - { 83 - #A: { 84 - _ 85 - #a: string 86 - } 87 - #E: _ 88 - #F: _ 89 - #G: _ 90 - #B: { 91 - 2 92 - #f: int 93 - #def: 3 94 - #bar: int 95 - #a: string 96 - } 97 - } 98 - == Final 99 - {} 100 - == All 101 - { 102 - #A: { 103 - _ 104 - #a: string 105 - } 106 - #E: _ 107 - #F: _ 108 - #G: _ 109 - #B: { 110 - 2 111 - #f: int 112 - #def: 3 113 - #bar: int 114 - #a: string 115 - } 116 - } 117 - == Eval 118 - { 119 - #A: { 120 - _ 121 - #a: string 122 - } 123 - #E: _ 124 - #F: _ 125 - #G: _ 126 - #B: { 127 - 2 128 - #f: int 129 - #def: 3 130 - #bar: int 131 - #a: string 132 - } 133 - } 134 - -- diff/-out/value-v3<==>+out/value -- 135 - diff old new 136 - --- old 137 - +++ new 138 - @@ -11,10 +11,10 @@ 139 - #G: _ 140 - #B: { 141 - 2 142 - - #a: string 143 - - #f: int 144 - - #def: 3 145 - - #bar: int 146 - + #f: int 147 - + #def: 3 148 - + #bar: int 149 - + #a: string 150 - } 151 - } 152 - == Final 153 - @@ -30,10 +30,10 @@ 154 - #G: _ 155 - #B: { 156 - 2 157 - - #a: string 158 - - #f: int 159 - - #def: 3 160 - - #bar: int 161 - + #f: int 162 - + #def: 3 163 - + #bar: int 164 - + #a: string 165 - } 166 - } 167 - == Eval 168 - @@ -47,9 +47,9 @@ 169 - #G: _ 170 - #B: { 171 - 2 172 - - #a: string 173 - - #f: int 174 - - #def: 3 175 - - #bar: int 176 - + #f: int 177 - + #def: 3 178 - + #bar: int 179 - + #a: string 180 - } 181 - } 182 - -- diff/value/todo/p2 -- 183 - Reordering. 184 78 -- out/value -- 185 79 == Simplified 186 80 {} ··· 196 90 #B: { 197 91 2 198 92 #a: string 199 - #f: int 200 93 #def: 3 94 + #f: int 201 95 #bar: int 202 96 } 203 97 } ··· 215 109 #B: { 216 110 2 217 111 #a: string 112 + #def: 3 218 113 #f: int 219 - #def: 3 220 114 #bar: int 221 115 } 222 116 } ··· 232 126 #B: { 233 127 2 234 128 #a: string 235 - #f: int 236 129 #def: 3 130 + #f: int 237 131 #bar: int 238 132 } 239 133 }
+4 -4
internal/core/export/testdata/main/shadow.txtar
··· 476 476 b: 0 477 477 d: { 478 478 b: 1 479 - A: 1 480 479 c: 0 480 + A: 1 481 481 } 482 482 } 483 483 } ··· 487 487 b: 0 488 488 d: { 489 489 b: 1 490 - A: 1 491 490 c: 0 491 + A: 1 492 492 } 493 493 } 494 494 } ··· 651 651 b: 0 652 652 d: { 653 653 b: 1 654 - A: 1 655 654 c: 0 655 + A: 1 656 656 } 657 657 } 658 658 } ··· 662 662 b: 0 663 663 d: { 664 664 b: 1 665 - A: 1 666 665 c: 0 666 + A: 1 667 667 } 668 668 } 669 669 }
+1 -1
internal/core/runtime/testdata/basic.txtar
··· 26 26 -- extern/out -- 27 27 -- out/extern -- 28 28 { 29 + Bar: implBar2 29 30 Foo: implFoo1 30 31 Rename: implEmaner1 31 - Bar: implBar2 32 32 "Quoted-Field": implEmaner1 33 33 }
+1 -1
internal/core/runtime/testdata/legacy.txtar
··· 24 24 -- extern/out -- 25 25 -- out/extern -- 26 26 { 27 - Foo: implFoo1 28 27 Bar: implBar2 28 + Foo: implFoo1 29 29 Rename: implEmaner1 30 30 }
+1 -1
internal/cueexperiment/exp.go
··· 24 24 DecodeInt64 bool `envflag:"default:true"` 25 25 26 26 // Enable topological sorting of struct fields. 27 - TopoSort bool 27 + TopoSort bool `envflag:"default:true"` 28 28 29 29 // The flags below describe completed experiments; they can still be set 30 30 // as long as the value aligns with the final behavior once the experiment finished.
+2 -2
pkg/encoding/json/testdata/gen.txtar
··· 223 223 } 224 224 marshal: { 225 225 t1: { 226 - #x: int 227 226 #result: json.Marshal(X) 227 + #x: int 228 228 a: int 229 229 } 230 230 t2: { 231 - a: "\\ \" & < >" 232 231 #result: "{\"a\":\"\\\\ \\\" & < >\"}" 232 + a: "\\ \" & < >" 233 233 } 234 234 } 235 235 htmlEscape: {
+19 -17
pkg/list/testdata/unique.txtar
··· 159 159 a: 1 160 160 }] 161 161 162 + // Fully identical closed structs, but with non-concrete values. 163 + structs: list.UniqueItems() & [#c, #c] 164 + 162 165 // Value could still become more specific, and thus different. 163 166 ints: list.UniqueItems() & [int, int] 164 167 ··· 172 175 a: 0 173 176 b: 1 174 177 }] 175 - 176 - // Fully identical closed structs, but with non-concrete values. 177 - structs: list.UniqueItems() & [#c, #c] 178 178 } 179 179 fail: { 180 180 ints: _|_ // fail.ints: invalid value [1,2,1] (does not satisfy list.UniqueItems): equal value (1) at position 0 and 2 ··· 183 183 // Hidden values do not play a role in the comparisson. 184 184 ignoreHidden: _|_ // fail.ignoreHidden: invalid value [1,1] (does not satisfy list.UniqueItems): equal value (1) at position 0 and 1 185 185 186 + // This can be a permanent error, as the optional field of the second 187 + // element is erroneous an cannot match. 188 + ignoreOptError: _|_ // fail.ignoreOptError: invalid value [~(#a),~(#abErr)] (does not satisfy list.UniqueItems): equal values at position 0 and 1 189 + 186 190 // Struct field order is irrelevant. We simulate finalising 187 191 // these values here via close(), which gives the same behaviour 188 192 // as 'cue vet -c' on otherwise open values. 189 193 structOrderIrrelevant: _|_ // fail.structOrderIrrelevant: invalid value [{b:1,a:0},{a:0,b:1}] (does not satisfy list.UniqueItems): equal values at position 0 and 1 190 - 191 - // This can be a permanent error, as the optional field of the second 192 - // element is erroneous an cannot match. 193 - ignoreOptError: _|_ // fail.ignoreOptError: invalid value [~(#a),~(#abErr)] (does not satisfy list.UniqueItems): equal values at position 0 and 1 194 194 } 195 195 -- diff/-out/list-v3<==>+out/list -- 196 196 diff old new ··· 238 238 239 239 // Hidden values do not play a role in the comparisson. 240 240 ignoreHidden: _|_ // fail.ignoreHidden: invalid value [1,1] (does not satisfy list.UniqueItems): equal value (1) at position 0 and 1 241 - @@ -112,10 +110,5 @@ 241 + @@ -107,12 +105,7 @@ 242 242 243 243 // This can be a permanent error, as the optional field of the second 244 244 // element is erroneous an cannot match. ··· 249 249 - b?: int & string 250 250 - }] 251 251 + ignoreOptError: _|_ // fail.ignoreOptError: invalid value [~(#a),~(#abErr)] (does not satisfy list.UniqueItems): equal values at position 0 and 1 252 - } 252 + 253 + // Struct field order is irrelevant. We simulate finalising 254 + // these values here via close(), which gives the same behaviour 253 255 -- out/list -- 254 256 Errors: 255 257 fail.ignoreHidden: invalid value [1,1] (does not satisfy list.UniqueItems): equal value (1) at position 0 and 1: ··· 334 336 a: 1 335 337 }] 336 338 339 + // Fully identical closed structs, but with non-concrete values. 340 + structs: list.UniqueItems() & [#c, #c] 341 + 337 342 // Value could still become more specific, and thus different. 338 343 ints: list.UniqueItems() & [int, int] 339 344 ··· 347 352 a: 0 348 353 b: 1 349 354 }] 350 - 351 - // Fully identical closed structs, but with non-concrete values. 352 - structs: list.UniqueItems() & [#c, #c] 353 355 } 354 356 fail: { 355 357 ints: _|_ // fail.ints: invalid value [1,2,1] (does not satisfy list.UniqueItems): equal value (1) at position 0 and 2 ··· 358 360 // Hidden values do not play a role in the comparisson. 359 361 ignoreHidden: _|_ // fail.ignoreHidden: invalid value [1,1] (does not satisfy list.UniqueItems): equal value (1) at position 0 and 1 360 362 361 - // Struct field order is irrelevant. We simulate finalising 362 - // these values here via close(), which gives the same behaviour 363 - // as 'cue vet -c' on otherwise open values. 364 - structOrderIrrelevant: _|_ // fail.structOrderIrrelevant: invalid value [{b:1,a:0},{a:0,b:1}] (does not satisfy list.UniqueItems): equal values at position 0 and 1 365 - 366 363 // This can be a permanent error, as the optional field of the second 367 364 // element is erroneous an cannot match. 368 365 ignoreOptError: [{ ··· 371 368 a: 1 372 369 b?: int & string 373 370 }] 371 + 372 + // Struct field order is irrelevant. We simulate finalising 373 + // these values here via close(), which gives the same behaviour 374 + // as 'cue vet -c' on otherwise open values. 375 + structOrderIrrelevant: _|_ // fail.structOrderIrrelevant: invalid value [{b:1,a:0},{a:0,b:1}] (does not satisfy list.UniqueItems): equal values at position 0 and 1 374 376 }
+61 -61
pkg/path/testdata/os.txtar
··· 155 155 #OSes: ["unix", "windows", "plan9"] 156 156 #AnyOS: "unix" | "windows" | "plan9" 157 157 Split: { 158 - default: { 159 - "/foo/bar/baz": ["/foo/bar/", "baz"] 160 - "a/b": ["a/", "b"] 161 - "//host/share/foo": ["//host/share/", "foo"] 162 - "\\\\host\\share\\foo": ["", "\\\\host\\share\\foo"] 163 - "c:/foo/bar": ["c:/foo/", "bar"] 164 - "c:\\foo\\bar": ["", "c:\\foo\\bar"] 165 - } 166 158 unix: { 167 159 "/foo/bar/baz": ["/foo/bar/", "baz"] 168 160 "a/b": ["a/", "b"] ··· 183 176 "a/b": ["a/", "b"] 184 177 "//host/share/foo": ["//host/share/", "foo"] 185 178 "\\\\host\\share\\foo": ["\\\\host\\share\\", "foo"] 179 + "c:/foo/bar": ["c:/foo/", "bar"] 180 + "c:\\foo\\bar": ["c:\\foo\\", "bar"] 181 + } 182 + default: { 183 + "/foo/bar/baz": ["/foo/bar/", "baz"] 184 + "a/b": ["a/", "b"] 185 + "//host/share/foo": ["//host/share/", "foo"] 186 + "\\\\host\\share\\foo": ["", "\\\\host\\share\\foo"] 186 187 "c:/foo/bar": ["c:/foo/", "bar"] 187 - "c:\\foo\\bar": ["c:\\foo\\", "bar"] 188 + "c:\\foo\\bar": ["", "c:\\foo\\bar"] 188 189 } 189 190 } 190 191 SplitList: { ··· 205 206 } 206 207 } 207 208 Clean: { 208 - default: { 209 - "abc//def//ghi": "abc/def/ghi" 210 - "c:\\abc\\def\\..\\..": "c:\\abc\\def\\..\\.." 211 - } 212 209 unix: { 213 210 "abc//def//ghi": "abc/def/ghi" 214 211 "c:\\abc\\def\\..\\..": "c:\\abc\\def\\..\\.." ··· 221 218 "abc//def//ghi": "abc\\def\\ghi" 222 219 "c:\\abc\\def\\..\\..": "c:\\" 223 220 } 221 + default: { 222 + "abc//def//ghi": "abc/def/ghi" 223 + "c:\\abc\\def\\..\\..": "c:\\abc\\def\\..\\.." 224 + } 224 225 } 225 226 Match: { 226 - default: { 227 - "*c": { 228 - abc: true 229 - } 230 - "*.txt": { 231 - "a/b.txt": false 232 - } 233 - "*.zip": { 234 - "c:\\a\\b\\file.zip": true 235 - } 236 - } 237 227 unix: { 238 228 "*c": { 239 229 abc: true ··· 264 254 } 265 255 "*.zip": { 266 256 "c:\\a\\b\\file.zip": false 257 + } 258 + } 259 + default: { 260 + "*c": { 261 + abc: true 262 + } 263 + "*.txt": { 264 + "a/b.txt": false 265 + } 266 + "*.zip": { 267 + "c:\\a\\b\\file.zip": true 267 268 } 268 269 } 269 270 } ··· 336 337 } 337 338 } 338 339 Ext: { 339 - default: { 340 - // Same for all OS-es 341 - "path.go": ".go" 342 - "path.pb.go": ".go" 343 - "a.dir/b": "" 344 - "a.dir/b.go": ".go" 345 - "a.dir/": "" 346 - 347 - // Differs on Windows. 348 - "a.dir\\foo": ".dir\\foo" 349 - } 350 340 unix: { 351 341 // Same for all OS-es 352 342 "path.go": ".go" ··· 378 369 379 370 // Differs on Windows. 380 371 "a.dir\\foo": "" 372 + } 373 + default: { 374 + // Same for all OS-es 375 + "path.go": ".go" 376 + "path.pb.go": ".go" 377 + "a.dir/b": "" 378 + "a.dir/b.go": ".go" 379 + "a.dir/": "" 380 + 381 + // Differs on Windows. 382 + "a.dir\\foo": ".dir\\foo" 381 383 } 382 384 } 383 385 Resolve: { 384 - default: { 385 - "a/b/c": { 386 - "d/e": "a/b/c/d/e" 387 - } 388 - "/a/b": { 389 - "/c/d": "/c/d" 390 - } 391 - "c:/a": { 392 - "d:\\": "c:/a/d:\\" 393 - } 394 - "//home/user/foo": { 395 - bar: "/home/user/foo/bar" 396 - "//other/abs/foo": "/other/abs/foo" 397 - } 398 - } 399 386 unix: { 400 387 "a/b/c": { 401 388 "d/e": "a/b/c/d/e" ··· 434 422 } 435 423 "c:/a": { 436 424 "d:\\": "d:\\" 425 + } 426 + "//home/user/foo": { 427 + bar: "\\\\home\\user\\foo\\bar" 428 + "//other/abs/foo": "\\\\other\\abs\\foo" 429 + } 430 + } 431 + default: { 432 + "a/b/c": { 433 + "d/e": "a/b/c/d/e" 434 + } 435 + "/a/b": { 436 + "/c/d": "/c/d" 437 + } 438 + "c:/a": { 439 + "d:\\": "c:/a/d:\\" 437 440 } 438 441 "//home/user/foo": { 439 - bar: "\\\\home\\user\\foo\\bar" 440 - "//other/abs/foo": "\\\\other\\abs\\foo" 442 + "//other/abs/foo": "/other/abs/foo" 443 + bar: "/home/user/foo/bar" 441 444 } 442 445 } 443 446 } 444 447 IsAbs: { 445 - default: { 446 - "": false 447 - "/a": true 448 - a: false 449 - "c:": false 450 - "c:/": false 451 - "c:\\": false 452 - "//home/user/foo": true 453 - } 454 448 unix: { 455 449 "": false 456 450 "/a": true ··· 476 470 "c:": false 477 471 "c:/": true 478 472 "c:\\": true 473 + "//home/user/foo": true 474 + } 475 + default: { 476 + "": false 477 + "/a": true 478 + a: false 479 + "c:": false 480 + "c:/": false 481 + "c:\\": false 479 482 "//home/user/foo": true 480 483 } 481 484 }
+3 -3
pkg/time/testdata/gen.txtar
··· 41 41 } 42 42 split: { 43 43 t1: { 44 - year: 2017 45 - month: 7 46 44 day: 14 47 45 hour: 2 48 46 minute: 40 49 - second: 0 47 + month: 7 50 48 nanosecond: 123456 49 + second: 0 50 + year: 2017 51 51 } 52 52 }
+12 -12
tools/flow/testdata/dep.txtar
··· 102 102 103 103 -- out/run/t1/value -- 104 104 { 105 - b: 3 106 105 $id: "valToOut" 106 + b: 3 107 107 } 108 108 -- out/run/t1/stats -- 109 109 Leaks: 0 ··· 137 137 138 138 -- out/run/t2/value -- 139 139 { 140 + $id: "valToOut" 140 141 x: { 141 142 foo: 3 142 143 } 143 - $id: "valToOut" 144 144 index: int 145 145 } 146 146 -- out/run/t2/stats -- ··· 175 175 176 176 -- out/run/t3/value -- 177 177 { 178 - x: [0, 1][INDEX] 179 178 $id: "valToOut" 179 + x: [0, 1][INDEX] 180 180 181 181 //cue:path: root.concreteValueInGeneratedSubfield.index 182 182 let INDEX = int ··· 213 213 214 214 -- out/run/t4/value -- 215 215 { 216 + $id: "valToOut" 216 217 $after: { 218 + $id: "valToOut" 217 219 x: [0, 1][INDEX] 218 - $id: "valToOut" 219 220 } 220 - $id: "valToOut" 221 - x: 3 221 + x: 3 222 222 223 223 //cue:path: root.concreteValueInGeneratedSubfield.index 224 224 let INDEX = int ··· 255 255 256 256 -- out/run/t5/value -- 257 257 { 258 - x: 3 259 258 $id: "valToOut" 259 + x: 3 260 260 } 261 261 -- out/run/t5/stats -- 262 262 Leaks: 0 ··· 290 290 291 291 -- out/run/t6/value -- 292 292 { 293 + $id: "valToOut" 293 294 x: { 294 - x: 3 295 295 $id: "valToOut" 296 + x: 3 296 297 } 297 - $id: "valToOut" 298 298 incomplete: _ 299 299 } 300 300 -- out/run/t6/stats -- ··· 329 329 330 330 -- out/run/t7/value -- 331 331 { 332 + $id: "valToOut" 332 333 x: { 333 334 for x in INCOMPLETE {} 334 335 } 335 - $id: "valToOut" 336 336 337 337 //cue:path: root.indirectTaskRootReference.incomplete 338 338 let INCOMPLETE = _ ··· 369 369 370 370 -- out/run/t8/value -- 371 371 { 372 - x: [X] 373 372 $id: "valToOut" 373 + x: [X] 374 374 375 375 //cue:path: root.incompleteComprehensionSource.x 376 376 let X = { ··· 412 412 413 413 -- out/run/t9/value -- 414 414 { 415 + $id: "valToOut" 415 416 x: { 416 417 foo: [X_1] 417 418 } 418 - $id: "valToOut" 419 419 420 420 //cue:path: root.incompleteComprehensionSource.x 421 421 let X_1 = {
+2 -2
tools/flow/testdata/dynamic.txtar
··· 61 61 -- out/run/t2/value -- 62 62 { 63 63 $id: "sequenced" 64 - seq: 2 65 64 out: "foo2" 65 + seq: 2 66 66 val: "foo2" 67 67 } 68 68 -- out/run/t3 -- ··· 81 81 $id: "list" 82 82 $after: [{ 83 83 $id: "sequenced" 84 - seq: 2 85 84 out: "foo2" 85 + seq: 2 86 86 val: "foo2" 87 87 }] 88 88 out: [1, 2]
+3 -41
tools/flow/testdata/issue2416a.txtar
··· 74 74 $id: "tool/file.Mkdir" 75 75 path: "output" 76 76 createParents: true 77 - stdout: "foo" 78 77 permissions: 511 79 - } 80 - -- out/run-v3/t2/value -- 81 - { 82 - $after: { 83 - $id: "tool/file.Mkdir" 84 - path: "output" 85 - createParents: true 86 - stdout: "foo" 87 - permissions: 511 88 - } 89 - $id: "tool/file.Create" 90 - filename: "output/dns-records.zone" 91 - permissions: 438 92 - contents: """ 93 - kube-vagrant-monitoring-proxy A 127.0.0.1 94 - 95 - """ 96 - stdout: "foo" 78 + stdout: "foo" 97 79 } 98 - -- diff/-out/run-v3/t2/value<==>+out/run/t2/value -- 99 - diff old new 100 - --- old 101 - +++ new 102 - @@ -1,5 +1,4 @@ 103 - { 104 - - $id: "tool/file.Create" 105 - $after: { 106 - $id: "tool/file.Mkdir" 107 - path: "output" 108 - @@ -7,6 +6,7 @@ 109 - stdout: "foo" 110 - permissions: 511 111 - } 112 - + $id: "tool/file.Create" 113 - filename: "output/dns-records.zone" 114 - permissions: 438 115 - contents: """ 116 - -- diff/value/todo/p3 -- 117 - Reordering. 118 80 -- out/run/t1/stats -- 119 81 Leaks: 0 120 82 Freed: 56 ··· 133 95 134 96 -- out/run/t2/value -- 135 97 { 136 - $id: "tool/file.Create" 137 98 $after: { 138 99 $id: "tool/file.Mkdir" 139 100 path: "output" 140 101 createParents: true 141 - stdout: "foo" 142 102 permissions: 511 103 + stdout: "foo" 143 104 } 105 + $id: "tool/file.Create" 144 106 filename: "output/dns-records.zone" 145 107 permissions: 438 146 108 contents: """
+17
tools/flow/testdata/issue2490.txtar
··· 23 23 graph TD 24 24 t0("root.foo [Terminated]") 25 25 26 + -- out/run-v3/t1/value -- 27 + { 28 + $id: "tool/cli.Print" 29 + text: "{}" 30 + stdout: "foo" 31 + } 32 + -- diff/-out/run-v3/t1/value<==>+out/run/t1/value -- 33 + diff old new 34 + --- old 35 + +++ new 36 + @@ -1,5 +1,5 @@ 37 + { 38 + $id: "tool/cli.Print" 39 + - stdout: "foo" 40 + text: "{}" 41 + + stdout: "foo" 42 + } 26 43 -- out/run/t1/value -- 27 44 { 28 45 $id: "tool/cli.Print"
+2 -2
tools/flow/testdata/issue2517.txtar
··· 52 52 53 53 -- out/run/t2/value -- 54 54 { 55 - $id: "run" 56 - stdout: "foo" 55 + $id: "run" 57 56 env: { 58 57 input: "foo" 59 58 } 59 + stdout: "foo" 60 60 } 61 61 -- out/run/t2/stats -- 62 62 Leaks: 0
+2 -2
tools/flow/testdata/issue2965.txtar
··· 55 55 56 56 -- out/run/t2/value -- 57 57 { 58 - $id: "run" 59 - stdout: "foo" 58 + $id: "run" 60 59 env: { 61 60 input: "foo" 62 61 } 62 + stdout: "foo" 63 63 } 64 64 -- out/run/t2/stats -- 65 65 Leaks: 0
+20 -20
tools/flow/testdata/slice.txtar
··· 24 24 -- out/run/errors -- 25 25 -- out/run/t0 -- 26 26 graph TD 27 - t0("root[0] [Ready]") 27 + t0("root[2] [Waiting]") 28 + t0-->t2 29 + t0-->t1 28 30 t1("root[1] [Waiting]") 29 - t1-->t0 30 - t2("root[2] [Waiting]") 31 - t2-->t0 32 - t2-->t1 31 + t1-->t2 32 + t2("root[0] [Ready]") 33 33 34 34 -- out/run/t1 -- 35 35 graph TD 36 - t0("root[0] [Terminated]") 36 + t0("root[2] [Waiting]") 37 + t0-->t2 38 + t0-->t1 37 39 t1("root[1] [Ready]") 38 - t1-->t0 39 - t2("root[2] [Waiting]") 40 - t2-->t0 41 - t2-->t1 40 + t1-->t2 41 + t2("root[0] [Terminated]") 42 42 43 43 -- out/run/t1/value -- 44 44 { ··· 58 58 Disjuncts: 17 59 59 -- out/run/t2 -- 60 60 graph TD 61 - t0("root[0] [Terminated]") 61 + t0("root[2] [Ready]") 62 + t0-->t2 63 + t0-->t1 62 64 t1("root[1] [Terminated]") 63 - t1-->t0 64 - t2("root[2] [Ready]") 65 - t2-->t0 66 - t2-->t1 65 + t1-->t2 66 + t2("root[0] [Terminated]") 67 67 68 68 -- out/run/t2/value -- 69 69 { ··· 88 88 Disjuncts: 17 89 89 -- out/run/t3 -- 90 90 graph TD 91 - t0("root[0] [Terminated]") 91 + t0("root[2] [Terminated]") 92 + t0-->t2 93 + t0-->t1 92 94 t1("root[1] [Terminated]") 93 - t1-->t0 94 - t2("root[2] [Terminated]") 95 - t2-->t0 96 - t2-->t1 95 + t1-->t2 96 + t2("root[0] [Terminated]") 97 97 98 98 -- out/run/t3/value -- 99 99 {
+1 -72
tools/flow/testdata/template.txtar
··· 36 36 t1("root.convert [Ready]") 37 37 t1-->t0 38 38 39 - -- out/run-v3/t1/value -- 40 - { 41 - $id: "tool/http.Do" 42 - method: "GET" 43 - stdout: "foo" 44 - request: { 45 - body: "" 46 - } 47 - url: "https://raw.githubusercontent.com/SchemaStore/schemastore/f7a0789ccb3bd74a720ddbd6691d60fd9e2d8b7a/src/schemas/json/github-workflow.json" 48 - } 49 - -- out/run-v3/t2/value -- 50 - { 51 - $id: "tool/exec.Run" 52 - stdin: GET.response.body & (*null | string | bytes) 53 - cmd: "go run cuelang.org/go/cmd/cue import -f -p json -l #Workflow: jsonschema: - --outfile pkg/github.com/SchemaStore/schemastore/src/schemas/json/github-workflow.cue" 54 - env: {} | [] 55 - stdout: "foo" 56 - stderr: null 57 - success: bool 58 - mustSucceed: true 59 - 60 - //cue:path: root.get 61 - let GET = { 62 - $id: "tool/http.Do" 63 - method: "GET" 64 - url: string 65 - request: { 66 - body: *bytes | string 67 - } 68 - } & { 69 - request: { 70 - body: "" 71 - } 72 - stdout: "foo" 73 - url: "https://raw.githubusercontent.com/SchemaStore/schemastore/f7a0789ccb3bd74a720ddbd6691d60fd9e2d8b7a/src/schemas/json/github-workflow.json" 74 - } 75 - } 76 - -- diff/-out/run-v3/t1/value<==>+out/run/t1/value -- 77 - diff old new 78 - --- old 79 - +++ new 80 - @@ -2,8 +2,8 @@ 81 - $id: "tool/http.Do" 82 - method: "GET" 83 - stdout: "foo" 84 - - url: "https://raw.githubusercontent.com/SchemaStore/schemastore/f7a0789ccb3bd74a720ddbd6691d60fd9e2d8b7a/src/schemas/json/github-workflow.json" 85 - request: { 86 - body: "" 87 - } 88 - + url: "https://raw.githubusercontent.com/SchemaStore/schemastore/f7a0789ccb3bd74a720ddbd6691d60fd9e2d8b7a/src/schemas/json/github-workflow.json" 89 - } 90 - -- diff/-out/run-v3/t2/value<==>+out/run/t2/value -- 91 - diff old new 92 - --- old 93 - +++ new 94 - @@ -1,10 +1,10 @@ 95 - { 96 - - $id: "tool/exec.Run" 97 - - cmd: "go run cuelang.org/go/cmd/cue import -f -p json -l #Workflow: jsonschema: - --outfile pkg/github.com/SchemaStore/schemastore/src/schemas/json/github-workflow.cue" 98 - + $id: "tool/exec.Run" 99 - + stdin: GET.response.body & (*null | string | bytes) 100 - + cmd: "go run cuelang.org/go/cmd/cue import -f -p json -l #Workflow: jsonschema: - --outfile pkg/github.com/SchemaStore/schemastore/src/schemas/json/github-workflow.cue" 101 - env: {} | [] 102 - stdout: "foo" 103 - stderr: null 104 - - stdin: GET.response.body & (*null | string | bytes) 105 - success: bool 106 - mustSucceed: true 107 - 108 - -- diff/value/p3 -- 109 - Reordering. 110 39 -- out/run/t1/value -- 111 40 { 112 41 $id: "tool/http.Do" 113 42 method: "GET" 114 - stdout: "foo" 115 43 url: "https://raw.githubusercontent.com/SchemaStore/schemastore/f7a0789ccb3bd74a720ddbd6691d60fd9e2d8b7a/src/schemas/json/github-workflow.json" 116 44 request: { 117 45 body: "" 118 46 } 47 + stdout: "foo" 119 48 } 120 49 -- out/run/t1/stats -- 121 50 Leaks: 0