Пример #1
0
    def _field_from_field_def(
        self,
        stmt: nodes.AssignmentStmt,
        name: nodes.NameExpr,
        sym: nodes.SymbolTableNode,
    ):
        field = super()._field_from_field_def(stmt, name, sym)
        if field is None:
            return None
        else:
            assert isinstance(sym.node, nodes.Var)
            sym.node.is_initialized_in_class = False

            name.is_inferred_def = False

            rhs = stmt.rvalue
            if not isinstance(rhs, nodes.CastExpr):
                stmt.rvalue = nodes.CastExpr(
                    typ=field.type,
                    expr=rhs,
                )
                stmt.rvalue.line = rhs.line
                stmt.rvalue.column = rhs.column

            return field
Пример #2
0
    def _field_from_field_def(self, stmt, lhs, rhs):
        field = super()._field_from_field_def(stmt, lhs, rhs)

        lhs.is_inferred_def = False
        stmt.rvalue = nodes.CastExpr(
            typ=lhs.node.type,
            expr=rhs,
        )
        stmt.rvalue.line = rhs.line
        stmt.rvalue.column = rhs.column

        return field