MCPcopy Index your code
hub / github.com/python/mypy / TypeMeetVisitor

Class TypeMeetVisitor

mypy/meet.py:782–1168  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

780
781
782class TypeMeetVisitor(TypeVisitor[ProperType]):
783 def __init__(self, s: ProperType) -> None:
784 self.s = s
785
786 def visit_unbound_type(self, t: UnboundType) -> ProperType:
787 if isinstance(self.s, NoneType):
788 if state.strict_optional:
789 return UninhabitedType()
790 else:
791 return self.s
792 elif isinstance(self.s, UninhabitedType):
793 return self.s
794 else:
795 return AnyType(TypeOfAny.special_form)
796
797 def visit_any(self, t: AnyType) -> ProperType:
798 return self.s
799
800 def visit_union_type(self, t: UnionType) -> ProperType:
801 if isinstance(self.s, UnionType):
802 meets: list[Type] = []
803 for x in t.items:
804 for y in self.s.items:
805 meets.append(meet_types(x, y))
806 else:
807 meets = [meet_types(x, self.s) for x in t.items]
808 return make_simplified_union(meets)
809
810 def visit_none_type(self, t: NoneType) -> ProperType:
811 if state.strict_optional:
812 if isinstance(self.s, NoneType) or (
813 isinstance(self.s, Instance) and self.s.type.fullname == "builtins.object"
814 ):
815 return t
816 else:
817 return UninhabitedType()
818 else:
819 return t
820
821 def visit_uninhabited_type(self, t: UninhabitedType) -> ProperType:
822 return t
823
824 def visit_deleted_type(self, t: DeletedType) -> ProperType:
825 if isinstance(self.s, NoneType):
826 if state.strict_optional:
827 return t
828 else:
829 return self.s
830 elif isinstance(self.s, UninhabitedType):
831 return self.s
832 else:
833 return t
834
835 def visit_erased_type(self, t: ErasedType) -> ProperType:
836 return self.s
837
838 def visit_type_var(self, t: TypeVarType) -> ProperType:
839 if isinstance(self.s, TypeVarType) and self.s.id == t.id:

Callers 1

meet_typesFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…