diff options
Diffstat (limited to 'tests/errors/e_typing_optional.py')
-rw-r--r-- | tests/errors/e_typing_optional.py | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/tests/errors/e_typing_optional.py b/tests/errors/e_typing_optional.py new file mode 100644 index 000000000..6facfeea4 --- /dev/null +++ b/tests/errors/e_typing_optional.py @@ -0,0 +1,43 @@ +# mode: error + +import cython + +try: + from typing import Optional +except ImportError: + pass + + +# not OK + +def optional_cython_types(i: Optional[cython.int], d: Optional[cython.double], f: Optional[cython.float], + c: Optional[cython.complex], l: Optional[cython.long], ll: Optional[cython.longlong]): + pass + + +MyStruct = cython.struct(a=cython.int, b=cython.double) + +def optional_cstruct(x: Optional[MyStruct]): + pass + + +# OK + +def optional_pytypes(i: Optional[int], f: Optional[float], c: Optional[complex], l: Optional[long]): + pass + + +def optional_memoryview(d: double[:], o: Optional[double[:]]): + pass + + +_ERRORS = """ +13:44: typing.Optional[...] cannot be applied to non-Python type int +13:69: typing.Optional[...] cannot be applied to non-Python type double +13:97: typing.Optional[...] cannot be applied to non-Python type float +14:44: typing.Optional[...] cannot be applied to non-Python type double complex +14:73: typing.Optional[...] cannot be applied to non-Python type long +14:100: typing.Optional[...] cannot be applied to non-Python type long long + +20:33: typing.Optional[...] cannot be applied to non-Python type MyStruct +""" |