blob: c2ef9b789e63dd7e296c9f5650a97a0f0d3b81e7 [file] [log] [blame]
[case testDictGet]
from typing import Dict
def f(d: Dict[int, bool]) -> bool:
return d[0]
[out]
def f(d):
d :: dict
r0 :: short_int
r1, r2 :: object
r3 :: bool
L0:
r0 = 0
r1 = box(short_int, r0)
r2 = d[r1] :: dict
r3 = unbox(bool, r2)
return r3
[case testDictSet]
from typing import Dict
def f(d: Dict[int, bool]) -> None:
d[0] = False
[out]
def f(d):
d :: dict
r0 :: bool
r1 :: short_int
r2, r3 :: object
r4 :: bool
r5 :: None
L0:
r0 = False
r1 = 0
r2 = box(short_int, r1)
r3 = box(bool, r0)
r4 = d.__setitem__(r2, r3) :: dict
r5 = None
return r5
[case testNewEmptyDict]
from typing import Dict
def f() -> None:
d = {} # type: Dict[bool, int]
[out]
def f():
r0, d :: dict
r1 :: None
L0:
r0 = {}
d = r0
r1 = None
return r1
[case testNewDictWithValues]
def f(x: object) -> None:
d = {1: 2, '': x}
[out]
def f(x):
x :: object
r0, r1 :: short_int
r2 :: str
r3, r4 :: object
r5, d :: dict
r6 :: None
L0:
r0 = 1
r1 = 2
r2 = unicode_1 :: static
r3 = box(short_int, r0)
r4 = box(short_int, r1)
r5 = {r3: r4, r2: x}
d = r5
r6 = None
return r6
[case testInDict]
from typing import Dict
def f(d: Dict[int, int]) -> bool:
if 4 in d:
return True
else:
return False
[out]
def f(d):
d :: dict
r0 :: short_int
r1 :: object
r2, r3, r4 :: bool
L0:
r0 = 4
r1 = box(short_int, r0)
r2 = r1 in d :: dict
if r2 goto L1 else goto L2 :: bool
L1:
r3 = True
return r3
L2:
r4 = False
return r4
L3:
unreachable
[case testNotInDict]
from typing import Dict
def f(d: Dict[int, int]) -> bool:
if 4 not in d:
return True
else:
return False
[out]
def f(d):
d :: dict
r0 :: short_int
r1 :: object
r2, r3, r4, r5 :: bool
L0:
r0 = 4
r1 = box(short_int, r0)
r2 = r1 in d :: dict
r3 = !r2
if r3 goto L1 else goto L2 :: bool
L1:
r4 = True
return r4
L2:
r5 = False
return r5
L3:
unreachable
[case testDictUpdate]
from typing import Dict
def f(a: Dict[int, int], b: Dict[int, int]) -> None:
a.update(b)
[out]
def f(a, b):
a, b :: dict
r0 :: bool
r1, r2 :: None
L0:
r0 = a.update(b) :: dict
r1 = None
r2 = None
return r2
[case testDictKeyLvalue]
from typing import Dict
def increment(d: Dict[str, int]) -> Dict[str, int]:
for k in d:
d[k] += 1
return d
[out]
def increment(d):
d :: dict
r0, r1 :: object
r2, k :: str
r3 :: object
r4 :: short_int
r5, r6 :: object
r7, r8 :: bool
L0:
r0 = iter d :: object
L1:
r1 = next r0 :: object
if is_error(r1) goto L4 else goto L2
L2:
r2 = cast(str, r1)
k = r2
r3 = d[k] :: dict
r4 = 1
r5 = box(short_int, r4)
r6 = r3 += r5
r7 = d.__setitem__(k, r6) :: dict
L3:
goto L1
L4:
r8 = no_err_occurred
L5:
return d
[case testDictDisplay]
from typing import Dict
def f(x: str, y: Dict[str, int]) -> Dict[str, int]:
return {x: 2, **y, 'z': 3}
[out]
def f(x, y):
x :: str
y :: dict
r0 :: short_int
r1 :: str
r2 :: short_int
r3 :: object
r4 :: dict
r5 :: bool
r6 :: object
r7 :: bool
L0:
r0 = 2
r1 = unicode_3 :: static ('z')
r2 = 3
r3 = box(short_int, r0)
r4 = {x: r3}
r5 = r4.update(y) (display) :: dict
r6 = box(short_int, r2)
r7 = r4.__setitem__(r1, r6) :: dict
return r4