mirror of
https://github.com/python/cpython.git
synced 2025-08-22 09:45:06 +00:00
bpo-46333: Honor module
parameter in ForwardRef (GH-30536)
The `module` parameter carries semantic information about the forward ref. Forward refs are different if they refer to different module even if they have the same name. This affects the `__eq__`, `__repr__` and `__hash__` methods. Co-authored-by: Andreas Hangauer <andreas.hangauer@siemens.com> Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com> Co-authored-by: Ken Jin <28750310+Fidget-Spinner@users.noreply.github.com>
This commit is contained in:
parent
de6043e596
commit
6e7b813195
4 changed files with 20 additions and 2 deletions
|
@ -767,10 +767,11 @@ class ForwardRef(_Final, _root=True):
|
|||
if self.__forward_evaluated__ and other.__forward_evaluated__:
|
||||
return (self.__forward_arg__ == other.__forward_arg__ and
|
||||
self.__forward_value__ == other.__forward_value__)
|
||||
return self.__forward_arg__ == other.__forward_arg__
|
||||
return (self.__forward_arg__ == other.__forward_arg__ and
|
||||
self.__forward_module__ == other.__forward_module__)
|
||||
|
||||
def __hash__(self):
|
||||
return hash(self.__forward_arg__)
|
||||
return hash((self.__forward_arg__, self.__forward_module__))
|
||||
|
||||
def __or__(self, other):
|
||||
return Union[self, other]
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue