| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 |
- # Test cases for unreachable expressions
- [case testUnreachableMemberExpr]
- import sys
- def f() -> None:
- y = sys.platform == "x" and sys.version_info > (3, 5)
- [out]
- def f():
- r0 :: object
- r1 :: str
- r2 :: object
- r3, r4 :: str
- r5 :: int32
- r6 :: bit
- r7 :: object
- r8, r9, r10 :: bit
- r11, r12 :: bool
- r13 :: object
- r14 :: str
- r15 :: object
- r16 :: tuple[int, int]
- r17, r18 :: object
- r19, y :: bool
- L0:
- r0 = sys :: module
- r1 = 'platform'
- r2 = CPyObject_GetAttr(r0, r1)
- r3 = cast(str, r2)
- r4 = 'x'
- r5 = PyUnicode_Compare(r3, r4)
- r6 = r5 == -1
- if r6 goto L1 else goto L3 :: bool
- L1:
- r7 = PyErr_Occurred()
- r8 = r7 != 0
- if r8 goto L2 else goto L3 :: bool
- L2:
- r9 = CPy_KeepPropagating()
- L3:
- r10 = r5 == 0
- if r10 goto L5 else goto L4 :: bool
- L4:
- r11 = r10
- goto L6
- L5:
- r12 = raise RuntimeError('mypyc internal error: should be unreachable')
- r13 = box(None, 1)
- r14 = 'version_info'
- r15 = CPyObject_GetAttr(r13, r14)
- r16 = (6, 10)
- r17 = box(tuple[int, int], r16)
- r18 = PyObject_RichCompare(r15, r17, 4)
- r19 = unbox(bool, r18)
- r11 = r19
- L6:
- y = r11
- return 1
- [case testUnreachableNameExpr]
- import sys
- def f() -> None:
- y = sys.platform == 'x' and foobar
- [out]
- def f():
- r0 :: object
- r1 :: str
- r2 :: object
- r3, r4 :: str
- r5 :: int32
- r6 :: bit
- r7 :: object
- r8, r9, r10 :: bit
- r11, r12 :: bool
- r13 :: object
- r14, y :: bool
- L0:
- r0 = sys :: module
- r1 = 'platform'
- r2 = CPyObject_GetAttr(r0, r1)
- r3 = cast(str, r2)
- r4 = 'x'
- r5 = PyUnicode_Compare(r3, r4)
- r6 = r5 == -1
- if r6 goto L1 else goto L3 :: bool
- L1:
- r7 = PyErr_Occurred()
- r8 = r7 != 0
- if r8 goto L2 else goto L3 :: bool
- L2:
- r9 = CPy_KeepPropagating()
- L3:
- r10 = r5 == 0
- if r10 goto L5 else goto L4 :: bool
- L4:
- r11 = r10
- goto L6
- L5:
- r12 = raise RuntimeError('mypyc internal error: should be unreachable')
- r13 = box(None, 1)
- r14 = unbox(bool, r13)
- r11 = r14
- L6:
- y = r11
- return 1
|