blob: 7607f881f1284d8b3df10db3430e72a192f08b8b [file] [log] [blame]
-- in.cue --
x0: 5
x1: b5 & 30
b0: <x0 & >0
b1: b0 & int
b2: int & <5.5
b3: <10 & <=5
b4: >=20 & >20
b5: >=21 & >20
b6: int & >5 & <= 6
simplifyExpr: {
less1: <(<3)
less2: <(<=3)
less3: <=(<3)
less4: <=(<=3)
less5: <(!=3)
less6: <=(!=3)
gtr1: >(>3)
gtr2: >(>=3)
gtr3: >=(>3)
gtr4: >=(>=3)
gtr5: >(!=3)
gtr6: >=(!=3)
lg1: <(>3)
lg2: <(>=3)
lg3: <=(>3)
lg4: <=(>=3)
gl1: >(<3)
gl2: >(<=3)
gl3: >=(<3)
gl4: >=(<=3)
ne1: !=(!=3)
ne2: !=(<3)
ne3: !=(<=3)
ne4: !=(>3)
ne5: !=(>=3)
s: string
n: number
i: int
f: float
b: bytes
basic1: <(i)
basic2: >(n)
basic3: >=(s)
basic4: <=(f)
basic5: <=(b)
// Do NOT interpret this the same as `!= type`.
bne1: !=(s)
bne2: !=(n)
bne3: !=(n)
bne4: !=(i)
bne5: !=(b)
e1: <(=~"foo")
e2: >(null)
}
-- out/eval --
Errors:
simplifyExpr.e2: cannot use null for bound >:
./in.cue:62:11
Result:
(_|_){
// [eval]
x0: (int){ 5 }
x1: (int){ 30 }
b0: (number){ &(>0, <5) }
b1: (int){ &(>0, <5, int) }
b2: (int){ &(<5.5, int) }
b3: (number){ <=5 }
b4: (number){ >20 }
b5: (number){ >=21 }
b6: (int){ 6 }
simplifyExpr: (_|_){
// [eval]
less1: (number){ <3 }
less2: (number){ <3 }
less3: (number){ <3 }
less4: (number){ <=3 }
less5: (number){ number }
less6: (number){ number }
gtr1: (number){ >3 }
gtr2: (number){ >3 }
gtr3: (number){ >3 }
gtr4: (number){ >=3 }
gtr5: (number){ number }
gtr6: (number){ number }
lg1: (number){ number }
lg2: (number){ number }
lg3: (number){ number }
lg4: (number){ number }
gl1: (number){ number }
gl2: (number){ number }
gl3: (number){ number }
gl4: (number){ number }
ne1: (int){ 3 }
ne2: (number){ >=3 }
ne3: (number){ >3 }
ne4: (number){ <=3 }
ne5: (number){ <3 }
s: (string){ string }
n: (number){ number }
i: (int){ int }
f: (float){ float }
b: (bytes){ bytes }
basic1: (int){ int }
basic2: (number){ number }
basic3: (string){ string }
basic4: (float){ float }
basic5: (bytes){ bytes }
bne1: (_|_){
// [incomplete] simplifyExpr.bne1: non-concrete value s for bound !=:
// ./in.cue:55:14
}
bne2: (_|_){
// [incomplete] simplifyExpr.bne2: non-concrete value n for bound !=:
// ./in.cue:56:14
}
bne3: (_|_){
// [incomplete] simplifyExpr.bne3: non-concrete value n for bound !=:
// ./in.cue:57:14
}
bne4: (_|_){
// [incomplete] simplifyExpr.bne4: non-concrete value i for bound !=:
// ./in.cue:58:14
}
bne5: (_|_){
// [incomplete] simplifyExpr.bne5: non-concrete value b for bound !=:
// ./in.cue:59:14
}
e1: (_|_){
// [incomplete] simplifyExpr.e1: non-concrete value =~"foo" for bound <:
// ./in.cue:61:11
}
e2: (_|_){
// [eval] simplifyExpr.e2: cannot use null for bound >:
// ./in.cue:62:11
}
}
}
-- out/compile --
--- in.cue
{
x0: 5
x1: (〈0;b5 & 30)
b0: (<〈0;x0 & >0)
b1: (〈0;b0 & int)
b2: (int & <5.5)
b3: (<10 & <=5)
b4: (>=20 & >20)
b5: (>=21 & >20)
b6: ((int & >5) & <=6)
simplifyExpr: {
less1: <<3
less2: <<=3
less3: <=<3
less4: <=<=3
less5: <!=3
less6: <=!=3
gtr1: >>3
gtr2: >>=3
gtr3: >=>3
gtr4: >=>=3
gtr5: >!=3
gtr6: >=!=3
lg1: <>3
lg2: <>=3
lg3: <=>3
lg4: <=>=3
gl1: ><3
gl2: ><=3
gl3: >=<3
gl4: >=<=3
ne1: !=!=3
ne2: !=<3
ne3: !=<=3
ne4: !=>3
ne5: !=>=3
s: string
n: number
i: int
f: float
b: bytes
basic1: <〈0;i
basic2: >〈0;n
basic3: >=〈0;s
basic4: <=〈0;f
basic5: <=〈0;b
bne1: !=〈0;s
bne2: !=〈0;n
bne3: !=〈0;n
bne4: !=〈0;i
bne5: !=〈0;b
e1: <=~"foo"
e2: >null
}
}