Skip to content

pkg/list: Contains does not validate nested usages #4212

@tvandinther

Description

@tvandinther

What version of CUE are you using (cue version)?

$ cue version
v0.15.0

Does this issue reproduce with the latest stable release?

Yes

What did you do?

import "list"

x: list.Contains({
  a: "foo"
  b: list.Contains({
    c: "bar"
  }) & list.Contains({
    d: "baz"
  })
})

x: [{
  a: "foo"
  b: [{
    c: "bar"
  }, {
    d: "baz"
  }]
}]

https://cuelang.org/play/?id=MlGNaTGd0HH#w=function&i=cue&f=eval&o=cue

An x with extra list values or a b with extra or out of order list values should also unify.

What did you expect to see?

x: [{
  a: "foo"
  b: [{
    c: "bar"
  }, {
    d: "baz"
  }]
}]

What did you see instead?

x: invalid value [{a:"foo",b:[{c:"bar"},{d:"baz"}]}] (does not satisfy list.Contains({a:"foo",b:list.Contains({c:"bar"}) & list.Contains({d:"baz"})})):
    -:3:4
    -:12:4

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions