(compiler, expr, root, decorators, tp, name, rest)
| 1844 | ], |
| 1845 | ) |
| 1846 | def compile_class_expression(compiler, expr, root, decorators, tp, name, rest): |
| 1847 | base_list, docstring, body = rest or ([[]], None, []) |
| 1848 | |
| 1849 | decorators, ret, _ = compiler._compile_collect(decorators[0] if decorators else []) |
| 1850 | bases_expr, ret2, keywords = compiler._compile_collect( |
| 1851 | base_list[0], with_kwargs=True |
| 1852 | ) |
| 1853 | ret += ret2 |
| 1854 | |
| 1855 | bodyr = Result() |
| 1856 | |
| 1857 | if docstring is not None: |
| 1858 | bodyr += compiler.compile(docstring).expr_as_stmt() |
| 1859 | |
| 1860 | name = mangle(compiler._nonconst(name)) |
| 1861 | compiler.scope.define(name) |
| 1862 | |
| 1863 | with compiler.local_state(), compiler.scope.create(ScopeFn): |
| 1864 | e = compiler._compile_branch(body) |
| 1865 | bodyr += e + e.expr_as_stmt() |
| 1866 | |
| 1867 | return ret + asty.ClassDef( |
| 1868 | expr, |
| 1869 | decorator_list=decorators, |
| 1870 | name=name, |
| 1871 | keywords=keywords, |
| 1872 | bases=bases_expr, |
| 1873 | body=bodyr.stmts or [asty.Pass(expr)], |
| 1874 | **digest_type_params(compiler, tp) |
| 1875 | ) |
| 1876 | |
| 1877 | |
| 1878 | # ------------------------------------------------ |
nothing calls this directly
no test coverage detected