# DO NOT EDIT; generated by go run testdata/gen.go
#
#name: range unification
#evalPartial
-- in.cue --
	// with concrete values
a1: >=1 & <=5 & 3
a2: >=1 & <=5 & 1
a3: >=1 & <=5 & 5
a4: >=1 & <=5 & 6
a5: >=1 & <=5 & 0

a6:  3 & >=1 & <=5
a7:  1 & >=1 & <=5
a8:  5 & >=1 & <=5
a9:  6 & >=1 & <=5
a10: 0 & >=1 & <=5

// with ranges
b1: >=1 & <=5 & >=1 & <=5
b2: >=1 & <=5 & >=1 & <=1
b3: >=1 & <=5 & >=5 & <=5
b4: >=1 & <=5 & >=2 & <=3
b5: >=1 & <=5 & >=3 & <=9
b6: >=1 & <=5 & >=5 & <=9
b7: >=1 & <=5 & >=6 & <=9

b8:  >=1 & <=5 & >=1 & <=5
b9:  >=1 & <=1 & >=1 & <=5
b10: >=5 & <=5 & >=1 & <=5
b11: >=2 & <=3 & >=1 & <=5
b12: >=3 & <=9 & >=1 & <=5
b13: >=5 & <=9 & >=1 & <=5
b14: >=6 & <=9 & >=1 & <=5

// ranges with more general types
c1: int & >=1 & <=5
c2: >=1 & <=5 & int
c3: string & >=1 & <=5
c4: >=1 & <=5 & string

// other types
s1: >="d" & <="z" & "e"
s2: >="d" & <="z" & "ee"

n1: number & >=1 & <=2
n2: int & >=1.1 & <=1.3
n3: >=1.0 & <=3.0 & 2
n4: >=0.0 & <=0.1 & 0.09999
n5: >=1 & <=5 & 2.5
-- out/def --
	// with concrete values
a1:  3
a2:  1
a3:  5
a4:  _|_ // invalid value 6 (out of bound <=5)
a5:  _|_ // invalid value 0 (out of bound >=1)
a6:  3
a7:  1
a8:  5
a9:  _|_ // invalid value 6 (out of bound <=5)
a10: _|_ // invalid value 0 (out of bound >=1)

// with ranges
b1:  >=1 & <=5
b2:  1
b3:  5
b4:  >=2 & <=3
b5:  >=3 & <=5
b6:  5
b7:  _|_ // conflicting bounds >=6 and <=5
b8:  >=1 & <=5
b9:  1
b10: 5
b11: >=2 & <=3
b12: >=3 & <=5
b13: 5
b14: _|_ // conflicting bounds >=6 and <=5

// ranges with more general types
c1: uint & >=1 & <=5
c2: uint & >=1 & <=5
c3: _|_ // conflicting values string and >=1 (mismatched types string and number)
c4: _|_ // conflicting values (>=1 & <=5) and string (mismatched types number and string)

