fix error on def-nogil functions
[cython.git] / tests / errors / declareafteruse_T158.pyx
1 def mult_decl_test():
2     print "%s" % vv
3     print "%s" % s
4     cdef str s, vv = "Test"
5
6 def def_test():
7     cdef int j = 10
8     i[0] = j
9     cdef int *i = NULL # pointer variables are special case
10
11 cdef cdef_test():
12     cdef int j = 10
13     i[0] = j
14     print "%d" % i[0]
15     cdef int *i = NULL
16
17 cpdef cpdef_test():
18     cdef int j = 10
19     i[0] = j
20     print "%d" % i[0]
21     cdef int *i = NULL
22
23 s.upper()
24 cdef str s = "Test"
25
26 class Foo(object):
27     def bar(self, x, y):
28         cdef unsigned long w = 20
29         z = w + t
30         cdef int t = 10
31
32 cdef class Foo2(object):
33     print '%s' % r # check error inside class scope
34     cdef str r
35     def bar(self, x, y):
36         cdef unsigned long w = 20
37         self.r = c'r'
38         print self.r
39         z = w + g(t)
40         cdef int t = 10
41
42 def g(x):
43     return x
44
45 cdef int d = 20
46 baz[0] = d
47 cdef int *baz
48
49 print var[0][0]
50 cdef unsigned long long var[100][100]
51
52 # in 0.11.1 these are warnings
53 FUTURE_ERRORS = u"""
54 4:13: cdef variable 's' declared after it is used
55 4:16: cdef variable 'vv' declared after it is used
56 9:14: cdef variable 'i' declared after it is used
57 15:14: cdef variable 'i' declared after it is used
58 21:14: cdef variable 'i' declared after it is used
59 24:9: cdef variable 's' declared after it is used
60 30:17: cdef variable 't' declared after it is used
61 34:13: cdef variable 'r' declared after it is used
62 40:17: cdef variable 't' declared after it is used
63 47:10: cdef variable 'baz' declared after it is used
64 50:24: cdef variable 'var' declared after it is used
65 """
66
67 syntax error
68
69 _ERRORS = u"""
70 40:17: cdef variable 't' declared after it is used
71 47:10: cdef variable 'baz' declared after it is used
72 50:24: cdef variable 'var' declared after it is used
73 67:7: Syntax error in simple statement list
74 """