this repo has no description
0
fork

Configure Feed

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

cue/encoding/jsonschema: fix staticcheck errors

This fixes various errors found by staticcheck:

- an unused method is removed
- various usages of cue.Runtime are replaced by cue.Context
- the default case of a switch statement is moved to be last

Updates #2480.

Signed-off-by: Noam Dolovich <noam.tzvi.dolovich@gmail.com>
Change-Id: I0945d3c63fcd581aa7a6f198bc74fc1a56841b5c
Reviewed-on: https://review.gerrithub.io/c/cue-lang/cue/+/1196248
Unity-Result: CUE porcuepine <cue.porcuepine@gmail.com>
TryBot-Result: CUEcueckoo <cueckoo@cuelang.org>
Reviewed-by: Daniel Martí <mvdan@mvdan.cc>

authored by

Noam Dolovich and committed by
Daniel Martí
b095ecb6 b44f02fb

+31 -19
+5 -5
encoding/jsonschema/decode.go
··· 76 76 if ref == nil { 77 77 return f 78 78 } 79 - i, err := v.Lookup(ref...).Fields() 79 + var selectors []cue.Selector 80 + for _, r := range ref { 81 + selectors = append(selectors, cue.Str(r)) 82 + } 83 + i, err := v.LookupPath(cue.MakePath(selectors...)).Fields() 80 84 if err != nil { 81 85 d.errs = errors.Append(d.errs, errors.Promote(err, "")) 82 86 return nil ··· 195 199 if err != nil { 196 200 d.errf(n, "invalid uint") 197 201 } 198 - return n.Syntax(cue.Final()).(ast.Expr) 199 - } 200 - 201 - func (d *decoder) bool(n cue.Value) ast.Expr { 202 202 return n.Syntax(cue.Final()).(ast.Expr) 203 203 } 204 204
+23 -11
encoding/jsonschema/decode_test.go
··· 29 29 30 30 "cuelang.org/go/cue" 31 31 "cuelang.org/go/cue/ast" 32 + "cuelang.org/go/cue/cuecontext" 32 33 "cuelang.org/go/cue/errors" 33 34 "cuelang.org/go/cue/format" 34 35 "cuelang.org/go/cue/token" ··· 68 69 } 69 70 } 70 71 71 - r := &cue.Runtime{} 72 - var in *cue.Instance 72 + ctx := cuecontext.New() 73 + var v cue.Value 73 74 var out, errout []byte 74 75 outIndex := -1 75 76 errIndex := -1 ··· 77 78 for i, f := range a.Files { 78 79 switch path.Ext(f.Name) { 79 80 case ".json": 80 - in, err = json.Decode(r, f.Name, f.Data) 81 + expr, err := json.Extract(f.Name, f.Data) 82 + if err != nil { 83 + t.Fatal(err) 84 + } 85 + v = ctx.BuildExpr(expr) 81 86 case ".yaml": 82 - in, err = yaml.Decode(r, f.Name, f.Data) 87 + file, err := yaml.Extract(f.Name, f.Data) 88 + if err != nil { 89 + t.Fatal(err) 90 + } 91 + v = ctx.BuildFile(file) 83 92 case ".cue": 84 93 out = f.Data 85 94 outIndex = i ··· 94 103 95 104 updated := false 96 105 97 - expr, err := Extract(in, cfg) 106 + expr, err := Extract(v, cfg) 98 107 if err != nil { 99 108 got := []byte(errors.Details(err, nil)) 100 109 ··· 120 129 121 130 // verify the generated CUE. 122 131 if !bytes.Contains(a.Comment, []byte("#noverify")) { 123 - if _, err = r.Compile(fullpath, b); err != nil { 132 + v := ctx.CompileBytes(b, cue.Filename(fullpath)) 133 + if err := v.Err(); err != nil { 124 134 t.Fatal(errors.Details(err, nil)) 125 135 } 126 136 } ··· 160 170 161 171 a := txtar.Parse([]byte(data)) 162 172 163 - r := &cue.Runtime{} 164 - var in *cue.Instance 173 + ctx := cuecontext.New() 174 + var v cue.Value 165 175 var err error 166 176 for _, f := range a.Files { 167 177 switch path.Ext(f.Name) { 168 178 case ".json": 169 - in, err = json.Decode(r, f.Name, f.Data) 179 + expr, err := json.Extract(f.Name, f.Data) 170 180 if err != nil { 171 181 t.Fatal(err) 172 182 } 183 + v = ctx.BuildExpr(expr) 173 184 case ".yaml": 174 - in, err = yaml.Decode(r, f.Name, f.Data) 185 + file, err := yaml.Extract(f.Name, f.Data) 175 186 if err != nil { 176 187 t.Fatal(err) 177 188 } 189 + v = ctx.BuildFile(file) 178 190 } 179 191 } 180 192 181 193 cfg := &Config{ID: "test"} 182 - expr, err := Extract(in, cfg) 194 + expr, err := Extract(v, cfg) 183 195 if err != nil { 184 196 t.Fatal(err) 185 197 }
+3 -3
encoding/jsonschema/ref.go
··· 265 265 266 266 return label{a[1], false}, a[2:] 267 267 268 - default: 269 - return label{elem, false}, a[1:] 270 - 271 268 case "additionalProperties", 272 269 "patternProperties", 273 270 "items", ··· 278 275 279 276 // Other known fields cannot be supported. 280 277 return label{}, nil 278 + 279 + default: 280 + return label{elem, false}, a[1:] 281 281 } 282 282 } 283 283