feat(checker): evaluate unary op on literals
This commit is contained in:
@@ -913,6 +913,22 @@ class PythonTyper(
|
|||||||
pairs.append((key_val, value_val))
|
pairs.append((key_val, value_val))
|
||||||
return True, dict(pairs)
|
return True, dict(pairs)
|
||||||
|
|
||||||
|
case p.UnaryExpr(operator=operator, right=operand):
|
||||||
|
is_lit, operand_val = self._get_literal(operand)
|
||||||
|
if not is_lit:
|
||||||
|
return False, None
|
||||||
|
match operator:
|
||||||
|
case ast.UAdd():
|
||||||
|
return True, operand_val
|
||||||
|
case ast.USub():
|
||||||
|
return True, -operand_val
|
||||||
|
case ast.Invert():
|
||||||
|
return True, ~operand_val
|
||||||
|
case ast.Not():
|
||||||
|
return True, not operand_val
|
||||||
|
case _: # Should never be reached
|
||||||
|
return False, None
|
||||||
|
|
||||||
case _:
|
case _:
|
||||||
return False, None
|
return False, None
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user