summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorda-woods <dw-git@d-woods.co.uk>2022-03-15 10:08:52 +0000
committerGitHub <noreply@github.com>2022-03-15 11:08:52 +0100
commit0b3ccd7fc8de6bce50a9ca990f2e5db95a1100d8 (patch)
tree5d8148391388309f30a3c0b0edd845076ca59b12 /tests
parent23eb27c6b5750be4d6463900bd14f1a81093594d (diff)
downloadcython-0b3ccd7fc8de6bce50a9ca990f2e5db95a1100d8.tar.gz
Allow None to be passed into arguments annotated as type "object" (GH-4669)
Diffstat (limited to 'tests')
-rw-r--r--tests/run/ext_type_none_arg.pyx24
1 files changed, 24 insertions, 0 deletions
diff --git a/tests/run/ext_type_none_arg.pyx b/tests/run/ext_type_none_arg.pyx
index af4bfc47d..73caaa775 100644
--- a/tests/run/ext_type_none_arg.pyx
+++ b/tests/run/ext_type_none_arg.pyx
@@ -206,6 +206,30 @@ def object_default(object o): # always behaves like 'or None'
return type(o).__name__
@cython.allow_none_for_extension_args(False)
+def object_default_annotation(o : object):
+ """
+ >>> object_default_annotation(object())
+ 'object'
+ >>> object_default_annotation([])
+ 'list'
+ >>> object_default_annotation(None)
+ 'NoneType'
+ """
+ return type(o).__name__
+
+# no decorator
+def object_default_annotation2(o : object):
+ """
+ >>> object_default_annotation2(object())
+ 'object'
+ >>> object_default_annotation2([])
+ 'list'
+ >>> object_default_annotation2(None)
+ 'NoneType'
+ """
+ return type(o).__name__
+
+@cython.allow_none_for_extension_args(False)
def object_default_none(object o=None): # behaves like 'or None'
"""
>>> object_default_none(object())