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
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