cinder icon indicating copy to clipboard operation
cinder copied to clipboard

can't compare double to Literal

Open belm0 opened this issue 3 years ago • 1 comments

Is it intentional that a double can't be compared to an integer literal?

    if plus >= 0:
      ^
compiler.errors.TypedSyntaxError: can't compare double to Literal[0]

belm0 avatar Jul 04 '22 05:07 belm0

as an example, this restriction makes a strange situation like the following:

this code is OK:

def clamp(x: double, a: double, b: double) -> double:
    return a if x < a else b if x > b else x

...

clamp(foo, 0, 1)

but applying @inline to clamp causes the invocation to fail:

@inline
def clamp(x: double, a: double, b: double) -> double: ...

...

clamp(foo, 0, 1)
    return a if x < a else b if x > b else x
               ^
compiler.errors.TypedSyntaxError: can't compare double to Literal[0]

belm0 avatar Jul 04 '22 06:07 belm0