@@ -1685,6 +1685,13 @@ class Test:
16851685 obj.val = val
16861686 return obj
16871687
1688+ class Test2:
1689+ def __new__(cls) -> Test2:
1690+ return super().__new__(cls)
1691+
1692+ class Sub(Test2):
1693+ pass
1694+
16881695def fn() -> Test:
16891696 return Test.__new__(Test, 42)
16901697
@@ -1712,15 +1719,20 @@ class NotTransformed:
17121719def Test.__new__(cls, val):
17131720 cls :: object
17141721 val :: int
1715- r0 :: object
1716- r1, obj :: __main__.Test
1717- r2 :: bool
1722+ r0, obj :: __main__.Test
1723+ r1 :: bool
17181724L0:
1719- r0 = CPy_SetupObject(cls)
1720- r1 = cast(__main__.Test, r0)
1721- obj = r1
1722- obj.val = val; r2 = is_error
1725+ r0 = __mypyc__Test_setup(cls)
1726+ obj = r0
1727+ obj.val = val; r1 = is_error
17231728 return obj
1729+ def Test2.__new__(cls):
1730+ cls, r0 :: object
1731+ r1 :: __main__.Test2
1732+ L0:
1733+ r0 = CPy_SetupObject(cls)
1734+ r1 = cast(__main__.Test2, r0)
1735+ return r1
17241736def fn():
17251737 r0 :: object
17261738 r1 :: __main__.Test
@@ -1731,14 +1743,12 @@ L0:
17311743def NewClassMethod.__new__(cls, val):
17321744 cls :: object
17331745 val :: int
1734- r0 :: object
1735- r1, obj :: __main__.NewClassMethod
1736- r2 :: bool
1746+ r0, obj :: __main__.NewClassMethod
1747+ r1 :: bool
17371748L0:
1738- r0 = CPy_SetupObject(cls)
1739- r1 = cast(__main__.NewClassMethod, r0)
1740- obj = r1
1741- obj.val = val; r2 = is_error
1749+ r0 = __mypyc__NewClassMethod_setup(cls)
1750+ obj = r0
1751+ obj.val = val; r1 = is_error
17421752 return obj
17431753def fn2():
17441754 r0 :: object
@@ -1826,6 +1836,13 @@ class Test:
18261836 obj.val = val
18271837 return obj
18281838
1839+ class Test2:
1840+ def __new__(cls) -> Test2:
1841+ return object.__new__(cls)
1842+
1843+ class Sub(Test2):
1844+ pass
1845+
18291846def fn() -> Test:
18301847 return Test.__new__(Test, 42)
18311848
@@ -1871,15 +1888,20 @@ def object_new_outside_class() -> None:
18711888def Test.__new__(cls, val):
18721889 cls :: object
18731890 val :: int
1874- r0 :: object
1875- r1, obj :: __main__.Test
1876- r2 :: bool
1891+ r0, obj :: __main__.Test
1892+ r1 :: bool
18771893L0:
1878- r0 = CPy_SetupObject(cls)
1879- r1 = cast(__main__.Test, r0)
1880- obj = r1
1881- obj.val = val; r2 = is_error
1894+ r0 = __mypyc__Test_setup(cls)
1895+ obj = r0
1896+ obj.val = val; r1 = is_error
18821897 return obj
1898+ def Test2.__new__(cls):
1899+ cls, r0 :: object
1900+ r1 :: __main__.Test2
1901+ L0:
1902+ r0 = CPy_SetupObject(cls)
1903+ r1 = cast(__main__.Test2, r0)
1904+ return r1
18831905def fn():
18841906 r0 :: object
18851907 r1 :: __main__.Test
@@ -1890,14 +1912,12 @@ L0:
18901912def NewClassMethod.__new__(cls, val):
18911913 cls :: object
18921914 val :: int
1893- r0 :: object
1894- r1, obj :: __main__.NewClassMethod
1895- r2 :: bool
1915+ r0, obj :: __main__.NewClassMethod
1916+ r1 :: bool
18961917L0:
1897- r0 = CPy_SetupObject(cls)
1898- r1 = cast(__main__.NewClassMethod, r0)
1899- obj = r1
1900- obj.val = val; r2 = is_error
1918+ r0 = __mypyc__NewClassMethod_setup(cls)
1919+ obj = r0
1920+ obj.val = val; r1 = is_error
19011921 return obj
19021922def fn2():
19031923 r0 :: object
0 commit comments