def handle_partial_attribute_type(typ: PartialType, is_lvalue: bool, msg: MessageBuilder, node: SymbolNode) -> Type: if typ.type is None: # 'None' partial type. It has a well-defined type -- 'None'. # In an lvalue context we want to preserver the knowledge of # it being a partial type. if not is_lvalue: return NoneTyp() return typ else: msg.need_annotation_for_var(node, node) return AnyType(TypeOfAny.from_error)