def can_infer_type_of_slice(): node = nodes.slice(nodes.str_literal(""), nodes.int_literal(4), nodes.none()) assert_equal( types.slice_type(types.str_type, types.int_type, types.none_type), infer(node) )
def test_parse_subscript_with_slice(): expected = nodes.subscript( nodes.ref("x"), nodes.slice(nodes.ref("a"), nodes.ref("b"), nodes.ref("c")), ) _assert_expression_parse(expected, "x[a:b:c]")
def test_missing_subscript_slice_values_are_treated_as_none(): expected = nodes.subscript(nodes.ref("x"), nodes.slice(nodes.none(), nodes.none(), nodes.none())) _assert_expression_parse(expected, "x[:]")
def test_transform(self): _assert_transform( nodes.slice(nodes.ref("x"), nodes.ref("y"), nodes.none()), cc.call(cc.builtin("slice"), [cc.ref("x"), cc.ref("y"), cc.none]), )