summaryrefslogtreecommitdiffstats
path: root/Lib/dataclasses.py
diff options
context:
space:
mode:
authorEric V. Smith <ericvsmith@users.noreply.github.com>2018-03-29 15:07:48 (GMT)
committerGitHub <noreply@github.com>2018-03-29 15:07:48 (GMT)
commit521995205a2cb6b504fe0e39af22a81f785350a3 (patch)
treeee1401dbe4dce2be5c8e7d1a0b2343d1993df4ba /Lib/dataclasses.py
parentb9e7fe38a07a16942cb65cb922c234c95e2823a0 (diff)
downloadcpython-521995205a2cb6b504fe0e39af22a81f785350a3.zip
cpython-521995205a2cb6b504fe0e39af22a81f785350a3.tar.gz
cpython-521995205a2cb6b504fe0e39af22a81f785350a3.tar.bz2
bpo-33175: dataclasses should look up __set_name__ on class, not instance (GH-6305)
Diffstat (limited to 'Lib/dataclasses.py')
-rw-r--r--Lib/dataclasses.py4
1 files changed, 2 insertions, 2 deletions
diff --git a/Lib/dataclasses.py b/Lib/dataclasses.py
index 8c197fe..bd7252c 100644
--- a/Lib/dataclasses.py
+++ b/Lib/dataclasses.py
@@ -248,11 +248,11 @@ class Field:
# the default value, so the end result is a descriptor that had
# __set_name__ called on it at the right time.
def __set_name__(self, owner, name):
- func = getattr(self.default, '__set_name__', None)
+ func = getattr(type(self.default), '__set_name__', None)
if func:
# There is a __set_name__ method on the descriptor,
# call it.
- func(owner, name)
+ func(self.default, owner, name)
class _DataclassParams: