summaryrefslogtreecommitdiffstats
path: root/Lib/test/dataclass_module_1.py
diff options
context:
space:
mode:
authorEric V. Smith <ericvsmith@users.noreply.github.com>2018-05-16 02:44:27 (GMT)
committerGitHub <noreply@github.com>2018-05-16 02:44:27 (GMT)
commit2a7bacbd913cf2bf568b3c0f85a758946d3cf4e9 (patch)
tree72139540fcd8f6824c8265cb7ed4515b3d3a0c37 /Lib/test/dataclass_module_1.py
parentd8dcd57edb88ce57063e5c2b85fe0ee1abb1ce8b (diff)
downloadcpython-2a7bacbd913cf2bf568b3c0f85a758946d3cf4e9.zip
cpython-2a7bacbd913cf2bf568b3c0f85a758946d3cf4e9.tar.gz
cpython-2a7bacbd913cf2bf568b3c0f85a758946d3cf4e9.tar.bz2
bpo-33453: Handle string type annotations in dataclasses. (GH-6768)
Diffstat (limited to 'Lib/test/dataclass_module_1.py')
-rw-r--r--Lib/test/dataclass_module_1.py32
1 files changed, 32 insertions, 0 deletions
diff --git a/Lib/test/dataclass_module_1.py b/Lib/test/dataclass_module_1.py
new file mode 100644
index 0000000..87a33f8
--- /dev/null
+++ b/Lib/test/dataclass_module_1.py
@@ -0,0 +1,32 @@
+#from __future__ import annotations
+USING_STRINGS = False
+
+# dataclass_module_1.py and dataclass_module_1_str.py are identical
+# except only the latter uses string annotations.
+
+import dataclasses
+import typing
+
+T_CV2 = typing.ClassVar[int]
+T_CV3 = typing.ClassVar
+
+T_IV2 = dataclasses.InitVar[int]
+T_IV3 = dataclasses.InitVar
+
+@dataclasses.dataclass
+class CV:
+ T_CV4 = typing.ClassVar
+ cv0: typing.ClassVar[int] = 20
+ cv1: typing.ClassVar = 30
+ cv2: T_CV2
+ cv3: T_CV3
+ not_cv4: T_CV4 # When using string annotations, this field is not recognized as a ClassVar.
+
+@dataclasses.dataclass
+class IV:
+ T_IV4 = dataclasses.InitVar
+ iv0: dataclasses.InitVar[int]
+ iv1: dataclasses.InitVar
+ iv2: T_IV2
+ iv3: T_IV3
+ not_iv4: T_IV4 # When using string annotations, this field is not recognized as an InitVar.