| from __future__ import annotations |
| |
| import unittest |
| |
| from mypyc.ir.class_ir import ClassIR |
| from mypyc.ir.rtypes import ( |
| RInstance, |
| RTuple, |
| RUnion, |
| bool_rprimitive, |
| int_rprimitive, |
| list_rprimitive, |
| object_rprimitive, |
| ) |
| |
| |
| class TestTupleNames(unittest.TestCase): |
| def setUp(self) -> None: |
| self.inst_a = RInstance(ClassIR("A", "__main__")) |
| self.inst_b = RInstance(ClassIR("B", "__main__")) |
| |
| def test_names(self) -> None: |
| assert RTuple([int_rprimitive, int_rprimitive]).unique_id == "T2II" |
| assert RTuple([list_rprimitive, object_rprimitive, self.inst_a]).unique_id == "T3OOO" |
| assert RTuple([list_rprimitive, object_rprimitive, self.inst_b]).unique_id == "T3OOO" |
| assert RTuple([]).unique_id == "T0" |
| assert ( |
| RTuple([RTuple([]), RTuple([int_rprimitive, int_rprimitive])]).unique_id == "T2T0T2II" |
| ) |
| assert ( |
| RTuple([bool_rprimitive, RUnion([bool_rprimitive, int_rprimitive])]).unique_id |
| == "T2CO" |
| ) |