Commit 4c3229fe authored by Stefan Behnel's avatar Stefan Behnel

Merge branch '0.28.x'

parents 366b16c6 c48d7bb7
...@@ -220,6 +220,10 @@ def test_declare_c_types(n): ...@@ -220,6 +220,10 @@ def test_declare_c_types(n):
@cython.ccall @cython.ccall
@cython.returns(cython.double) @cython.returns(cython.double)
def c_call(x): def c_call(x):
return x
def call_ccall(x):
""" """
Test that a declared return type is honoured when compiled. Test that a declared return type is honoured when compiled.
...@@ -235,10 +239,6 @@ def c_call(x): ...@@ -235,10 +239,6 @@ def c_call(x):
>>> (is_compiled and 1) or result >>> (is_compiled and 1) or result
1 1
""" """
return x
def call_ccall(x):
ret = c_call(x) ret = c_call(x)
return ret, cython.typeof(ret) return ret, cython.typeof(ret)
...@@ -247,9 +247,13 @@ def call_ccall(x): ...@@ -247,9 +247,13 @@ def call_ccall(x):
@cython.inline @cython.inline
@cython.returns(cython.double) @cython.returns(cython.double)
def cdef_inline(x): def cdef_inline(x):
return x + 1
def call_cdef_inline(x):
""" """
>>> result, return_type = call_cdef_inline(1) >>> result, return_type = call_cdef_inline(1)
>>> (not is_compiled and 'float') or type(return_type).__name__ >>> (not is_compiled and 'float') or type(result).__name__
'float' 'float'
>>> (not is_compiled and 'double') or return_type >>> (not is_compiled and 'double') or return_type
'double' 'double'
...@@ -258,10 +262,6 @@ def cdef_inline(x): ...@@ -258,10 +262,6 @@ def cdef_inline(x):
>>> result == 2.0 or result >>> result == 2.0 or result
True True
""" """
return x + 1
def call_cdef_inline(x):
ret = cdef_inline(x) ret = cdef_inline(x)
return ret, cython.typeof(ret) return ret, cython.typeof(ret)
...@@ -304,6 +304,12 @@ def ccall_except(x): ...@@ -304,6 +304,12 @@ def ccall_except(x):
@cython.returns(cython.long) @cython.returns(cython.long)
@cython.exceptval(-1) @cython.exceptval(-1)
def cdef_except(x): def cdef_except(x):
if x == 0:
raise ValueError
return x+1
def call_cdef_except(x):
""" """
>>> call_cdef_except(41) >>> call_cdef_except(41)
42 42
...@@ -311,12 +317,6 @@ def cdef_except(x): ...@@ -311,12 +317,6 @@ def cdef_except(x):
Traceback (most recent call last): Traceback (most recent call last):
ValueError ValueError
""" """
if x == 0:
raise ValueError
return x+1
def call_cdef_except(x):
return cdef_except(x) return cdef_except(x)
......
...@@ -42,6 +42,10 @@ def test_struct(n: cython.int, x: cython.double) -> MyStruct2: ...@@ -42,6 +42,10 @@ def test_struct(n: cython.int, x: cython.double) -> MyStruct2:
@cython.ccall @cython.ccall
def c_call(x) -> cython.double: def c_call(x) -> cython.double:
return x
def call_ccall(x):
""" """
Test that a declared return type is honoured when compiled. Test that a declared return type is honoured when compiled.
...@@ -57,10 +61,6 @@ def c_call(x) -> cython.double: ...@@ -57,10 +61,6 @@ def c_call(x) -> cython.double:
>>> (is_compiled and 1) or result >>> (is_compiled and 1) or result
1 1
""" """
return x
def call_ccall(x):
ret = c_call(x) ret = c_call(x)
return ret, cython.typeof(ret) return ret, cython.typeof(ret)
...@@ -68,9 +68,13 @@ def call_ccall(x): ...@@ -68,9 +68,13 @@ def call_ccall(x):
@cython.cfunc @cython.cfunc
@cython.inline @cython.inline
def cdef_inline(x) -> cython.double: def cdef_inline(x) -> cython.double:
return x + 1
def call_cdef_inline(x):
""" """
>>> result, return_type = call_cdef_inline(1) >>> result, return_type = call_cdef_inline(1)
>>> (not is_compiled and 'float') or type(return_type).__name__ >>> (not is_compiled and 'float') or type(result).__name__
'float' 'float'
>>> (not is_compiled and 'double') or return_type >>> (not is_compiled and 'double') or return_type
'double' 'double'
...@@ -79,9 +83,5 @@ def cdef_inline(x) -> cython.double: ...@@ -79,9 +83,5 @@ def cdef_inline(x) -> cython.double:
>>> result == 2.0 or result >>> result == 2.0 or result
True True
""" """
return x + 1
def call_cdef_inline(x):
ret = cdef_inline(x) ret = cdef_inline(x)
return ret, cython.typeof(ret) return ret, cython.typeof(ret)
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment