summaryrefslogtreecommitdiff
path: root/tests/basics/slice_optimise.py
blob: f663e16b8c2f9837ea244244ff251820f282b530 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# Test that the slice-on-stack optimisation does not break various uses of slice
# (see MP_TYPE_FLAG_SUBSCR_ALLOWS_STACK_SLICE type option).
#
# Note: this test has a corresponding .py.exp file because hashing slice objects
# was not allowed in CPython until 3.12.

try:
    from collections import OrderedDict
except ImportError:
    print("SKIP")
    raise SystemExit

# Attempt to index with a slice, error should contain the slice (failed key).
try:
    dict()[:]
except KeyError as e:
    print("KeyError", e.args)

# Put a slice and another object into an OrderedDict, and retrieve them.
x = OrderedDict()
x[:"a"] = 1
x["b"] = 2
print(list(x.keys()), list(x.values()))