// other types
s1: "e"
s2: "ee"
n1: >=1 & <=2
n2: _|_ // conflicting bounds int & >=1.1 and <=1.3
n3: 2
n4: 0.09999
n5: 2.5
-- out/legacy-debug --
<0>{a1: 3, a2: 1, a3: 5, a4: _|_((<=5 & 6):invalid value 6 (out of bound <=5)), a5: _|_((>=1 & 0):invalid value 0 (out of bound >=1)), a6: 3, a7: 1, a8: 5, a9: _|_((<=5 & 6):invalid value 6 (out of bound <=5)), a10: _|_((>=1 & 0):invalid value 0 (out of bound >=1)), b1: (>=1 & <=5), b2: 1, b3: 5, b4: (>=2 & <=3), b5: (>=3 & <=5), b6: 5, b7: _|_(conflicting bounds >=6 and <=5), b8: (>=1 & <=5), b9: 1, b10: 5, b11: (>=2 & <=3), b12: (>=3 & <=5), b13: 5, b14: _|_(conflicting bounds >=6 and <=5), c1: (int & >=1 & <=5), c2: (<=5 & int & >=1), c3: _|_((string & >=1):conflicting values string and >=1 (mismatched types string and number)), c4: _|_(((>=1 & <=5) & string):conflicting values (>=1 & <=5) and string (mismatched types number and string)), s1: "e", s2: "ee", n1: (>=1 & <=2), n2: _|_(conflicting bounds int & >=1.1 and <=1.3), n3: 2, n4: 0.09999, n5: 2.5}
-- out/compile --
--- in.cue
{
  a1: ((>=1 & <=5) & 3)
  a2: ((>=1 & <=5) & 1)
  a3: ((>=1 & <=5) & 5)
  a4: ((>=1 & <=5) & 6)
  a5: ((>=1 & <=5) & 0)
  a6: ((3 & >=1) & <=5)
  a7: ((1 & >=1) & <=5)
  a8: ((5 & >=1) & <=5)
  a9: ((6 & >=1) & <=5)
  a10: ((0 & >=1) & <=5)
  b1: (((>=1 & <=5) & >=1) & <=5)
  b2: (((>=1 & <=5) & >=1) & <=1)
  b3: (((>=1 & <=5) & >=5) & <=5)
  b4: (((>=1 & <=5) & >=2) & <=3)
  b5: (((>=1 & <=5) & >=3) & <=9)
  b6: (((>=1 & <=5) & >=5) & <=9)
  b7: (((>=1 & <=5) & >=6) & <=9)
  b8: (((>=1 & <=5) & >=1) & <=5)
  b9: (((>=1 & <=1) & >=1) & <=5)
  b10: (((>=5 & <=5) & >=1) & <=5)
  b11: (((>=2 & <=3) & >=1) & <=5)
  b12: (((>=3 & <=9) & >=1) & <=5)
  b13: (((>=5 & <=9) & >=1) & <=5)
  b14: (((>=6 & <=9) & >=1) & <=5)
  c1: ((int & >=1) & <=5)
  c2: ((>=1 & <=5) & int)
  c3: ((string & >=1) & <=5)
  c4: ((>=1 & <=5) & string)
  s1: ((>="d" & <="z") & "e")
  s2: ((>="d" & <="z") & "ee")
  n1: ((number & >=1) & <=2)
  n2: ((int & >=1.1) & <=1.3)
  n3: ((>=1.0 & <=3.0) & 2)
  n4: ((>=0.0 & <=0.1) & 0.09999)
  n5: ((>=1 & <=5) & 2.5)
}
-- out/eval --
Errors:
b14: incompatible bounds >=6 and <=5
b7: incompatible bounds >=6 and <=5
c3: invalid value <=5 (mismatched types number and string)
c3: invalid value >=1 (mismatched types number and string)
c4: invalid value string (mismatched types string and number)
n2: incompatible bounds >=1.1 and <=1.3
a4: invalid value 6 (out of bound <=5):
    ./in.cue:5:11
a5: invalid value 0 (out of bound >=1):
    ./in.cue:6:5
a9: invalid value 6 (out of bound <=5):
    ./in.cue:11:16
a10: invalid value 0 (out of bound >=1):
    ./in.cue:12:10

Result:
(_|_){
  // [eval]
  a1: (int){ 3 }
  a2: (int){ 1 }
  a3: (int){ 5 }
  a4: (_|_){
    // [eval] a4: invalid value 6 (out of bound <=5):
    //     ./in.cue:5:11
  }
  a5: (_|_){
    // [eval] a5: invalid value 0 (out of bound >=1):
    //     ./in.cue:6:5
  }
  a6: (int){ 3 }
  a7: (int){ 1 }
  a8: (int){ 5 }
  a9: (_|_){
    // [eval] a9: invalid value 6 (out of bound <=5):
    //     ./in.cue:11:16
  }
  a10: (_|_){
    // [eval] a10: invalid value 0 (out of bound >=1):
    //     ./in.cue:12:10
  }
  b1: (number){ &(>=1, <=5) }
  b2: (number){ 1 }
  b3: (number){ 5 }
  b4: (number){ &(>=2, <=3) }
  b5: (number){ &(>=3, <=5) }
  b6: (number){ 5 }
  b7: (_|_){
    // [eval] b7: incompatible bounds >=6 and <=5
  }
  b8: (number){ &(>=1, <=5) }
  b9: (number){ 1 }
  b10: (number){ 5 }
  b11: (number){ &(>=2, <=3) }
  b12: (number){ &(>=3, <=5) }
  b13: (number){ 5 }
  b14: (_|_){
    // [eval] b14: incompatible bounds >=6 and <=5
  }
  c1: (int){ &(>=1, <=5, int) }
  c2: (int){ &(>=1, <=5, int) }
  c3: (_|_){
    // [eval] c3: invalid value <=5 (mismatched types number and string)
    // c3: invalid value >=1 (mismatched types number and string)
  }
  c4: (_|_){
    // [eval] c4: invalid value string (mismatched types string and number)
  }
  s1: (string){ "e" }
  s2: (string){ "ee" }
  n1: (number){ &(>=1, <=2) }
  n2: (_|_){
    // [eval] n2: incompatible bounds >=1.1 and <=1.3
  }
  n3: (int){ 2 }
  n4: (float){ 0.09999 }
  n5: (float){ 2.5 }
}
