1 /* Generated by Cython 0.29.24 */
2 
3 /* BEGIN: Cython Metadata
4 {
5     "distutils": {
6         "depends": [
7             "/opengrok/src/dports/lang/cython/Cython-0.29.24/Cython/Compiler/Visitor.pxd"
8         ],
9         "name": "Cython.Compiler.Visitor",
10         "sources": [
11             "/opengrok/src/dports/lang/cython/Cython-0.29.24/Cython/Compiler/Visitor.py"
12         ]
13     },
14     "module_name": "Cython.Compiler.Visitor"
15 }
16 END: Cython Metadata */
17 
18 #ifndef PY_SSIZE_T_CLEAN
19 #define PY_SSIZE_T_CLEAN
20 #endif /* PY_SSIZE_T_CLEAN */
21 #include "Python.h"
22 #ifndef Py_PYTHON_H
23     #error Python headers needed to compile C extensions, please install development version of Python.
24 #elif PY_VERSION_HEX < 0x02060000 || (0x03000000 <= PY_VERSION_HEX && PY_VERSION_HEX < 0x03030000)
25     #error Cython requires Python 2.6+ or Python 3.3+.
26 #else
27 #define CYTHON_ABI "0_29_24"
28 #define CYTHON_HEX_VERSION 0x001D18F0
29 #define CYTHON_FUTURE_DIVISION 1
30 #include <stddef.h>
31 #ifndef offsetof
32   #define offsetof(type, member) ( (size_t) & ((type*)0) -> member )
33 #endif
34 #if !defined(WIN32) && !defined(MS_WINDOWS)
35   #ifndef __stdcall
36     #define __stdcall
37   #endif
38   #ifndef __cdecl
39     #define __cdecl
40   #endif
41   #ifndef __fastcall
42     #define __fastcall
43   #endif
44 #endif
45 #ifndef DL_IMPORT
46   #define DL_IMPORT(t) t
47 #endif
48 #ifndef DL_EXPORT
49   #define DL_EXPORT(t) t
50 #endif
51 #define __PYX_COMMA ,
52 #ifndef HAVE_LONG_LONG
53   #if PY_VERSION_HEX >= 0x02070000
54     #define HAVE_LONG_LONG
55   #endif
56 #endif
57 #ifndef PY_LONG_LONG
58   #define PY_LONG_LONG LONG_LONG
59 #endif
60 #ifndef Py_HUGE_VAL
61   #define Py_HUGE_VAL HUGE_VAL
62 #endif
63 #ifdef PYPY_VERSION
64   #define CYTHON_COMPILING_IN_PYPY 1
65   #define CYTHON_COMPILING_IN_PYSTON 0
66   #define CYTHON_COMPILING_IN_CPYTHON 0
67   #undef CYTHON_USE_TYPE_SLOTS
68   #define CYTHON_USE_TYPE_SLOTS 0
69   #undef CYTHON_USE_PYTYPE_LOOKUP
70   #define CYTHON_USE_PYTYPE_LOOKUP 0
71   #if PY_VERSION_HEX < 0x03050000
72     #undef CYTHON_USE_ASYNC_SLOTS
73     #define CYTHON_USE_ASYNC_SLOTS 0
74   #elif !defined(CYTHON_USE_ASYNC_SLOTS)
75     #define CYTHON_USE_ASYNC_SLOTS 1
76   #endif
77   #undef CYTHON_USE_PYLIST_INTERNALS
78   #define CYTHON_USE_PYLIST_INTERNALS 0
79   #undef CYTHON_USE_UNICODE_INTERNALS
80   #define CYTHON_USE_UNICODE_INTERNALS 0
81   #undef CYTHON_USE_UNICODE_WRITER
82   #define CYTHON_USE_UNICODE_WRITER 0
83   #undef CYTHON_USE_PYLONG_INTERNALS
84   #define CYTHON_USE_PYLONG_INTERNALS 0
85   #undef CYTHON_AVOID_BORROWED_REFS
86   #define CYTHON_AVOID_BORROWED_REFS 1
87   #undef CYTHON_ASSUME_SAFE_MACROS
88   #define CYTHON_ASSUME_SAFE_MACROS 0
89   #undef CYTHON_UNPACK_METHODS
90   #define CYTHON_UNPACK_METHODS 0
91   #undef CYTHON_FAST_THREAD_STATE
92   #define CYTHON_FAST_THREAD_STATE 0
93   #undef CYTHON_FAST_PYCALL
94   #define CYTHON_FAST_PYCALL 0
95   #undef CYTHON_PEP489_MULTI_PHASE_INIT
96   #define CYTHON_PEP489_MULTI_PHASE_INIT 0
97   #undef CYTHON_USE_TP_FINALIZE
98   #define CYTHON_USE_TP_FINALIZE 0
99   #undef CYTHON_USE_DICT_VERSIONS
100   #define CYTHON_USE_DICT_VERSIONS 0
101   #undef CYTHON_USE_EXC_INFO_STACK
102   #define CYTHON_USE_EXC_INFO_STACK 0
103 #elif defined(PYSTON_VERSION)
104   #define CYTHON_COMPILING_IN_PYPY 0
105   #define CYTHON_COMPILING_IN_PYSTON 1
106   #define CYTHON_COMPILING_IN_CPYTHON 0
107   #ifndef CYTHON_USE_TYPE_SLOTS
108     #define CYTHON_USE_TYPE_SLOTS 1
109   #endif
110   #undef CYTHON_USE_PYTYPE_LOOKUP
111   #define CYTHON_USE_PYTYPE_LOOKUP 0
112   #undef CYTHON_USE_ASYNC_SLOTS
113   #define CYTHON_USE_ASYNC_SLOTS 0
114   #undef CYTHON_USE_PYLIST_INTERNALS
115   #define CYTHON_USE_PYLIST_INTERNALS 0
116   #ifndef CYTHON_USE_UNICODE_INTERNALS
117     #define CYTHON_USE_UNICODE_INTERNALS 1
118   #endif
119   #undef CYTHON_USE_UNICODE_WRITER
120   #define CYTHON_USE_UNICODE_WRITER 0
121   #undef CYTHON_USE_PYLONG_INTERNALS
122   #define CYTHON_USE_PYLONG_INTERNALS 0
123   #ifndef CYTHON_AVOID_BORROWED_REFS
124     #define CYTHON_AVOID_BORROWED_REFS 0
125   #endif
126   #ifndef CYTHON_ASSUME_SAFE_MACROS
127     #define CYTHON_ASSUME_SAFE_MACROS 1
128   #endif
129   #ifndef CYTHON_UNPACK_METHODS
130     #define CYTHON_UNPACK_METHODS 1
131   #endif
132   #undef CYTHON_FAST_THREAD_STATE
133   #define CYTHON_FAST_THREAD_STATE 0
134   #undef CYTHON_FAST_PYCALL
135   #define CYTHON_FAST_PYCALL 0
136   #undef CYTHON_PEP489_MULTI_PHASE_INIT
137   #define CYTHON_PEP489_MULTI_PHASE_INIT 0
138   #undef CYTHON_USE_TP_FINALIZE
139   #define CYTHON_USE_TP_FINALIZE 0
140   #undef CYTHON_USE_DICT_VERSIONS
141   #define CYTHON_USE_DICT_VERSIONS 0
142   #undef CYTHON_USE_EXC_INFO_STACK
143   #define CYTHON_USE_EXC_INFO_STACK 0
144 #else
145   #define CYTHON_COMPILING_IN_PYPY 0
146   #define CYTHON_COMPILING_IN_PYSTON 0
147   #define CYTHON_COMPILING_IN_CPYTHON 1
148   #ifndef CYTHON_USE_TYPE_SLOTS
149     #define CYTHON_USE_TYPE_SLOTS 1
150   #endif
151   #if PY_VERSION_HEX < 0x02070000
152     #undef CYTHON_USE_PYTYPE_LOOKUP
153     #define CYTHON_USE_PYTYPE_LOOKUP 0
154   #elif !defined(CYTHON_USE_PYTYPE_LOOKUP)
155     #define CYTHON_USE_PYTYPE_LOOKUP 1
156   #endif
157   #if PY_MAJOR_VERSION < 3
158     #undef CYTHON_USE_ASYNC_SLOTS
159     #define CYTHON_USE_ASYNC_SLOTS 0
160   #elif !defined(CYTHON_USE_ASYNC_SLOTS)
161     #define CYTHON_USE_ASYNC_SLOTS 1
162   #endif
163   #if PY_VERSION_HEX < 0x02070000
164     #undef CYTHON_USE_PYLONG_INTERNALS
165     #define CYTHON_USE_PYLONG_INTERNALS 0
166   #elif !defined(CYTHON_USE_PYLONG_INTERNALS)
167     #define CYTHON_USE_PYLONG_INTERNALS 1
168   #endif
169   #ifndef CYTHON_USE_PYLIST_INTERNALS
170     #define CYTHON_USE_PYLIST_INTERNALS 1
171   #endif
172   #ifndef CYTHON_USE_UNICODE_INTERNALS
173     #define CYTHON_USE_UNICODE_INTERNALS 1
174   #endif
175   #if PY_VERSION_HEX < 0x030300F0
176     #undef CYTHON_USE_UNICODE_WRITER
177     #define CYTHON_USE_UNICODE_WRITER 0
178   #elif !defined(CYTHON_USE_UNICODE_WRITER)
179     #define CYTHON_USE_UNICODE_WRITER 1
180   #endif
181   #ifndef CYTHON_AVOID_BORROWED_REFS
182     #define CYTHON_AVOID_BORROWED_REFS 0
183   #endif
184   #ifndef CYTHON_ASSUME_SAFE_MACROS
185     #define CYTHON_ASSUME_SAFE_MACROS 1
186   #endif
187   #ifndef CYTHON_UNPACK_METHODS
188     #define CYTHON_UNPACK_METHODS 1
189   #endif
190   #ifndef CYTHON_FAST_THREAD_STATE
191     #define CYTHON_FAST_THREAD_STATE 1
192   #endif
193   #ifndef CYTHON_FAST_PYCALL
194     #define CYTHON_FAST_PYCALL 1
195   #endif
196   #ifndef CYTHON_PEP489_MULTI_PHASE_INIT
197     #define CYTHON_PEP489_MULTI_PHASE_INIT (PY_VERSION_HEX >= 0x03050000)
198   #endif
199   #ifndef CYTHON_USE_TP_FINALIZE
200     #define CYTHON_USE_TP_FINALIZE (PY_VERSION_HEX >= 0x030400a1)
201   #endif
202   #ifndef CYTHON_USE_DICT_VERSIONS
203     #define CYTHON_USE_DICT_VERSIONS (PY_VERSION_HEX >= 0x030600B1)
204   #endif
205   #ifndef CYTHON_USE_EXC_INFO_STACK
206     #define CYTHON_USE_EXC_INFO_STACK (PY_VERSION_HEX >= 0x030700A3)
207   #endif
208 #endif
209 #if !defined(CYTHON_FAST_PYCCALL)
210 #define CYTHON_FAST_PYCCALL  (CYTHON_FAST_PYCALL && PY_VERSION_HEX >= 0x030600B1)
211 #endif
212 #if CYTHON_USE_PYLONG_INTERNALS
213   #include "longintrepr.h"
214   #undef SHIFT
215   #undef BASE
216   #undef MASK
217   #ifdef SIZEOF_VOID_P
218     enum { __pyx_check_sizeof_voidp = 1 / (int)(SIZEOF_VOID_P == sizeof(void*)) };
219   #endif
220 #endif
221 #ifndef __has_attribute
222   #define __has_attribute(x) 0
223 #endif
224 #ifndef __has_cpp_attribute
225   #define __has_cpp_attribute(x) 0
226 #endif
227 #ifndef CYTHON_RESTRICT
228   #if defined(__GNUC__)
229     #define CYTHON_RESTRICT __restrict__
230   #elif defined(_MSC_VER) && _MSC_VER >= 1400
231     #define CYTHON_RESTRICT __restrict
232   #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
233     #define CYTHON_RESTRICT restrict
234   #else
235     #define CYTHON_RESTRICT
236   #endif
237 #endif
238 #ifndef CYTHON_UNUSED
239 # if defined(__GNUC__)
240 #   if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4))
241 #     define CYTHON_UNUSED __attribute__ ((__unused__))
242 #   else
243 #     define CYTHON_UNUSED
244 #   endif
245 # elif defined(__ICC) || (defined(__INTEL_COMPILER) && !defined(_MSC_VER))
246 #   define CYTHON_UNUSED __attribute__ ((__unused__))
247 # else
248 #   define CYTHON_UNUSED
249 # endif
250 #endif
251 #ifndef CYTHON_MAYBE_UNUSED_VAR
252 #  if defined(__cplusplus)
CYTHON_MAYBE_UNUSED_VAR(const T &)253      template<class T> void CYTHON_MAYBE_UNUSED_VAR( const T& ) { }
254 #  else
255 #    define CYTHON_MAYBE_UNUSED_VAR(x) (void)(x)
256 #  endif
257 #endif
258 #ifndef CYTHON_NCP_UNUSED
259 # if CYTHON_COMPILING_IN_CPYTHON
260 #  define CYTHON_NCP_UNUSED
261 # else
262 #  define CYTHON_NCP_UNUSED CYTHON_UNUSED
263 # endif
264 #endif
265 #define __Pyx_void_to_None(void_result) ((void)(void_result), Py_INCREF(Py_None), Py_None)
266 #ifdef _MSC_VER
267     #ifndef _MSC_STDINT_H_
268         #if _MSC_VER < 1300
269            typedef unsigned char     uint8_t;
270            typedef unsigned int      uint32_t;
271         #else
272            typedef unsigned __int8   uint8_t;
273            typedef unsigned __int32  uint32_t;
274         #endif
275     #endif
276 #else
277    #include <stdint.h>
278 #endif
279 #ifndef CYTHON_FALLTHROUGH
280   #if defined(__cplusplus) && __cplusplus >= 201103L
281     #if __has_cpp_attribute(fallthrough)
282       #define CYTHON_FALLTHROUGH [[fallthrough]]
283     #elif __has_cpp_attribute(clang::fallthrough)
284       #define CYTHON_FALLTHROUGH [[clang::fallthrough]]
285     #elif __has_cpp_attribute(gnu::fallthrough)
286       #define CYTHON_FALLTHROUGH [[gnu::fallthrough]]
287     #endif
288   #endif
289   #ifndef CYTHON_FALLTHROUGH
290     #if __has_attribute(fallthrough)
291       #define CYTHON_FALLTHROUGH __attribute__((fallthrough))
292     #else
293       #define CYTHON_FALLTHROUGH
294     #endif
295   #endif
296   #if defined(__clang__ ) && defined(__apple_build_version__)
297     #if __apple_build_version__ < 7000000
298       #undef  CYTHON_FALLTHROUGH
299       #define CYTHON_FALLTHROUGH
300     #endif
301   #endif
302 #endif
303 
304 #ifndef CYTHON_INLINE
305   #if defined(__clang__)
306     #define CYTHON_INLINE __inline__ __attribute__ ((__unused__))
307   #elif defined(__GNUC__)
308     #define CYTHON_INLINE __inline__
309   #elif defined(_MSC_VER)
310     #define CYTHON_INLINE __inline
311   #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
312     #define CYTHON_INLINE inline
313   #else
314     #define CYTHON_INLINE
315   #endif
316 #endif
317 
318 #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x02070600 && !defined(Py_OptimizeFlag)
319   #define Py_OptimizeFlag 0
320 #endif
321 #define __PYX_BUILD_PY_SSIZE_T "n"
322 #define CYTHON_FORMAT_SSIZE_T "z"
323 #if PY_MAJOR_VERSION < 3
324   #define __Pyx_BUILTIN_MODULE_NAME "__builtin__"
325   #define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\
326           PyCode_New(a+k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)
327   #define __Pyx_DefaultClassType PyClass_Type
328 #else
329   #define __Pyx_BUILTIN_MODULE_NAME "builtins"
330 #if PY_VERSION_HEX >= 0x030800A4 && PY_VERSION_HEX < 0x030800B2
331   #define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\
332           PyCode_New(a, 0, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)
333 #else
334   #define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\
335           PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)
336 #endif
337   #define __Pyx_DefaultClassType PyType_Type
338 #endif
339 #ifndef Py_TPFLAGS_CHECKTYPES
340   #define Py_TPFLAGS_CHECKTYPES 0
341 #endif
342 #ifndef Py_TPFLAGS_HAVE_INDEX
343   #define Py_TPFLAGS_HAVE_INDEX 0
344 #endif
345 #ifndef Py_TPFLAGS_HAVE_NEWBUFFER
346   #define Py_TPFLAGS_HAVE_NEWBUFFER 0
347 #endif
348 #ifndef Py_TPFLAGS_HAVE_FINALIZE
349   #define Py_TPFLAGS_HAVE_FINALIZE 0
350 #endif
351 #ifndef METH_STACKLESS
352   #define METH_STACKLESS 0
353 #endif
354 #if PY_VERSION_HEX <= 0x030700A3 || !defined(METH_FASTCALL)
355   #ifndef METH_FASTCALL
356      #define METH_FASTCALL 0x80
357   #endif
358   typedef PyObject *(*__Pyx_PyCFunctionFast) (PyObject *self, PyObject *const *args, Py_ssize_t nargs);
359   typedef PyObject *(*__Pyx_PyCFunctionFastWithKeywords) (PyObject *self, PyObject *const *args,
360                                                           Py_ssize_t nargs, PyObject *kwnames);
361 #else
362   #define __Pyx_PyCFunctionFast _PyCFunctionFast
363   #define __Pyx_PyCFunctionFastWithKeywords _PyCFunctionFastWithKeywords
364 #endif
365 #if CYTHON_FAST_PYCCALL
366 #define __Pyx_PyFastCFunction_Check(func)\
367     ((PyCFunction_Check(func) && (METH_FASTCALL == (PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST | METH_KEYWORDS | METH_STACKLESS)))))
368 #else
369 #define __Pyx_PyFastCFunction_Check(func) 0
370 #endif
371 #if CYTHON_COMPILING_IN_PYPY && !defined(PyObject_Malloc)
372   #define PyObject_Malloc(s)   PyMem_Malloc(s)
373   #define PyObject_Free(p)     PyMem_Free(p)
374   #define PyObject_Realloc(p)  PyMem_Realloc(p)
375 #endif
376 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030400A1
377   #define PyMem_RawMalloc(n)           PyMem_Malloc(n)
378   #define PyMem_RawRealloc(p, n)       PyMem_Realloc(p, n)
379   #define PyMem_RawFree(p)             PyMem_Free(p)
380 #endif
381 #if CYTHON_COMPILING_IN_PYSTON
382   #define __Pyx_PyCode_HasFreeVars(co)  PyCode_HasFreeVars(co)
383   #define __Pyx_PyFrame_SetLineNumber(frame, lineno) PyFrame_SetLineNumber(frame, lineno)
384 #else
385   #define __Pyx_PyCode_HasFreeVars(co)  (PyCode_GetNumFree(co) > 0)
386   #define __Pyx_PyFrame_SetLineNumber(frame, lineno)  (frame)->f_lineno = (lineno)
387 #endif
388 #if !CYTHON_FAST_THREAD_STATE || PY_VERSION_HEX < 0x02070000
389   #define __Pyx_PyThreadState_Current PyThreadState_GET()
390 #elif PY_VERSION_HEX >= 0x03060000
391   #define __Pyx_PyThreadState_Current _PyThreadState_UncheckedGet()
392 #elif PY_VERSION_HEX >= 0x03000000
393   #define __Pyx_PyThreadState_Current PyThreadState_GET()
394 #else
395   #define __Pyx_PyThreadState_Current _PyThreadState_Current
396 #endif
397 #if PY_VERSION_HEX < 0x030700A2 && !defined(PyThread_tss_create) && !defined(Py_tss_NEEDS_INIT)
398 #include "pythread.h"
399 #define Py_tss_NEEDS_INIT 0
400 typedef int Py_tss_t;
PyThread_tss_create(Py_tss_t * key)401 static CYTHON_INLINE int PyThread_tss_create(Py_tss_t *key) {
402   *key = PyThread_create_key();
403   return 0;
404 }
PyThread_tss_alloc(void)405 static CYTHON_INLINE Py_tss_t * PyThread_tss_alloc(void) {
406   Py_tss_t *key = (Py_tss_t *)PyObject_Malloc(sizeof(Py_tss_t));
407   *key = Py_tss_NEEDS_INIT;
408   return key;
409 }
PyThread_tss_free(Py_tss_t * key)410 static CYTHON_INLINE void PyThread_tss_free(Py_tss_t *key) {
411   PyObject_Free(key);
412 }
PyThread_tss_is_created(Py_tss_t * key)413 static CYTHON_INLINE int PyThread_tss_is_created(Py_tss_t *key) {
414   return *key != Py_tss_NEEDS_INIT;
415 }
PyThread_tss_delete(Py_tss_t * key)416 static CYTHON_INLINE void PyThread_tss_delete(Py_tss_t *key) {
417   PyThread_delete_key(*key);
418   *key = Py_tss_NEEDS_INIT;
419 }
PyThread_tss_set(Py_tss_t * key,void * value)420 static CYTHON_INLINE int PyThread_tss_set(Py_tss_t *key, void *value) {
421   return PyThread_set_key_value(*key, value);
422 }
PyThread_tss_get(Py_tss_t * key)423 static CYTHON_INLINE void * PyThread_tss_get(Py_tss_t *key) {
424   return PyThread_get_key_value(*key);
425 }
426 #endif
427 #if CYTHON_COMPILING_IN_CPYTHON || defined(_PyDict_NewPresized)
428 #define __Pyx_PyDict_NewPresized(n)  ((n <= 8) ? PyDict_New() : _PyDict_NewPresized(n))
429 #else
430 #define __Pyx_PyDict_NewPresized(n)  PyDict_New()
431 #endif
432 #if PY_MAJOR_VERSION >= 3 || CYTHON_FUTURE_DIVISION
433   #define __Pyx_PyNumber_Divide(x,y)         PyNumber_TrueDivide(x,y)
434   #define __Pyx_PyNumber_InPlaceDivide(x,y)  PyNumber_InPlaceTrueDivide(x,y)
435 #else
436   #define __Pyx_PyNumber_Divide(x,y)         PyNumber_Divide(x,y)
437   #define __Pyx_PyNumber_InPlaceDivide(x,y)  PyNumber_InPlaceDivide(x,y)
438 #endif
439 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030500A1 && CYTHON_USE_UNICODE_INTERNALS
440 #define __Pyx_PyDict_GetItemStr(dict, name)  _PyDict_GetItem_KnownHash(dict, name, ((PyASCIIObject *) name)->hash)
441 #else
442 #define __Pyx_PyDict_GetItemStr(dict, name)  PyDict_GetItem(dict, name)
443 #endif
444 #if PY_VERSION_HEX > 0x03030000 && defined(PyUnicode_KIND)
445   #define CYTHON_PEP393_ENABLED 1
446   #if defined(PyUnicode_IS_READY)
447   #define __Pyx_PyUnicode_READY(op)       (likely(PyUnicode_IS_READY(op)) ?\
448                                               0 : _PyUnicode_Ready((PyObject *)(op)))
449   #else
450   #define __Pyx_PyUnicode_READY(op)       (0)
451   #endif
452   #define __Pyx_PyUnicode_GET_LENGTH(u)   PyUnicode_GET_LENGTH(u)
453   #define __Pyx_PyUnicode_READ_CHAR(u, i) PyUnicode_READ_CHAR(u, i)
454   #define __Pyx_PyUnicode_MAX_CHAR_VALUE(u)   PyUnicode_MAX_CHAR_VALUE(u)
455   #define __Pyx_PyUnicode_KIND(u)         PyUnicode_KIND(u)
456   #define __Pyx_PyUnicode_DATA(u)         PyUnicode_DATA(u)
457   #define __Pyx_PyUnicode_READ(k, d, i)   PyUnicode_READ(k, d, i)
458   #define __Pyx_PyUnicode_WRITE(k, d, i, ch)  PyUnicode_WRITE(k, d, i, ch)
459   #if defined(PyUnicode_IS_READY) && defined(PyUnicode_GET_SIZE)
460   #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x03090000
461   #define __Pyx_PyUnicode_IS_TRUE(u)      (0 != (likely(PyUnicode_IS_READY(u)) ? PyUnicode_GET_LENGTH(u) : ((PyCompactUnicodeObject *)(u))->wstr_length))
462   #else
463   #define __Pyx_PyUnicode_IS_TRUE(u)      (0 != (likely(PyUnicode_IS_READY(u)) ? PyUnicode_GET_LENGTH(u) : PyUnicode_GET_SIZE(u)))
464   #endif
465   #else
466   #define __Pyx_PyUnicode_IS_TRUE(u)      (0 != PyUnicode_GET_LENGTH(u))
467   #endif
468 #else
469   #define CYTHON_PEP393_ENABLED 0
470   #define PyUnicode_1BYTE_KIND  1
471   #define PyUnicode_2BYTE_KIND  2
472   #define PyUnicode_4BYTE_KIND  4
473   #define __Pyx_PyUnicode_READY(op)       (0)
474   #define __Pyx_PyUnicode_GET_LENGTH(u)   PyUnicode_GET_SIZE(u)
475   #define __Pyx_PyUnicode_READ_CHAR(u, i) ((Py_UCS4)(PyUnicode_AS_UNICODE(u)[i]))
476   #define __Pyx_PyUnicode_MAX_CHAR_VALUE(u)   ((sizeof(Py_UNICODE) == 2) ? 65535 : 1114111)
477   #define __Pyx_PyUnicode_KIND(u)         (sizeof(Py_UNICODE))
478   #define __Pyx_PyUnicode_DATA(u)         ((void*)PyUnicode_AS_UNICODE(u))
479   #define __Pyx_PyUnicode_READ(k, d, i)   ((void)(k), (Py_UCS4)(((Py_UNICODE*)d)[i]))
480   #define __Pyx_PyUnicode_WRITE(k, d, i, ch)  (((void)(k)), ((Py_UNICODE*)d)[i] = ch)
481   #define __Pyx_PyUnicode_IS_TRUE(u)      (0 != PyUnicode_GET_SIZE(u))
482 #endif
483 #if CYTHON_COMPILING_IN_PYPY
484   #define __Pyx_PyUnicode_Concat(a, b)      PyNumber_Add(a, b)
485   #define __Pyx_PyUnicode_ConcatSafe(a, b)  PyNumber_Add(a, b)
486 #else
487   #define __Pyx_PyUnicode_Concat(a, b)      PyUnicode_Concat(a, b)
488   #define __Pyx_PyUnicode_ConcatSafe(a, b)  ((unlikely((a) == Py_None) || unlikely((b) == Py_None)) ?\
489       PyNumber_Add(a, b) : __Pyx_PyUnicode_Concat(a, b))
490 #endif
491 #if CYTHON_COMPILING_IN_PYPY && !defined(PyUnicode_Contains)
492   #define PyUnicode_Contains(u, s)  PySequence_Contains(u, s)
493 #endif
494 #if CYTHON_COMPILING_IN_PYPY && !defined(PyByteArray_Check)
495   #define PyByteArray_Check(obj)  PyObject_TypeCheck(obj, &PyByteArray_Type)
496 #endif
497 #if CYTHON_COMPILING_IN_PYPY && !defined(PyObject_Format)
498   #define PyObject_Format(obj, fmt)  PyObject_CallMethod(obj, "__format__", "O", fmt)
499 #endif
500 #define __Pyx_PyString_FormatSafe(a, b)   ((unlikely((a) == Py_None || (PyString_Check(b) && !PyString_CheckExact(b)))) ? PyNumber_Remainder(a, b) : __Pyx_PyString_Format(a, b))
501 #define __Pyx_PyUnicode_FormatSafe(a, b)  ((unlikely((a) == Py_None || (PyUnicode_Check(b) && !PyUnicode_CheckExact(b)))) ? PyNumber_Remainder(a, b) : PyUnicode_Format(a, b))
502 #if PY_MAJOR_VERSION >= 3
503   #define __Pyx_PyString_Format(a, b)  PyUnicode_Format(a, b)
504 #else
505   #define __Pyx_PyString_Format(a, b)  PyString_Format(a, b)
506 #endif
507 #if PY_MAJOR_VERSION < 3 && !defined(PyObject_ASCII)
508   #define PyObject_ASCII(o)            PyObject_Repr(o)
509 #endif
510 #if PY_MAJOR_VERSION >= 3
511   #define PyBaseString_Type            PyUnicode_Type
512   #define PyStringObject               PyUnicodeObject
513   #define PyString_Type                PyUnicode_Type
514   #define PyString_Check               PyUnicode_Check
515   #define PyString_CheckExact          PyUnicode_CheckExact
516 #ifndef PyObject_Unicode
517   #define PyObject_Unicode             PyObject_Str
518 #endif
519 #endif
520 #if PY_MAJOR_VERSION >= 3
521   #define __Pyx_PyBaseString_Check(obj) PyUnicode_Check(obj)
522   #define __Pyx_PyBaseString_CheckExact(obj) PyUnicode_CheckExact(obj)
523 #else
524   #define __Pyx_PyBaseString_Check(obj) (PyString_Check(obj) || PyUnicode_Check(obj))
525   #define __Pyx_PyBaseString_CheckExact(obj) (PyString_CheckExact(obj) || PyUnicode_CheckExact(obj))
526 #endif
527 #ifndef PySet_CheckExact
528   #define PySet_CheckExact(obj)        (Py_TYPE(obj) == &PySet_Type)
529 #endif
530 #if PY_VERSION_HEX >= 0x030900A4
531   #define __Pyx_SET_REFCNT(obj, refcnt) Py_SET_REFCNT(obj, refcnt)
532   #define __Pyx_SET_SIZE(obj, size) Py_SET_SIZE(obj, size)
533 #else
534   #define __Pyx_SET_REFCNT(obj, refcnt) Py_REFCNT(obj) = (refcnt)
535   #define __Pyx_SET_SIZE(obj, size) Py_SIZE(obj) = (size)
536 #endif
537 #if CYTHON_ASSUME_SAFE_MACROS
538   #define __Pyx_PySequence_SIZE(seq)  Py_SIZE(seq)
539 #else
540   #define __Pyx_PySequence_SIZE(seq)  PySequence_Size(seq)
541 #endif
542 #if PY_MAJOR_VERSION >= 3
543   #define PyIntObject                  PyLongObject
544   #define PyInt_Type                   PyLong_Type
545   #define PyInt_Check(op)              PyLong_Check(op)
546   #define PyInt_CheckExact(op)         PyLong_CheckExact(op)
547   #define PyInt_FromString             PyLong_FromString
548   #define PyInt_FromUnicode            PyLong_FromUnicode
549   #define PyInt_FromLong               PyLong_FromLong
550   #define PyInt_FromSize_t             PyLong_FromSize_t
551   #define PyInt_FromSsize_t            PyLong_FromSsize_t
552   #define PyInt_AsLong                 PyLong_AsLong
553   #define PyInt_AS_LONG                PyLong_AS_LONG
554   #define PyInt_AsSsize_t              PyLong_AsSsize_t
555   #define PyInt_AsUnsignedLongMask     PyLong_AsUnsignedLongMask
556   #define PyInt_AsUnsignedLongLongMask PyLong_AsUnsignedLongLongMask
557   #define PyNumber_Int                 PyNumber_Long
558 #endif
559 #if PY_MAJOR_VERSION >= 3
560   #define PyBoolObject                 PyLongObject
561 #endif
562 #if PY_MAJOR_VERSION >= 3 && CYTHON_COMPILING_IN_PYPY
563   #ifndef PyUnicode_InternFromString
564     #define PyUnicode_InternFromString(s) PyUnicode_FromString(s)
565   #endif
566 #endif
567 #if PY_VERSION_HEX < 0x030200A4
568   typedef long Py_hash_t;
569   #define __Pyx_PyInt_FromHash_t PyInt_FromLong
570   #define __Pyx_PyInt_AsHash_t   PyInt_AsLong
571 #else
572   #define __Pyx_PyInt_FromHash_t PyInt_FromSsize_t
573   #define __Pyx_PyInt_AsHash_t   PyInt_AsSsize_t
574 #endif
575 #if PY_MAJOR_VERSION >= 3
576   #define __Pyx_PyMethod_New(func, self, klass) ((self) ? ((void)(klass), PyMethod_New(func, self)) : __Pyx_NewRef(func))
577 #else
578   #define __Pyx_PyMethod_New(func, self, klass) PyMethod_New(func, self, klass)
579 #endif
580 #if CYTHON_USE_ASYNC_SLOTS
581   #if PY_VERSION_HEX >= 0x030500B1
582     #define __Pyx_PyAsyncMethodsStruct PyAsyncMethods
583     #define __Pyx_PyType_AsAsync(obj) (Py_TYPE(obj)->tp_as_async)
584   #else
585     #define __Pyx_PyType_AsAsync(obj) ((__Pyx_PyAsyncMethodsStruct*) (Py_TYPE(obj)->tp_reserved))
586   #endif
587 #else
588   #define __Pyx_PyType_AsAsync(obj) NULL
589 #endif
590 #ifndef __Pyx_PyAsyncMethodsStruct
591     typedef struct {
592         unaryfunc am_await;
593         unaryfunc am_aiter;
594         unaryfunc am_anext;
595     } __Pyx_PyAsyncMethodsStruct;
596 #endif
597 
598 #if defined(WIN32) || defined(MS_WINDOWS)
599   #define _USE_MATH_DEFINES
600 #endif
601 #include <math.h>
602 #ifdef NAN
603 #define __PYX_NAN() ((float) NAN)
604 #else
__PYX_NAN()605 static CYTHON_INLINE float __PYX_NAN() {
606   float value;
607   memset(&value, 0xFF, sizeof(value));
608   return value;
609 }
610 #endif
611 #if defined(__CYGWIN__) && defined(_LDBL_EQ_DBL)
612 #define __Pyx_truncl trunc
613 #else
614 #define __Pyx_truncl truncl
615 #endif
616 
617 #define __PYX_MARK_ERR_POS(f_index, lineno) \
618     { __pyx_filename = __pyx_f[f_index]; (void)__pyx_filename; __pyx_lineno = lineno; (void)__pyx_lineno; __pyx_clineno = __LINE__; (void)__pyx_clineno; }
619 #define __PYX_ERR(f_index, lineno, Ln_error) \
620     { __PYX_MARK_ERR_POS(f_index, lineno) goto Ln_error; }
621 
622 #ifndef __PYX_EXTERN_C
623   #ifdef __cplusplus
624     #define __PYX_EXTERN_C extern "C"
625   #else
626     #define __PYX_EXTERN_C extern
627   #endif
628 #endif
629 
630 #define __PYX_HAVE__Cython__Compiler__Visitor
631 #define __PYX_HAVE_API__Cython__Compiler__Visitor
632 /* Early includes */
633 #ifdef _OPENMP
634 #include <omp.h>
635 #endif /* _OPENMP */
636 
637 #if defined(PYREX_WITHOUT_ASSERTIONS) && !defined(CYTHON_WITHOUT_ASSERTIONS)
638 #define CYTHON_WITHOUT_ASSERTIONS
639 #endif
640 
641 typedef struct {PyObject **p; const char *s; const Py_ssize_t n; const char* encoding;
642                 const char is_unicode; const char is_str; const char intern; } __Pyx_StringTabEntry;
643 
644 #define __PYX_DEFAULT_STRING_ENCODING_IS_ASCII 0
645 #define __PYX_DEFAULT_STRING_ENCODING_IS_UTF8 0
646 #define __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT (PY_MAJOR_VERSION >= 3 && __PYX_DEFAULT_STRING_ENCODING_IS_UTF8)
647 #define __PYX_DEFAULT_STRING_ENCODING ""
648 #define __Pyx_PyObject_FromString __Pyx_PyBytes_FromString
649 #define __Pyx_PyObject_FromStringAndSize __Pyx_PyBytes_FromStringAndSize
650 #define __Pyx_uchar_cast(c) ((unsigned char)c)
651 #define __Pyx_long_cast(x) ((long)x)
652 #define __Pyx_fits_Py_ssize_t(v, type, is_signed)  (\
653     (sizeof(type) < sizeof(Py_ssize_t))  ||\
654     (sizeof(type) > sizeof(Py_ssize_t) &&\
655           likely(v < (type)PY_SSIZE_T_MAX ||\
656                  v == (type)PY_SSIZE_T_MAX)  &&\
657           (!is_signed || likely(v > (type)PY_SSIZE_T_MIN ||\
658                                 v == (type)PY_SSIZE_T_MIN)))  ||\
659     (sizeof(type) == sizeof(Py_ssize_t) &&\
660           (is_signed || likely(v < (type)PY_SSIZE_T_MAX ||\
661                                v == (type)PY_SSIZE_T_MAX)))  )
__Pyx_is_valid_index(Py_ssize_t i,Py_ssize_t limit)662 static CYTHON_INLINE int __Pyx_is_valid_index(Py_ssize_t i, Py_ssize_t limit) {
663     return (size_t) i < (size_t) limit;
664 }
665 #if defined (__cplusplus) && __cplusplus >= 201103L
666     #include <cstdlib>
667     #define __Pyx_sst_abs(value) std::abs(value)
668 #elif SIZEOF_INT >= SIZEOF_SIZE_T
669     #define __Pyx_sst_abs(value) abs(value)
670 #elif SIZEOF_LONG >= SIZEOF_SIZE_T
671     #define __Pyx_sst_abs(value) labs(value)
672 #elif defined (_MSC_VER)
673     #define __Pyx_sst_abs(value) ((Py_ssize_t)_abs64(value))
674 #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
675     #define __Pyx_sst_abs(value) llabs(value)
676 #elif defined (__GNUC__)
677     #define __Pyx_sst_abs(value) __builtin_llabs(value)
678 #else
679     #define __Pyx_sst_abs(value) ((value<0) ? -value : value)
680 #endif
681 static CYTHON_INLINE const char* __Pyx_PyObject_AsString(PyObject*);
682 static CYTHON_INLINE const char* __Pyx_PyObject_AsStringAndSize(PyObject*, Py_ssize_t* length);
683 #define __Pyx_PyByteArray_FromString(s) PyByteArray_FromStringAndSize((const char*)s, strlen((const char*)s))
684 #define __Pyx_PyByteArray_FromStringAndSize(s, l) PyByteArray_FromStringAndSize((const char*)s, l)
685 #define __Pyx_PyBytes_FromString        PyBytes_FromString
686 #define __Pyx_PyBytes_FromStringAndSize PyBytes_FromStringAndSize
687 static CYTHON_INLINE PyObject* __Pyx_PyUnicode_FromString(const char*);
688 #if PY_MAJOR_VERSION < 3
689     #define __Pyx_PyStr_FromString        __Pyx_PyBytes_FromString
690     #define __Pyx_PyStr_FromStringAndSize __Pyx_PyBytes_FromStringAndSize
691 #else
692     #define __Pyx_PyStr_FromString        __Pyx_PyUnicode_FromString
693     #define __Pyx_PyStr_FromStringAndSize __Pyx_PyUnicode_FromStringAndSize
694 #endif
695 #define __Pyx_PyBytes_AsWritableString(s)     ((char*) PyBytes_AS_STRING(s))
696 #define __Pyx_PyBytes_AsWritableSString(s)    ((signed char*) PyBytes_AS_STRING(s))
697 #define __Pyx_PyBytes_AsWritableUString(s)    ((unsigned char*) PyBytes_AS_STRING(s))
698 #define __Pyx_PyBytes_AsString(s)     ((const char*) PyBytes_AS_STRING(s))
699 #define __Pyx_PyBytes_AsSString(s)    ((const signed char*) PyBytes_AS_STRING(s))
700 #define __Pyx_PyBytes_AsUString(s)    ((const unsigned char*) PyBytes_AS_STRING(s))
701 #define __Pyx_PyObject_AsWritableString(s)    ((char*) __Pyx_PyObject_AsString(s))
702 #define __Pyx_PyObject_AsWritableSString(s)    ((signed char*) __Pyx_PyObject_AsString(s))
703 #define __Pyx_PyObject_AsWritableUString(s)    ((unsigned char*) __Pyx_PyObject_AsString(s))
704 #define __Pyx_PyObject_AsSString(s)    ((const signed char*) __Pyx_PyObject_AsString(s))
705 #define __Pyx_PyObject_AsUString(s)    ((const unsigned char*) __Pyx_PyObject_AsString(s))
706 #define __Pyx_PyObject_FromCString(s)  __Pyx_PyObject_FromString((const char*)s)
707 #define __Pyx_PyBytes_FromCString(s)   __Pyx_PyBytes_FromString((const char*)s)
708 #define __Pyx_PyByteArray_FromCString(s)   __Pyx_PyByteArray_FromString((const char*)s)
709 #define __Pyx_PyStr_FromCString(s)     __Pyx_PyStr_FromString((const char*)s)
710 #define __Pyx_PyUnicode_FromCString(s) __Pyx_PyUnicode_FromString((const char*)s)
__Pyx_Py_UNICODE_strlen(const Py_UNICODE * u)711 static CYTHON_INLINE size_t __Pyx_Py_UNICODE_strlen(const Py_UNICODE *u) {
712     const Py_UNICODE *u_end = u;
713     while (*u_end++) ;
714     return (size_t)(u_end - u - 1);
715 }
716 #define __Pyx_PyUnicode_FromUnicode(u)       PyUnicode_FromUnicode(u, __Pyx_Py_UNICODE_strlen(u))
717 #define __Pyx_PyUnicode_FromUnicodeAndLength PyUnicode_FromUnicode
718 #define __Pyx_PyUnicode_AsUnicode            PyUnicode_AsUnicode
719 #define __Pyx_NewRef(obj) (Py_INCREF(obj), obj)
720 #define __Pyx_Owned_Py_None(b) __Pyx_NewRef(Py_None)
721 static CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(long b);
722 static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject*);
723 static CYTHON_INLINE int __Pyx_PyObject_IsTrueAndDecref(PyObject*);
724 static CYTHON_INLINE PyObject* __Pyx_PyNumber_IntOrLong(PyObject* x);
725 #define __Pyx_PySequence_Tuple(obj)\
726     (likely(PyTuple_CheckExact(obj)) ? __Pyx_NewRef(obj) : PySequence_Tuple(obj))
727 static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject*);
728 static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t);
729 #if CYTHON_ASSUME_SAFE_MACROS
730 #define __pyx_PyFloat_AsDouble(x) (PyFloat_CheckExact(x) ? PyFloat_AS_DOUBLE(x) : PyFloat_AsDouble(x))
731 #else
732 #define __pyx_PyFloat_AsDouble(x) PyFloat_AsDouble(x)
733 #endif
734 #define __pyx_PyFloat_AsFloat(x) ((float) __pyx_PyFloat_AsDouble(x))
735 #if PY_MAJOR_VERSION >= 3
736 #define __Pyx_PyNumber_Int(x) (PyLong_CheckExact(x) ? __Pyx_NewRef(x) : PyNumber_Long(x))
737 #else
738 #define __Pyx_PyNumber_Int(x) (PyInt_CheckExact(x) ? __Pyx_NewRef(x) : PyNumber_Int(x))
739 #endif
740 #define __Pyx_PyNumber_Float(x) (PyFloat_CheckExact(x) ? __Pyx_NewRef(x) : PyNumber_Float(x))
741 #if PY_MAJOR_VERSION < 3 && __PYX_DEFAULT_STRING_ENCODING_IS_ASCII
742 static int __Pyx_sys_getdefaultencoding_not_ascii;
__Pyx_init_sys_getdefaultencoding_params(void)743 static int __Pyx_init_sys_getdefaultencoding_params(void) {
744     PyObject* sys;
745     PyObject* default_encoding = NULL;
746     PyObject* ascii_chars_u = NULL;
747     PyObject* ascii_chars_b = NULL;
748     const char* default_encoding_c;
749     sys = PyImport_ImportModule("sys");
750     if (!sys) goto bad;
751     default_encoding = PyObject_CallMethod(sys, (char*) "getdefaultencoding", NULL);
752     Py_DECREF(sys);
753     if (!default_encoding) goto bad;
754     default_encoding_c = PyBytes_AsString(default_encoding);
755     if (!default_encoding_c) goto bad;
756     if (strcmp(default_encoding_c, "ascii") == 0) {
757         __Pyx_sys_getdefaultencoding_not_ascii = 0;
758     } else {
759         char ascii_chars[128];
760         int c;
761         for (c = 0; c < 128; c++) {
762             ascii_chars[c] = c;
763         }
764         __Pyx_sys_getdefaultencoding_not_ascii = 1;
765         ascii_chars_u = PyUnicode_DecodeASCII(ascii_chars, 128, NULL);
766         if (!ascii_chars_u) goto bad;
767         ascii_chars_b = PyUnicode_AsEncodedString(ascii_chars_u, default_encoding_c, NULL);
768         if (!ascii_chars_b || !PyBytes_Check(ascii_chars_b) || memcmp(ascii_chars, PyBytes_AS_STRING(ascii_chars_b), 128) != 0) {
769             PyErr_Format(
770                 PyExc_ValueError,
771                 "This module compiled with c_string_encoding=ascii, but default encoding '%.200s' is not a superset of ascii.",
772                 default_encoding_c);
773             goto bad;
774         }
775         Py_DECREF(ascii_chars_u);
776         Py_DECREF(ascii_chars_b);
777     }
778     Py_DECREF(default_encoding);
779     return 0;
780 bad:
781     Py_XDECREF(default_encoding);
782     Py_XDECREF(ascii_chars_u);
783     Py_XDECREF(ascii_chars_b);
784     return -1;
785 }
786 #endif
787 #if __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT && PY_MAJOR_VERSION >= 3
788 #define __Pyx_PyUnicode_FromStringAndSize(c_str, size) PyUnicode_DecodeUTF8(c_str, size, NULL)
789 #else
790 #define __Pyx_PyUnicode_FromStringAndSize(c_str, size) PyUnicode_Decode(c_str, size, __PYX_DEFAULT_STRING_ENCODING, NULL)
791 #if __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT
792 static char* __PYX_DEFAULT_STRING_ENCODING;
__Pyx_init_sys_getdefaultencoding_params(void)793 static int __Pyx_init_sys_getdefaultencoding_params(void) {
794     PyObject* sys;
795     PyObject* default_encoding = NULL;
796     char* default_encoding_c;
797     sys = PyImport_ImportModule("sys");
798     if (!sys) goto bad;
799     default_encoding = PyObject_CallMethod(sys, (char*) (const char*) "getdefaultencoding", NULL);
800     Py_DECREF(sys);
801     if (!default_encoding) goto bad;
802     default_encoding_c = PyBytes_AsString(default_encoding);
803     if (!default_encoding_c) goto bad;
804     __PYX_DEFAULT_STRING_ENCODING = (char*) malloc(strlen(default_encoding_c) + 1);
805     if (!__PYX_DEFAULT_STRING_ENCODING) goto bad;
806     strcpy(__PYX_DEFAULT_STRING_ENCODING, default_encoding_c);
807     Py_DECREF(default_encoding);
808     return 0;
809 bad:
810     Py_XDECREF(default_encoding);
811     return -1;
812 }
813 #endif
814 #endif
815 
816 
817 /* Test for GCC > 2.95 */
818 #if defined(__GNUC__)     && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))
819   #define likely(x)   __builtin_expect(!!(x), 1)
820   #define unlikely(x) __builtin_expect(!!(x), 0)
821 #else /* !__GNUC__ or GCC < 2.95 */
822   #define likely(x)   (x)
823   #define unlikely(x) (x)
824 #endif /* __GNUC__ */
__Pyx_pretend_to_initialize(void * ptr)825 static CYTHON_INLINE void __Pyx_pretend_to_initialize(void* ptr) { (void)ptr; }
826 
827 static PyObject *__pyx_m = NULL;
828 static PyObject *__pyx_d;
829 static PyObject *__pyx_b;
830 static PyObject *__pyx_cython_runtime = NULL;
831 static PyObject *__pyx_empty_tuple;
832 static PyObject *__pyx_empty_bytes;
833 static PyObject *__pyx_empty_unicode;
834 static int __pyx_lineno;
835 static int __pyx_clineno = 0;
836 static const char * __pyx_cfilenm= __FILE__;
837 static const char *__pyx_filename;
838 
839 
840 static const char *__pyx_f[] = {
841   "Cython/Compiler/Visitor.py",
842   "Cython/Compiler/Visitor.pxd",
843 };
844 
845 /*--- Type declarations ---*/
846 struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor;
847 struct __pyx_obj_6Cython_8Compiler_7Visitor_VisitorTransform;
848 struct __pyx_obj_6Cython_8Compiler_7Visitor_CythonTransform;
849 struct __pyx_obj_6Cython_8Compiler_7Visitor_ScopeTrackingTransform;
850 struct __pyx_obj_6Cython_8Compiler_7Visitor_EnvTransform;
851 struct __pyx_obj_6Cython_8Compiler_7Visitor_MethodDispatcherTransform;
852 struct __pyx_obj_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer;
853 struct __pyx_obj_6Cython_8Compiler_7Visitor_NodeFinder;
854 struct __pyx_opt_args_6Cython_8Compiler_7Visitor_11TreeVisitor_visitchildren;
855 struct __pyx_opt_args_6Cython_8Compiler_7Visitor_16VisitorTransform__process_children;
856 struct __pyx_opt_args_6Cython_8Compiler_7Visitor_16VisitorTransform_visitchildren;
857 
858 /* "Cython/Compiler/Visitor.pxd":14
859  *     cdef _visitchild(self, child, parent, attrname, idx)
860  *     cdef dict _visitchildren(self, parent, attrs)
861  *     cpdef visitchildren(self, parent, attrs=*)             # <<<<<<<<<<<<<<
862  *     cdef _raise_compiler_error(self, child, e)
863  *
864  */
865 struct __pyx_opt_args_6Cython_8Compiler_7Visitor_11TreeVisitor_visitchildren {
866   int __pyx_n;
867   PyObject *attrs;
868 };
869 
870 /* "Cython/Compiler/Visitor.pxd":18
871  *
872  * cdef class VisitorTransform(TreeVisitor):
873  *     cdef dict _process_children(self, parent, attrs=*)             # <<<<<<<<<<<<<<
874  *     cpdef visitchildren(self, parent, attrs=*, exclude=*)
875  *     cdef list _flatten_list(self, list orig_list)
876  */
877 struct __pyx_opt_args_6Cython_8Compiler_7Visitor_16VisitorTransform__process_children {
878   int __pyx_n;
879   PyObject *attrs;
880 };
881 
882 /* "Cython/Compiler/Visitor.pxd":19
883  * cdef class VisitorTransform(TreeVisitor):
884  *     cdef dict _process_children(self, parent, attrs=*)
885  *     cpdef visitchildren(self, parent, attrs=*, exclude=*)             # <<<<<<<<<<<<<<
886  *     cdef list _flatten_list(self, list orig_list)
887  *     cdef list _select_attrs(self, attrs, exclude)
888  */
889 struct __pyx_opt_args_6Cython_8Compiler_7Visitor_16VisitorTransform_visitchildren {
890   int __pyx_n;
891   PyObject *attrs;
892   PyObject *exclude;
893 };
894 
895 /* "Cython/Compiler/Visitor.pxd":5
896  * cimport cython
897  *
898  * cdef class TreeVisitor:             # <<<<<<<<<<<<<<
899  *     cdef public list access_path
900  *     cdef dict dispatch_table
901  */
902 struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor {
903   PyObject_HEAD
904   struct __pyx_vtabstruct_6Cython_8Compiler_7Visitor_TreeVisitor *__pyx_vtab;
905   PyObject *access_path;
906   PyObject *dispatch_table;
907 };
908 
909 
910 /* "Cython/Compiler/Visitor.pxd":17
911  *     cdef _raise_compiler_error(self, child, e)
912  *
913  * cdef class VisitorTransform(TreeVisitor):             # <<<<<<<<<<<<<<
914  *     cdef dict _process_children(self, parent, attrs=*)
915  *     cpdef visitchildren(self, parent, attrs=*, exclude=*)
916  */
917 struct __pyx_obj_6Cython_8Compiler_7Visitor_VisitorTransform {
918   struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor __pyx_base;
919 };
920 
921 
922 /* "Cython/Compiler/Visitor.pxd":23
923  *     cdef list _select_attrs(self, attrs, exclude)
924  *
925  * cdef class CythonTransform(VisitorTransform):             # <<<<<<<<<<<<<<
926  *     cdef public context
927  *     cdef public current_directives
928  */
929 struct __pyx_obj_6Cython_8Compiler_7Visitor_CythonTransform {
930   struct __pyx_obj_6Cython_8Compiler_7Visitor_VisitorTransform __pyx_base;
931   PyObject *context;
932   PyObject *current_directives;
933 };
934 
935 
936 /* "Cython/Compiler/Visitor.pxd":27
937  *     cdef public current_directives
938  *
939  * cdef class ScopeTrackingTransform(CythonTransform):             # <<<<<<<<<<<<<<
940  *     cdef public scope_type
941  *     cdef public scope_node
942  */
943 struct __pyx_obj_6Cython_8Compiler_7Visitor_ScopeTrackingTransform {
944   struct __pyx_obj_6Cython_8Compiler_7Visitor_CythonTransform __pyx_base;
945   PyObject *scope_type;
946   PyObject *scope_node;
947 };
948 
949 
950 /* "Cython/Compiler/Visitor.pxd":32
951  *     cdef visit_scope(self, node, scope_type)
952  *
953  * cdef class EnvTransform(CythonTransform):             # <<<<<<<<<<<<<<
954  *     cdef public list env_stack
955  *
956  */
957 struct __pyx_obj_6Cython_8Compiler_7Visitor_EnvTransform {
958   struct __pyx_obj_6Cython_8Compiler_7Visitor_CythonTransform __pyx_base;
959   PyObject *env_stack;
960 };
961 
962 
963 /* "Cython/Compiler/Visitor.pxd":35
964  *     cdef public list env_stack
965  *
966  * cdef class MethodDispatcherTransform(EnvTransform):             # <<<<<<<<<<<<<<
967  *     @cython.final
968  *     cdef _visit_binop_node(self, node)
969  */
970 struct __pyx_obj_6Cython_8Compiler_7Visitor_MethodDispatcherTransform {
971   struct __pyx_obj_6Cython_8Compiler_7Visitor_EnvTransform __pyx_base;
972 };
973 
974 
975 /* "Cython/Compiler/Visitor.pxd":49
976  *                                      node, function, arg_list, kwargs)
977  *
978  * cdef class RecursiveNodeReplacer(VisitorTransform):             # <<<<<<<<<<<<<<
979  *      cdef public orig_node
980  *      cdef public new_node
981  */
982 struct __pyx_obj_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer {
983   struct __pyx_obj_6Cython_8Compiler_7Visitor_VisitorTransform __pyx_base;
984   PyObject *orig_node;
985   PyObject *new_node;
986 };
987 
988 
989 /* "Cython/Compiler/Visitor.pxd":53
990  *      cdef public new_node
991  *
992  * cdef class NodeFinder(TreeVisitor):             # <<<<<<<<<<<<<<
993  *     cdef node
994  *     cdef public bint found
995  */
996 struct __pyx_obj_6Cython_8Compiler_7Visitor_NodeFinder {
997   struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor __pyx_base;
998   PyObject *node;
999   int found;
1000 };
1001 
1002 
1003 
1004 /* "Cython/Compiler/Visitor.py":33
1005  *
1006  *
1007  * class TreeVisitor(object):             # <<<<<<<<<<<<<<
1008  *     """
1009  *     Base class for writing visitors for a Cython tree, contains utilities for
1010  */
1011 
1012 struct __pyx_vtabstruct_6Cython_8Compiler_7Visitor_TreeVisitor {
1013   PyObject *(*visit)(struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor *, PyObject *, int __pyx_skip_dispatch);
1014   PyObject *(*_visit)(struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor *, PyObject *);
1015   PyObject *(*find_handler)(struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor *, PyObject *);
1016   PyObject *(*_visitchild)(struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor *, PyObject *, PyObject *, PyObject *, PyObject *);
1017   PyObject *(*_visitchildren)(struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor *, PyObject *, PyObject *);
1018   PyObject *(*visitchildren)(struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor *, PyObject *, int __pyx_skip_dispatch, struct __pyx_opt_args_6Cython_8Compiler_7Visitor_11TreeVisitor_visitchildren *__pyx_optional_args);
1019   PyObject *(*_raise_compiler_error)(struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor *, PyObject *, PyObject *);
1020 };
1021 static struct __pyx_vtabstruct_6Cython_8Compiler_7Visitor_TreeVisitor *__pyx_vtabptr_6Cython_8Compiler_7Visitor_TreeVisitor;
1022 static PyObject *__pyx_f_6Cython_8Compiler_7Visitor_11TreeVisitor__visit(struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor *, PyObject *);
1023 static PyObject *__pyx_f_6Cython_8Compiler_7Visitor_11TreeVisitor_find_handler(struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor *, PyObject *);
1024 static PyObject *__pyx_f_6Cython_8Compiler_7Visitor_11TreeVisitor__visitchild(struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor *, PyObject *, PyObject *, PyObject *, PyObject *);
1025 static PyObject *__pyx_f_6Cython_8Compiler_7Visitor_11TreeVisitor__visitchildren(struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor *, PyObject *, PyObject *);
1026 
1027 
1028 /* "Cython/Compiler/Visitor.py":227
1029  *
1030  *
1031  * class VisitorTransform(TreeVisitor):             # <<<<<<<<<<<<<<
1032  *     """
1033  *     A tree transform is a base class for visitors that wants to do stream
1034  */
1035 
1036 struct __pyx_vtabstruct_6Cython_8Compiler_7Visitor_VisitorTransform {
1037   struct __pyx_vtabstruct_6Cython_8Compiler_7Visitor_TreeVisitor __pyx_base;
1038   PyObject *(*_process_children)(struct __pyx_obj_6Cython_8Compiler_7Visitor_VisitorTransform *, PyObject *, struct __pyx_opt_args_6Cython_8Compiler_7Visitor_16VisitorTransform__process_children *__pyx_optional_args);
1039   PyObject *(*visitchildren)(struct __pyx_obj_6Cython_8Compiler_7Visitor_VisitorTransform *, PyObject *, int __pyx_skip_dispatch, struct __pyx_opt_args_6Cython_8Compiler_7Visitor_16VisitorTransform_visitchildren *__pyx_optional_args);
1040   PyObject *(*_flatten_list)(struct __pyx_obj_6Cython_8Compiler_7Visitor_VisitorTransform *, PyObject *);
1041   PyObject *(*_select_attrs)(struct __pyx_obj_6Cython_8Compiler_7Visitor_VisitorTransform *, PyObject *, PyObject *);
1042 };
1043 static struct __pyx_vtabstruct_6Cython_8Compiler_7Visitor_VisitorTransform *__pyx_vtabptr_6Cython_8Compiler_7Visitor_VisitorTransform;
1044 static PyObject *__pyx_f_6Cython_8Compiler_7Visitor_16VisitorTransform__process_children(struct __pyx_obj_6Cython_8Compiler_7Visitor_VisitorTransform *, PyObject *, struct __pyx_opt_args_6Cython_8Compiler_7Visitor_16VisitorTransform__process_children *__pyx_optional_args);
1045 static PyObject *__pyx_f_6Cython_8Compiler_7Visitor_16VisitorTransform__flatten_list(struct __pyx_obj_6Cython_8Compiler_7Visitor_VisitorTransform *, PyObject *);
1046 static PyObject *__pyx_f_6Cython_8Compiler_7Visitor_16VisitorTransform__select_attrs(struct __pyx_obj_6Cython_8Compiler_7Visitor_VisitorTransform *, PyObject *, PyObject *);
1047 
1048 
1049 /* "Cython/Compiler/Visitor.py":287
1050  *
1051  *
1052  * class CythonTransform(VisitorTransform):             # <<<<<<<<<<<<<<
1053  *     """
1054  *     Certain common conventions and utilities for Cython transforms.
1055  */
1056 
1057 struct __pyx_vtabstruct_6Cython_8Compiler_7Visitor_CythonTransform {
1058   struct __pyx_vtabstruct_6Cython_8Compiler_7Visitor_VisitorTransform __pyx_base;
1059 };
1060 static struct __pyx_vtabstruct_6Cython_8Compiler_7Visitor_CythonTransform *__pyx_vtabptr_6Cython_8Compiler_7Visitor_CythonTransform;
1061 
1062 
1063 /* "Cython/Compiler/Visitor.py":316
1064  *
1065  *
1066  * class ScopeTrackingTransform(CythonTransform):             # <<<<<<<<<<<<<<
1067  *     # Keeps track of type of scopes
1068  *     #scope_type: can be either of 'module', 'function', 'cclass', 'pyclass', 'struct'
1069  */
1070 
1071 struct __pyx_vtabstruct_6Cython_8Compiler_7Visitor_ScopeTrackingTransform {
1072   struct __pyx_vtabstruct_6Cython_8Compiler_7Visitor_CythonTransform __pyx_base;
1073   PyObject *(*visit_scope)(struct __pyx_obj_6Cython_8Compiler_7Visitor_ScopeTrackingTransform *, PyObject *, PyObject *);
1074 };
1075 static struct __pyx_vtabstruct_6Cython_8Compiler_7Visitor_ScopeTrackingTransform *__pyx_vtabptr_6Cython_8Compiler_7Visitor_ScopeTrackingTransform;
1076 
1077 
1078 /* "Cython/Compiler/Visitor.py":348
1079  *
1080  *
1081  * class EnvTransform(CythonTransform):             # <<<<<<<<<<<<<<
1082  *     """
1083  *     This transformation keeps a stack of the environments.
1084  */
1085 
1086 struct __pyx_vtabstruct_6Cython_8Compiler_7Visitor_EnvTransform {
1087   struct __pyx_vtabstruct_6Cython_8Compiler_7Visitor_CythonTransform __pyx_base;
1088 };
1089 static struct __pyx_vtabstruct_6Cython_8Compiler_7Visitor_EnvTransform *__pyx_vtabptr_6Cython_8Compiler_7Visitor_EnvTransform;
1090 
1091 
1092 /* "Cython/Compiler/Visitor.py":482
1093  *
1094  *
1095  * class MethodDispatcherTransform(EnvTransform):             # <<<<<<<<<<<<<<
1096  *     """
1097  *     Base class for transformations that want to intercept on specific
1098  */
1099 
1100 struct __pyx_vtabstruct_6Cython_8Compiler_7Visitor_MethodDispatcherTransform {
1101   struct __pyx_vtabstruct_6Cython_8Compiler_7Visitor_EnvTransform __pyx_base;
1102   PyObject *(*_visit_binop_node)(struct __pyx_obj_6Cython_8Compiler_7Visitor_MethodDispatcherTransform *, PyObject *);
1103   PyObject *(*_find_handler)(struct __pyx_obj_6Cython_8Compiler_7Visitor_MethodDispatcherTransform *, PyObject *, int);
1104   PyObject *(*_delegate_to_assigned_value)(struct __pyx_obj_6Cython_8Compiler_7Visitor_MethodDispatcherTransform *, PyObject *, PyObject *, PyObject *, PyObject *);
1105   PyObject *(*_dispatch_to_handler)(struct __pyx_obj_6Cython_8Compiler_7Visitor_MethodDispatcherTransform *, PyObject *, PyObject *, PyObject *, PyObject *);
1106   PyObject *(*_dispatch_to_method_handler)(struct __pyx_obj_6Cython_8Compiler_7Visitor_MethodDispatcherTransform *, PyObject *, PyObject *, PyObject *, PyObject *, PyObject *, PyObject *, PyObject *, PyObject *);
1107 };
1108 static struct __pyx_vtabstruct_6Cython_8Compiler_7Visitor_MethodDispatcherTransform *__pyx_vtabptr_6Cython_8Compiler_7Visitor_MethodDispatcherTransform;
1109 
1110 
1111 /* "Cython/Compiler/Visitor.py":693
1112  *
1113  *
1114  * class RecursiveNodeReplacer(VisitorTransform):             # <<<<<<<<<<<<<<
1115  *     """
1116  *     Recursively replace all occurrences of a node in a subtree by
1117  */
1118 
1119 struct __pyx_vtabstruct_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer {
1120   struct __pyx_vtabstruct_6Cython_8Compiler_7Visitor_VisitorTransform __pyx_base;
1121 };
1122 static struct __pyx_vtabstruct_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer *__pyx_vtabptr_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer;
1123 
1124 
1125 /* "Cython/Compiler/Visitor.py":721
1126  *
1127  *
1128  * class NodeFinder(TreeVisitor):             # <<<<<<<<<<<<<<
1129  *     """
1130  *     Find out if a node appears in a subtree.
1131  */
1132 
1133 struct __pyx_vtabstruct_6Cython_8Compiler_7Visitor_NodeFinder {
1134   struct __pyx_vtabstruct_6Cython_8Compiler_7Visitor_TreeVisitor __pyx_base;
1135 };
1136 static struct __pyx_vtabstruct_6Cython_8Compiler_7Visitor_NodeFinder *__pyx_vtabptr_6Cython_8Compiler_7Visitor_NodeFinder;
1137 
1138 /* --- Runtime support code (head) --- */
1139 /* Refnanny.proto */
1140 #ifndef CYTHON_REFNANNY
1141   #define CYTHON_REFNANNY 0
1142 #endif
1143 #if CYTHON_REFNANNY
1144   typedef struct {
1145     void (*INCREF)(void*, PyObject*, int);
1146     void (*DECREF)(void*, PyObject*, int);
1147     void (*GOTREF)(void*, PyObject*, int);
1148     void (*GIVEREF)(void*, PyObject*, int);
1149     void* (*SetupContext)(const char*, int, const char*);
1150     void (*FinishContext)(void**);
1151   } __Pyx_RefNannyAPIStruct;
1152   static __Pyx_RefNannyAPIStruct *__Pyx_RefNanny = NULL;
1153   static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname);
1154   #define __Pyx_RefNannyDeclarations void *__pyx_refnanny = NULL;
1155 #ifdef WITH_THREAD
1156   #define __Pyx_RefNannySetupContext(name, acquire_gil)\
1157           if (acquire_gil) {\
1158               PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();\
1159               __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__);\
1160               PyGILState_Release(__pyx_gilstate_save);\
1161           } else {\
1162               __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__);\
1163           }
1164 #else
1165   #define __Pyx_RefNannySetupContext(name, acquire_gil)\
1166           __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__)
1167 #endif
1168   #define __Pyx_RefNannyFinishContext()\
1169           __Pyx_RefNanny->FinishContext(&__pyx_refnanny)
1170   #define __Pyx_INCREF(r)  __Pyx_RefNanny->INCREF(__pyx_refnanny, (PyObject *)(r), __LINE__)
1171   #define __Pyx_DECREF(r)  __Pyx_RefNanny->DECREF(__pyx_refnanny, (PyObject *)(r), __LINE__)
1172   #define __Pyx_GOTREF(r)  __Pyx_RefNanny->GOTREF(__pyx_refnanny, (PyObject *)(r), __LINE__)
1173   #define __Pyx_GIVEREF(r) __Pyx_RefNanny->GIVEREF(__pyx_refnanny, (PyObject *)(r), __LINE__)
1174   #define __Pyx_XINCREF(r)  do { if((r) != NULL) {__Pyx_INCREF(r); }} while(0)
1175   #define __Pyx_XDECREF(r)  do { if((r) != NULL) {__Pyx_DECREF(r); }} while(0)
1176   #define __Pyx_XGOTREF(r)  do { if((r) != NULL) {__Pyx_GOTREF(r); }} while(0)
1177   #define __Pyx_XGIVEREF(r) do { if((r) != NULL) {__Pyx_GIVEREF(r);}} while(0)
1178 #else
1179   #define __Pyx_RefNannyDeclarations
1180   #define __Pyx_RefNannySetupContext(name, acquire_gil)
1181   #define __Pyx_RefNannyFinishContext()
1182   #define __Pyx_INCREF(r) Py_INCREF(r)
1183   #define __Pyx_DECREF(r) Py_DECREF(r)
1184   #define __Pyx_GOTREF(r)
1185   #define __Pyx_GIVEREF(r)
1186   #define __Pyx_XINCREF(r) Py_XINCREF(r)
1187   #define __Pyx_XDECREF(r) Py_XDECREF(r)
1188   #define __Pyx_XGOTREF(r)
1189   #define __Pyx_XGIVEREF(r)
1190 #endif
1191 #define __Pyx_XDECREF_SET(r, v) do {\
1192         PyObject *tmp = (PyObject *) r;\
1193         r = v; __Pyx_XDECREF(tmp);\
1194     } while (0)
1195 #define __Pyx_DECREF_SET(r, v) do {\
1196         PyObject *tmp = (PyObject *) r;\
1197         r = v; __Pyx_DECREF(tmp);\
1198     } while (0)
1199 #define __Pyx_CLEAR(r)    do { PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);} while(0)
1200 #define __Pyx_XCLEAR(r)   do { if((r) != NULL) {PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);}} while(0)
1201 
1202 /* PyObjectGetAttrStr.proto */
1203 #if CYTHON_USE_TYPE_SLOTS
1204 static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStr(PyObject* obj, PyObject* attr_name);
1205 #else
1206 #define __Pyx_PyObject_GetAttrStr(o,n) PyObject_GetAttr(o,n)
1207 #endif
1208 
1209 /* GetBuiltinName.proto */
1210 static PyObject *__Pyx_GetBuiltinName(PyObject *name);
1211 
1212 /* RaiseArgTupleInvalid.proto */
1213 static void __Pyx_RaiseArgtupleInvalid(const char* func_name, int exact,
1214     Py_ssize_t num_min, Py_ssize_t num_max, Py_ssize_t num_found);
1215 
1216 /* KeywordStringCheck.proto */
1217 static int __Pyx_CheckKeywordStrings(PyObject *kwdict, const char* function_name, int kw_allowed);
1218 
1219 /* PyObjectCall.proto */
1220 #if CYTHON_COMPILING_IN_CPYTHON
1221 static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw);
1222 #else
1223 #define __Pyx_PyObject_Call(func, arg, kw) PyObject_Call(func, arg, kw)
1224 #endif
1225 
1226 /* PyFunctionFastCall.proto */
1227 #if CYTHON_FAST_PYCALL
1228 #define __Pyx_PyFunction_FastCall(func, args, nargs)\
1229     __Pyx_PyFunction_FastCallDict((func), (args), (nargs), NULL)
1230 #if 1 || PY_VERSION_HEX < 0x030600B1
1231 static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args, Py_ssize_t nargs, PyObject *kwargs);
1232 #else
1233 #define __Pyx_PyFunction_FastCallDict(func, args, nargs, kwargs) _PyFunction_FastCallDict(func, args, nargs, kwargs)
1234 #endif
1235 #define __Pyx_BUILD_ASSERT_EXPR(cond)\
1236     (sizeof(char [1 - 2*!(cond)]) - 1)
1237 #ifndef Py_MEMBER_SIZE
1238 #define Py_MEMBER_SIZE(type, member) sizeof(((type *)0)->member)
1239 #endif
1240   static size_t __pyx_pyframe_localsplus_offset = 0;
1241   #include "frameobject.h"
1242   #define __Pxy_PyFrame_Initialize_Offsets()\
1243     ((void)__Pyx_BUILD_ASSERT_EXPR(sizeof(PyFrameObject) == offsetof(PyFrameObject, f_localsplus) + Py_MEMBER_SIZE(PyFrameObject, f_localsplus)),\
1244      (void)(__pyx_pyframe_localsplus_offset = ((size_t)PyFrame_Type.tp_basicsize) - Py_MEMBER_SIZE(PyFrameObject, f_localsplus)))
1245   #define __Pyx_PyFrame_GetLocalsplus(frame)\
1246     (assert(__pyx_pyframe_localsplus_offset), (PyObject **)(((char *)(frame)) + __pyx_pyframe_localsplus_offset))
1247 #endif
1248 
1249 /* PyObjectCallMethO.proto */
1250 #if CYTHON_COMPILING_IN_CPYTHON
1251 static CYTHON_INLINE PyObject* __Pyx_PyObject_CallMethO(PyObject *func, PyObject *arg);
1252 #endif
1253 
1254 /* PyObjectCallNoArg.proto */
1255 #if CYTHON_COMPILING_IN_CPYTHON
1256 static CYTHON_INLINE PyObject* __Pyx_PyObject_CallNoArg(PyObject *func);
1257 #else
1258 #define __Pyx_PyObject_CallNoArg(func) __Pyx_PyObject_Call(func, __pyx_empty_tuple, NULL)
1259 #endif
1260 
1261 /* PyCFunctionFastCall.proto */
1262 #if CYTHON_FAST_PYCCALL
1263 static CYTHON_INLINE PyObject *__Pyx_PyCFunction_FastCall(PyObject *func, PyObject **args, Py_ssize_t nargs);
1264 #else
1265 #define __Pyx_PyCFunction_FastCall(func, args, nargs)  (assert(0), NULL)
1266 #endif
1267 
1268 /* PyObjectCallOneArg.proto */
1269 static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg);
1270 
1271 /* PyErrExceptionMatches.proto */
1272 #if CYTHON_FAST_THREAD_STATE
1273 #define __Pyx_PyErr_ExceptionMatches(err) __Pyx_PyErr_ExceptionMatchesInState(__pyx_tstate, err)
1274 static CYTHON_INLINE int __Pyx_PyErr_ExceptionMatchesInState(PyThreadState* tstate, PyObject* err);
1275 #else
1276 #define __Pyx_PyErr_ExceptionMatches(err)  PyErr_ExceptionMatches(err)
1277 #endif
1278 
1279 /* PyThreadStateGet.proto */
1280 #if CYTHON_FAST_THREAD_STATE
1281 #define __Pyx_PyThreadState_declare  PyThreadState *__pyx_tstate;
1282 #define __Pyx_PyThreadState_assign  __pyx_tstate = __Pyx_PyThreadState_Current;
1283 #define __Pyx_PyErr_Occurred()  __pyx_tstate->curexc_type
1284 #else
1285 #define __Pyx_PyThreadState_declare
1286 #define __Pyx_PyThreadState_assign
1287 #define __Pyx_PyErr_Occurred()  PyErr_Occurred()
1288 #endif
1289 
1290 /* PyErrFetchRestore.proto */
1291 #if CYTHON_FAST_THREAD_STATE
1292 #define __Pyx_PyErr_Clear() __Pyx_ErrRestore(NULL, NULL, NULL)
1293 #define __Pyx_ErrRestoreWithState(type, value, tb)  __Pyx_ErrRestoreInState(PyThreadState_GET(), type, value, tb)
1294 #define __Pyx_ErrFetchWithState(type, value, tb)    __Pyx_ErrFetchInState(PyThreadState_GET(), type, value, tb)
1295 #define __Pyx_ErrRestore(type, value, tb)  __Pyx_ErrRestoreInState(__pyx_tstate, type, value, tb)
1296 #define __Pyx_ErrFetch(type, value, tb)    __Pyx_ErrFetchInState(__pyx_tstate, type, value, tb)
1297 static CYTHON_INLINE void __Pyx_ErrRestoreInState(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb);
1298 static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb);
1299 #if CYTHON_COMPILING_IN_CPYTHON
1300 #define __Pyx_PyErr_SetNone(exc) (Py_INCREF(exc), __Pyx_ErrRestore((exc), NULL, NULL))
1301 #else
1302 #define __Pyx_PyErr_SetNone(exc) PyErr_SetNone(exc)
1303 #endif
1304 #else
1305 #define __Pyx_PyErr_Clear() PyErr_Clear()
1306 #define __Pyx_PyErr_SetNone(exc) PyErr_SetNone(exc)
1307 #define __Pyx_ErrRestoreWithState(type, value, tb)  PyErr_Restore(type, value, tb)
1308 #define __Pyx_ErrFetchWithState(type, value, tb)  PyErr_Fetch(type, value, tb)
1309 #define __Pyx_ErrRestoreInState(tstate, type, value, tb)  PyErr_Restore(type, value, tb)
1310 #define __Pyx_ErrFetchInState(tstate, type, value, tb)  PyErr_Fetch(type, value, tb)
1311 #define __Pyx_ErrRestore(type, value, tb)  PyErr_Restore(type, value, tb)
1312 #define __Pyx_ErrFetch(type, value, tb)  PyErr_Fetch(type, value, tb)
1313 #endif
1314 
1315 /* GetAttr.proto */
1316 static CYTHON_INLINE PyObject *__Pyx_GetAttr(PyObject *, PyObject *);
1317 
1318 /* GetAttr3.proto */
1319 static CYTHON_INLINE PyObject *__Pyx_GetAttr3(PyObject *, PyObject *, PyObject *);
1320 
1321 /* GetItemInt.proto */
1322 #define __Pyx_GetItemInt(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck)\
1323     (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\
1324     __Pyx_GetItemInt_Fast(o, (Py_ssize_t)i, is_list, wraparound, boundscheck) :\
1325     (is_list ? (PyErr_SetString(PyExc_IndexError, "list index out of range"), (PyObject*)NULL) :\
1326                __Pyx_GetItemInt_Generic(o, to_py_func(i))))
1327 #define __Pyx_GetItemInt_List(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck)\
1328     (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\
1329     __Pyx_GetItemInt_List_Fast(o, (Py_ssize_t)i, wraparound, boundscheck) :\
1330     (PyErr_SetString(PyExc_IndexError, "list index out of range"), (PyObject*)NULL))
1331 static CYTHON_INLINE PyObject *__Pyx_GetItemInt_List_Fast(PyObject *o, Py_ssize_t i,
1332                                                               int wraparound, int boundscheck);
1333 #define __Pyx_GetItemInt_Tuple(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck)\
1334     (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\
1335     __Pyx_GetItemInt_Tuple_Fast(o, (Py_ssize_t)i, wraparound, boundscheck) :\
1336     (PyErr_SetString(PyExc_IndexError, "tuple index out of range"), (PyObject*)NULL))
1337 static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Tuple_Fast(PyObject *o, Py_ssize_t i,
1338                                                               int wraparound, int boundscheck);
1339 static PyObject *__Pyx_GetItemInt_Generic(PyObject *o, PyObject* j);
1340 static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Fast(PyObject *o, Py_ssize_t i,
1341                                                      int is_list, int wraparound, int boundscheck);
1342 
1343 /* Import.proto */
1344 static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, int level);
1345 
1346 /* PyObjectCall2Args.proto */
1347 static CYTHON_UNUSED PyObject* __Pyx_PyObject_Call2Args(PyObject* function, PyObject* arg1, PyObject* arg2);
1348 
1349 /* ListAppend.proto */
1350 #if CYTHON_USE_PYLIST_INTERNALS && CYTHON_ASSUME_SAFE_MACROS
__Pyx_PyList_Append(PyObject * list,PyObject * x)1351 static CYTHON_INLINE int __Pyx_PyList_Append(PyObject* list, PyObject* x) {
1352     PyListObject* L = (PyListObject*) list;
1353     Py_ssize_t len = Py_SIZE(list);
1354     if (likely(L->allocated > len) & likely(len > (L->allocated >> 1))) {
1355         Py_INCREF(x);
1356         PyList_SET_ITEM(list, len, x);
1357         __Pyx_SET_SIZE(list, len + 1);
1358         return 0;
1359     }
1360     return PyList_Append(list, x);
1361 }
1362 #else
1363 #define __Pyx_PyList_Append(L,x) PyList_Append(L,x)
1364 #endif
1365 
1366 /* PyObjectFormatAndDecref.proto */
1367 static CYTHON_INLINE PyObject* __Pyx_PyObject_FormatSimpleAndDecref(PyObject* s, PyObject* f);
1368 static CYTHON_INLINE PyObject* __Pyx_PyObject_FormatAndDecref(PyObject* s, PyObject* f);
1369 
1370 /* IncludeStringH.proto */
1371 #include <string.h>
1372 
1373 /* JoinPyUnicode.proto */
1374 static PyObject* __Pyx_PyUnicode_Join(PyObject* value_tuple, Py_ssize_t value_count, Py_ssize_t result_ulength,
1375                                       Py_UCS4 max_char);
1376 
1377 /* PySequenceContains.proto */
__Pyx_PySequence_ContainsTF(PyObject * item,PyObject * seq,int eq)1378 static CYTHON_INLINE int __Pyx_PySequence_ContainsTF(PyObject* item, PyObject* seq, int eq) {
1379     int result = PySequence_Contains(seq, item);
1380     return unlikely(result < 0) ? result : (result == (eq == Py_EQ));
1381 }
1382 
1383 /* GetTopmostException.proto */
1384 #if CYTHON_USE_EXC_INFO_STACK
1385 static _PyErr_StackItem * __Pyx_PyErr_GetTopmostException(PyThreadState *tstate);
1386 #endif
1387 
1388 /* SaveResetException.proto */
1389 #if CYTHON_FAST_THREAD_STATE
1390 #define __Pyx_ExceptionSave(type, value, tb)  __Pyx__ExceptionSave(__pyx_tstate, type, value, tb)
1391 static CYTHON_INLINE void __Pyx__ExceptionSave(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb);
1392 #define __Pyx_ExceptionReset(type, value, tb)  __Pyx__ExceptionReset(__pyx_tstate, type, value, tb)
1393 static CYTHON_INLINE void __Pyx__ExceptionReset(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb);
1394 #else
1395 #define __Pyx_ExceptionSave(type, value, tb)   PyErr_GetExcInfo(type, value, tb)
1396 #define __Pyx_ExceptionReset(type, value, tb)  PyErr_SetExcInfo(type, value, tb)
1397 #endif
1398 
1399 /* GetException.proto */
1400 #if CYTHON_FAST_THREAD_STATE
1401 #define __Pyx_GetException(type, value, tb)  __Pyx__GetException(__pyx_tstate, type, value, tb)
1402 static int __Pyx__GetException(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb);
1403 #else
1404 static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb);
1405 #endif
1406 
1407 /* PyIntCompare.proto */
1408 static CYTHON_INLINE PyObject* __Pyx_PyInt_EqObjC(PyObject *op1, PyObject *op2, long intval, long inplace);
1409 
1410 /* HasAttr.proto */
1411 static CYTHON_INLINE int __Pyx_HasAttr(PyObject *, PyObject *);
1412 
1413 /* PyDictVersioning.proto */
1414 #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_TYPE_SLOTS
1415 #define __PYX_DICT_VERSION_INIT  ((PY_UINT64_T) -1)
1416 #define __PYX_GET_DICT_VERSION(dict)  (((PyDictObject*)(dict))->ma_version_tag)
1417 #define __PYX_UPDATE_DICT_CACHE(dict, value, cache_var, version_var)\
1418     (version_var) = __PYX_GET_DICT_VERSION(dict);\
1419     (cache_var) = (value);
1420 #define __PYX_PY_DICT_LOOKUP_IF_MODIFIED(VAR, DICT, LOOKUP) {\
1421     static PY_UINT64_T __pyx_dict_version = 0;\
1422     static PyObject *__pyx_dict_cached_value = NULL;\
1423     if (likely(__PYX_GET_DICT_VERSION(DICT) == __pyx_dict_version)) {\
1424         (VAR) = __pyx_dict_cached_value;\
1425     } else {\
1426         (VAR) = __pyx_dict_cached_value = (LOOKUP);\
1427         __pyx_dict_version = __PYX_GET_DICT_VERSION(DICT);\
1428     }\
1429 }
1430 static CYTHON_INLINE PY_UINT64_T __Pyx_get_tp_dict_version(PyObject *obj);
1431 static CYTHON_INLINE PY_UINT64_T __Pyx_get_object_dict_version(PyObject *obj);
1432 static CYTHON_INLINE int __Pyx_object_dict_version_matches(PyObject* obj, PY_UINT64_T tp_dict_version, PY_UINT64_T obj_dict_version);
1433 #else
1434 #define __PYX_GET_DICT_VERSION(dict)  (0)
1435 #define __PYX_UPDATE_DICT_CACHE(dict, value, cache_var, version_var)
1436 #define __PYX_PY_DICT_LOOKUP_IF_MODIFIED(VAR, DICT, LOOKUP)  (VAR) = (LOOKUP);
1437 #endif
1438 
1439 /* GetModuleGlobalName.proto */
1440 #if CYTHON_USE_DICT_VERSIONS
1441 #define __Pyx_GetModuleGlobalName(var, name)  {\
1442     static PY_UINT64_T __pyx_dict_version = 0;\
1443     static PyObject *__pyx_dict_cached_value = NULL;\
1444     (var) = (likely(__pyx_dict_version == __PYX_GET_DICT_VERSION(__pyx_d))) ?\
1445         (likely(__pyx_dict_cached_value) ? __Pyx_NewRef(__pyx_dict_cached_value) : __Pyx_GetBuiltinName(name)) :\
1446         __Pyx__GetModuleGlobalName(name, &__pyx_dict_version, &__pyx_dict_cached_value);\
1447 }
1448 #define __Pyx_GetModuleGlobalNameUncached(var, name)  {\
1449     PY_UINT64_T __pyx_dict_version;\
1450     PyObject *__pyx_dict_cached_value;\
1451     (var) = __Pyx__GetModuleGlobalName(name, &__pyx_dict_version, &__pyx_dict_cached_value);\
1452 }
1453 static PyObject *__Pyx__GetModuleGlobalName(PyObject *name, PY_UINT64_T *dict_version, PyObject **dict_cached_value);
1454 #else
1455 #define __Pyx_GetModuleGlobalName(var, name)  (var) = __Pyx__GetModuleGlobalName(name)
1456 #define __Pyx_GetModuleGlobalNameUncached(var, name)  (var) = __Pyx__GetModuleGlobalName(name)
1457 static CYTHON_INLINE PyObject *__Pyx__GetModuleGlobalName(PyObject *name);
1458 #endif
1459 
1460 /* RaiseTooManyValuesToUnpack.proto */
1461 static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError(Py_ssize_t expected);
1462 
1463 /* RaiseNeedMoreValuesToUnpack.proto */
1464 static CYTHON_INLINE void __Pyx_RaiseNeedMoreValuesError(Py_ssize_t index);
1465 
1466 /* IterFinish.proto */
1467 static CYTHON_INLINE int __Pyx_IterFinish(void);
1468 
1469 /* UnpackItemEndCheck.proto */
1470 static int __Pyx_IternextUnpackEndCheck(PyObject *retval, Py_ssize_t expected);
1471 
1472 /* ObjectGetItem.proto */
1473 #if CYTHON_USE_TYPE_SLOTS
1474 static CYTHON_INLINE PyObject *__Pyx_PyObject_GetItem(PyObject *obj, PyObject* key);
1475 #else
1476 #define __Pyx_PyObject_GetItem(obj, key)  PyObject_GetItem(obj, key)
1477 #endif
1478 
1479 /* RaiseException.proto */
1480 static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause);
1481 
1482 /* DictGetItem.proto */
1483 #if PY_MAJOR_VERSION >= 3 && !CYTHON_COMPILING_IN_PYPY
1484 static PyObject *__Pyx_PyDict_GetItem(PyObject *d, PyObject* key);
1485 #define __Pyx_PyObject_Dict_GetItem(obj, name)\
1486     (likely(PyDict_CheckExact(obj)) ?\
1487      __Pyx_PyDict_GetItem(obj, name) : PyObject_GetItem(obj, name))
1488 #else
1489 #define __Pyx_PyDict_GetItem(d, key) PyObject_GetItem(d, key)
1490 #define __Pyx_PyObject_Dict_GetItem(obj, name)  PyObject_GetItem(obj, name)
1491 #endif
1492 
1493 /* FastTypeChecks.proto */
1494 #if CYTHON_COMPILING_IN_CPYTHON
1495 #define __Pyx_TypeCheck(obj, type) __Pyx_IsSubtype(Py_TYPE(obj), (PyTypeObject *)type)
1496 static CYTHON_INLINE int __Pyx_IsSubtype(PyTypeObject *a, PyTypeObject *b);
1497 static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches(PyObject *err, PyObject *type);
1498 static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches2(PyObject *err, PyObject *type1, PyObject *type2);
1499 #else
1500 #define __Pyx_TypeCheck(obj, type) PyObject_TypeCheck(obj, (PyTypeObject *)type)
1501 #define __Pyx_PyErr_GivenExceptionMatches(err, type) PyErr_GivenExceptionMatches(err, type)
1502 #define __Pyx_PyErr_GivenExceptionMatches2(err, type1, type2) (PyErr_GivenExceptionMatches(err, type1) || PyErr_GivenExceptionMatches(err, type2))
1503 #endif
1504 #define __Pyx_PyException_Check(obj) __Pyx_TypeCheck(obj, PyExc_Exception)
1505 
1506 /* SwapException.proto */
1507 #if CYTHON_FAST_THREAD_STATE
1508 #define __Pyx_ExceptionSwap(type, value, tb)  __Pyx__ExceptionSwap(__pyx_tstate, type, value, tb)
1509 static CYTHON_INLINE void __Pyx__ExceptionSwap(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb);
1510 #else
1511 static CYTHON_INLINE void __Pyx_ExceptionSwap(PyObject **type, PyObject **value, PyObject **tb);
1512 #endif
1513 
1514 /* PyObjectGetMethod.proto */
1515 static int __Pyx_PyObject_GetMethod(PyObject *obj, PyObject *name, PyObject **method);
1516 
1517 /* PyObjectCallMethod0.proto */
1518 static PyObject* __Pyx_PyObject_CallMethod0(PyObject* obj, PyObject* method_name);
1519 
1520 /* pop.proto */
1521 static CYTHON_INLINE PyObject* __Pyx__PyObject_Pop(PyObject* L);
1522 #if CYTHON_USE_PYLIST_INTERNALS && CYTHON_ASSUME_SAFE_MACROS
1523 static CYTHON_INLINE PyObject* __Pyx_PyList_Pop(PyObject* L);
1524 #define __Pyx_PyObject_Pop(L) (likely(PyList_CheckExact(L)) ?\
1525     __Pyx_PyList_Pop(L) : __Pyx__PyObject_Pop(L))
1526 #else
1527 #define __Pyx_PyList_Pop(L)  __Pyx__PyObject_Pop(L)
1528 #define __Pyx_PyObject_Pop(L)  __Pyx__PyObject_Pop(L)
1529 #endif
1530 
1531 /* UnpackUnboundCMethod.proto */
1532 typedef struct {
1533     PyObject *type;
1534     PyObject **method_name;
1535     PyCFunction func;
1536     PyObject *method;
1537     int flag;
1538 } __Pyx_CachedCFunction;
1539 
1540 /* CallUnboundCMethod0.proto */
1541 static PyObject* __Pyx__CallUnboundCMethod0(__Pyx_CachedCFunction* cfunc, PyObject* self);
1542 #if CYTHON_COMPILING_IN_CPYTHON
1543 #define __Pyx_CallUnboundCMethod0(cfunc, self)\
1544     (likely((cfunc)->func) ?\
1545         (likely((cfunc)->flag == METH_NOARGS) ?  (*((cfunc)->func))(self, NULL) :\
1546          (PY_VERSION_HEX >= 0x030600B1 && likely((cfunc)->flag == METH_FASTCALL) ?\
1547             (PY_VERSION_HEX >= 0x030700A0 ?\
1548                 (*(__Pyx_PyCFunctionFast)(void*)(PyCFunction)(cfunc)->func)(self, &__pyx_empty_tuple, 0) :\
1549                 (*(__Pyx_PyCFunctionFastWithKeywords)(void*)(PyCFunction)(cfunc)->func)(self, &__pyx_empty_tuple, 0, NULL)) :\
1550           (PY_VERSION_HEX >= 0x030700A0 && (cfunc)->flag == (METH_FASTCALL | METH_KEYWORDS) ?\
1551             (*(__Pyx_PyCFunctionFastWithKeywords)(void*)(PyCFunction)(cfunc)->func)(self, &__pyx_empty_tuple, 0, NULL) :\
1552             (likely((cfunc)->flag == (METH_VARARGS | METH_KEYWORDS)) ?  ((*(PyCFunctionWithKeywords)(void*)(PyCFunction)(cfunc)->func)(self, __pyx_empty_tuple, NULL)) :\
1553                ((cfunc)->flag == METH_VARARGS ?  (*((cfunc)->func))(self, __pyx_empty_tuple) :\
1554                __Pyx__CallUnboundCMethod0(cfunc, self)))))) :\
1555         __Pyx__CallUnboundCMethod0(cfunc, self))
1556 #else
1557 #define __Pyx_CallUnboundCMethod0(cfunc, self)  __Pyx__CallUnboundCMethod0(cfunc, self)
1558 #endif
1559 
1560 /* RaiseDoubleKeywords.proto */
1561 static void __Pyx_RaiseDoubleKeywordsError(const char* func_name, PyObject* kw_name);
1562 
1563 /* ParseKeywords.proto */
1564 static int __Pyx_ParseOptionalKeywords(PyObject *kwds, PyObject **argnames[],\
1565     PyObject *kwds2, PyObject *values[], Py_ssize_t num_pos_args,\
1566     const char* function_name);
1567 
1568 /* ListCompAppend.proto */
1569 #if CYTHON_USE_PYLIST_INTERNALS && CYTHON_ASSUME_SAFE_MACROS
__Pyx_ListComp_Append(PyObject * list,PyObject * x)1570 static CYTHON_INLINE int __Pyx_ListComp_Append(PyObject* list, PyObject* x) {
1571     PyListObject* L = (PyListObject*) list;
1572     Py_ssize_t len = Py_SIZE(list);
1573     if (likely(L->allocated > len)) {
1574         Py_INCREF(x);
1575         PyList_SET_ITEM(list, len, x);
1576         __Pyx_SET_SIZE(list, len + 1);
1577         return 0;
1578     }
1579     return PyList_Append(list, x);
1580 }
1581 #else
1582 #define __Pyx_ListComp_Append(L,x) PyList_Append(L,x)
1583 #endif
1584 
1585 /* RaiseNoneIterError.proto */
1586 static CYTHON_INLINE void __Pyx_RaiseNoneNotIterableError(void);
1587 
1588 /* UnpackTupleError.proto */
1589 static void __Pyx_UnpackTupleError(PyObject *, Py_ssize_t index);
1590 
1591 /* UnpackTuple2.proto */
1592 #define __Pyx_unpack_tuple2(tuple, value1, value2, is_tuple, has_known_size, decref_tuple)\
1593     (likely(is_tuple || PyTuple_Check(tuple)) ?\
1594         (likely(has_known_size || PyTuple_GET_SIZE(tuple) == 2) ?\
1595             __Pyx_unpack_tuple2_exact(tuple, value1, value2, decref_tuple) :\
1596             (__Pyx_UnpackTupleError(tuple, 2), -1)) :\
1597         __Pyx_unpack_tuple2_generic(tuple, value1, value2, has_known_size, decref_tuple))
1598 static CYTHON_INLINE int __Pyx_unpack_tuple2_exact(
1599     PyObject* tuple, PyObject** value1, PyObject** value2, int decref_tuple);
1600 static int __Pyx_unpack_tuple2_generic(
1601     PyObject* tuple, PyObject** value1, PyObject** value2, int has_known_size, int decref_tuple);
1602 
1603 /* dict_iter.proto */
1604 static CYTHON_INLINE PyObject* __Pyx_dict_iterator(PyObject* dict, int is_dict, PyObject* method_name,
1605                                                    Py_ssize_t* p_orig_length, int* p_is_dict);
1606 static CYTHON_INLINE int __Pyx_dict_iter_next(PyObject* dict_or_iter, Py_ssize_t orig_length, Py_ssize_t* ppos,
1607                                               PyObject** pkey, PyObject** pvalue, PyObject** pitem, int is_dict);
1608 
1609 /* ListExtend.proto */
__Pyx_PyList_Extend(PyObject * L,PyObject * v)1610 static CYTHON_INLINE int __Pyx_PyList_Extend(PyObject* L, PyObject* v) {
1611 #if CYTHON_COMPILING_IN_CPYTHON
1612     PyObject* none = _PyList_Extend((PyListObject*)L, v);
1613     if (unlikely(!none))
1614         return -1;
1615     Py_DECREF(none);
1616     return 0;
1617 #else
1618     return PyList_SetSlice(L, PY_SSIZE_T_MAX, PY_SSIZE_T_MAX, v);
1619 #endif
1620 }
1621 
1622 /* ImportFrom.proto */
1623 static PyObject* __Pyx_ImportFrom(PyObject* module, PyObject* name);
1624 
1625 /* BytesEquals.proto */
1626 static CYTHON_INLINE int __Pyx_PyBytes_Equals(PyObject* s1, PyObject* s2, int equals);
1627 
1628 /* UnicodeEquals.proto */
1629 static CYTHON_INLINE int __Pyx_PyUnicode_Equals(PyObject* s1, PyObject* s2, int equals);
1630 
1631 /* PyObjectSetAttrStr.proto */
1632 #if CYTHON_USE_TYPE_SLOTS
1633 #define __Pyx_PyObject_DelAttrStr(o,n) __Pyx_PyObject_SetAttrStr(o, n, NULL)
1634 static CYTHON_INLINE int __Pyx_PyObject_SetAttrStr(PyObject* obj, PyObject* attr_name, PyObject* value);
1635 #else
1636 #define __Pyx_PyObject_DelAttrStr(o,n)   PyObject_DelAttr(o,n)
1637 #define __Pyx_PyObject_SetAttrStr(o,n,v) PyObject_SetAttr(o,n,v)
1638 #endif
1639 
1640 /* SliceObject.proto */
1641 static CYTHON_INLINE PyObject* __Pyx_PyObject_GetSlice(
1642         PyObject* obj, Py_ssize_t cstart, Py_ssize_t cstop,
1643         PyObject** py_start, PyObject** py_stop, PyObject** py_slice,
1644         int has_cstart, int has_cstop, int wraparound);
1645 
1646 /* PyObject_GenericGetAttrNoDict.proto */
1647 #if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000
1648 static CYTHON_INLINE PyObject* __Pyx_PyObject_GenericGetAttrNoDict(PyObject* obj, PyObject* attr_name);
1649 #else
1650 #define __Pyx_PyObject_GenericGetAttrNoDict PyObject_GenericGetAttr
1651 #endif
1652 
1653 /* PyObject_GenericGetAttr.proto */
1654 #if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000
1655 static PyObject* __Pyx_PyObject_GenericGetAttr(PyObject* obj, PyObject* attr_name);
1656 #else
1657 #define __Pyx_PyObject_GenericGetAttr PyObject_GenericGetAttr
1658 #endif
1659 
1660 /* SetVTable.proto */
1661 static int __Pyx_SetVtable(PyObject *dict, void *vtable);
1662 
1663 /* PatchModuleWithCoroutine.proto */
1664 static PyObject* __Pyx_Coroutine_patch_module(PyObject* module, const char* py_code);
1665 
1666 /* PatchInspect.proto */
1667 static PyObject* __Pyx_patch_inspect(PyObject* module);
1668 
1669 /* FetchCommonType.proto */
1670 static PyTypeObject* __Pyx_FetchCommonType(PyTypeObject* type);
1671 
1672 /* CythonFunctionShared.proto */
1673 #define __Pyx_CyFunction_USED 1
1674 #define __Pyx_CYFUNCTION_STATICMETHOD  0x01
1675 #define __Pyx_CYFUNCTION_CLASSMETHOD   0x02
1676 #define __Pyx_CYFUNCTION_CCLASS        0x04
1677 #define __Pyx_CyFunction_GetClosure(f)\
1678     (((__pyx_CyFunctionObject *) (f))->func_closure)
1679 #define __Pyx_CyFunction_GetClassObj(f)\
1680     (((__pyx_CyFunctionObject *) (f))->func_classobj)
1681 #define __Pyx_CyFunction_Defaults(type, f)\
1682     ((type *)(((__pyx_CyFunctionObject *) (f))->defaults))
1683 #define __Pyx_CyFunction_SetDefaultsGetter(f, g)\
1684     ((__pyx_CyFunctionObject *) (f))->defaults_getter = (g)
1685 typedef struct {
1686     PyCFunctionObject func;
1687 #if PY_VERSION_HEX < 0x030500A0
1688     PyObject *func_weakreflist;
1689 #endif
1690     PyObject *func_dict;
1691     PyObject *func_name;
1692     PyObject *func_qualname;
1693     PyObject *func_doc;
1694     PyObject *func_globals;
1695     PyObject *func_code;
1696     PyObject *func_closure;
1697     PyObject *func_classobj;
1698     void *defaults;
1699     int defaults_pyobjects;
1700     size_t defaults_size;  // used by FusedFunction for copying defaults
1701     int flags;
1702     PyObject *defaults_tuple;
1703     PyObject *defaults_kwdict;
1704     PyObject *(*defaults_getter)(PyObject *);
1705     PyObject *func_annotations;
1706 } __pyx_CyFunctionObject;
1707 static PyTypeObject *__pyx_CyFunctionType = 0;
1708 #define __Pyx_CyFunction_Check(obj)  (__Pyx_TypeCheck(obj, __pyx_CyFunctionType))
1709 static PyObject *__Pyx_CyFunction_Init(__pyx_CyFunctionObject* op, PyMethodDef *ml,
1710                                       int flags, PyObject* qualname,
1711                                       PyObject *self,
1712                                       PyObject *module, PyObject *globals,
1713                                       PyObject* code);
1714 static CYTHON_INLINE void *__Pyx_CyFunction_InitDefaults(PyObject *m,
1715                                                          size_t size,
1716                                                          int pyobjects);
1717 static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsTuple(PyObject *m,
1718                                                             PyObject *tuple);
1719 static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsKwDict(PyObject *m,
1720                                                              PyObject *dict);
1721 static CYTHON_INLINE void __Pyx_CyFunction_SetAnnotationsDict(PyObject *m,
1722                                                               PyObject *dict);
1723 static int __pyx_CyFunction_init(void);
1724 
1725 /* CythonFunction.proto */
1726 static PyObject *__Pyx_CyFunction_New(PyMethodDef *ml,
1727                                       int flags, PyObject* qualname,
1728                                       PyObject *closure,
1729                                       PyObject *module, PyObject *globals,
1730                                       PyObject* code);
1731 
1732 /* CalculateMetaclass.proto */
1733 static PyObject *__Pyx_CalculateMetaclass(PyTypeObject *metaclass, PyObject *bases);
1734 
1735 /* SetNameInClass.proto */
1736 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030500A1
1737 #define __Pyx_SetNameInClass(ns, name, value)\
1738     (likely(PyDict_CheckExact(ns)) ? _PyDict_SetItem_KnownHash(ns, name, value, ((PyASCIIObject *) name)->hash) : PyObject_SetItem(ns, name, value))
1739 #elif CYTHON_COMPILING_IN_CPYTHON
1740 #define __Pyx_SetNameInClass(ns, name, value)\
1741     (likely(PyDict_CheckExact(ns)) ? PyDict_SetItem(ns, name, value) : PyObject_SetItem(ns, name, value))
1742 #else
1743 #define __Pyx_SetNameInClass(ns, name, value)  PyObject_SetItem(ns, name, value)
1744 #endif
1745 
1746 /* Py3ClassCreate.proto */
1747 static PyObject *__Pyx_Py3MetaclassPrepare(PyObject *metaclass, PyObject *bases, PyObject *name, PyObject *qualname,
1748                                            PyObject *mkw, PyObject *modname, PyObject *doc);
1749 static PyObject *__Pyx_Py3ClassCreate(PyObject *metaclass, PyObject *name, PyObject *bases, PyObject *dict,
1750                                       PyObject *mkw, int calculate_metaclass, int allow_py2_metaclass);
1751 
1752 /* CLineInTraceback.proto */
1753 #ifdef CYTHON_CLINE_IN_TRACEBACK
1754 #define __Pyx_CLineForTraceback(tstate, c_line)  (((CYTHON_CLINE_IN_TRACEBACK)) ? c_line : 0)
1755 #else
1756 static int __Pyx_CLineForTraceback(PyThreadState *tstate, int c_line);
1757 #endif
1758 
1759 /* CodeObjectCache.proto */
1760 typedef struct {
1761     PyCodeObject* code_object;
1762     int code_line;
1763 } __Pyx_CodeObjectCacheEntry;
1764 struct __Pyx_CodeObjectCache {
1765     int count;
1766     int max_count;
1767     __Pyx_CodeObjectCacheEntry* entries;
1768 };
1769 static struct __Pyx_CodeObjectCache __pyx_code_cache = {0,0,NULL};
1770 static int __pyx_bisect_code_objects(__Pyx_CodeObjectCacheEntry* entries, int count, int code_line);
1771 static PyCodeObject *__pyx_find_code_object(int code_line);
1772 static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object);
1773 
1774 /* AddTraceback.proto */
1775 static void __Pyx_AddTraceback(const char *funcname, int c_line,
1776                                int py_line, const char *filename);
1777 
1778 /* GCCDiagnostics.proto */
1779 #if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6))
1780 #define __Pyx_HAS_GCC_DIAGNOSTIC
1781 #endif
1782 
1783 /* CIntToPy.proto */
1784 static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value);
1785 
1786 /* CIntFromPy.proto */
1787 static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *);
1788 
1789 /* CIntToPy.proto */
1790 static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value);
1791 
1792 /* CIntFromPy.proto */
1793 static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *);
1794 
1795 /* CheckBinaryVersion.proto */
1796 static int __Pyx_check_binary_version(void);
1797 
1798 /* InitStrings.proto */
1799 static int __Pyx_InitStrings(__Pyx_StringTabEntry *t);
1800 
1801 static PyObject *__pyx_f_6Cython_8Compiler_7Visitor_11TreeVisitor__raise_compiler_error(struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor *__pyx_v_self, PyObject *__pyx_v_child, PyObject *__pyx_v_e); /* proto*/
1802 static PyObject *__pyx_f_6Cython_8Compiler_7Visitor_11TreeVisitor_find_handler(struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor *__pyx_v_self, PyObject *__pyx_v_obj); /* proto*/
1803 static PyObject *__pyx_f_6Cython_8Compiler_7Visitor_11TreeVisitor_visit(struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor *__pyx_v_self, PyObject *__pyx_v_obj, int __pyx_skip_dispatch); /* proto*/
1804 static PyObject *__pyx_f_6Cython_8Compiler_7Visitor_11TreeVisitor__visit(struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor *__pyx_v_self, PyObject *__pyx_v_obj); /* proto*/
1805 static PyObject *__pyx_f_6Cython_8Compiler_7Visitor_11TreeVisitor__visitchild(struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor *__pyx_v_self, PyObject *__pyx_v_child, PyObject *__pyx_v_parent, PyObject *__pyx_v_attrname, PyObject *__pyx_v_idx); /* proto*/
1806 static PyObject *__pyx_f_6Cython_8Compiler_7Visitor_11TreeVisitor_visitchildren(struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor *__pyx_v_self, PyObject *__pyx_v_parent, int __pyx_skip_dispatch, struct __pyx_opt_args_6Cython_8Compiler_7Visitor_11TreeVisitor_visitchildren *__pyx_optional_args); /* proto*/
1807 static PyObject *__pyx_f_6Cython_8Compiler_7Visitor_11TreeVisitor__visitchildren(struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor *__pyx_v_self, PyObject *__pyx_v_parent, PyObject *__pyx_v_attrs); /* proto*/
1808 PyObject *__pyx_f_6Cython_8Compiler_7Visitor_16VisitorTransform_visitchildren(struct __pyx_obj_6Cython_8Compiler_7Visitor_VisitorTransform *__pyx_v_self, PyObject *__pyx_v_parent, int __pyx_skip_dispatch, struct __pyx_opt_args_6Cython_8Compiler_7Visitor_16VisitorTransform_visitchildren *__pyx_optional_args); /* proto*/
1809 PyObject *__pyx_f_6Cython_8Compiler_7Visitor_16VisitorTransform_visitchildren__pyx_wrap_1(struct __pyx_obj_6Cython_8Compiler_7Visitor_VisitorTransform *__pyx_v_self, PyObject *__pyx_v_parent, int __pyx_skip_dispatch, struct __pyx_opt_args_6Cython_8Compiler_7Visitor_16VisitorTransform_visitchildren *__pyx_optional_args); /* proto*/
1810 static PyObject *__pyx_f_6Cython_8Compiler_7Visitor_16VisitorTransform__select_attrs(CYTHON_UNUSED struct __pyx_obj_6Cython_8Compiler_7Visitor_VisitorTransform *__pyx_v_self, PyObject *__pyx_v_attrs, PyObject *__pyx_v_exclude); /* proto*/
1811 static PyObject *__pyx_f_6Cython_8Compiler_7Visitor_16VisitorTransform__process_children(struct __pyx_obj_6Cython_8Compiler_7Visitor_VisitorTransform *__pyx_v_self, PyObject *__pyx_v_parent, struct __pyx_opt_args_6Cython_8Compiler_7Visitor_16VisitorTransform__process_children *__pyx_optional_args); /* proto*/
1812 static PyObject *__pyx_f_6Cython_8Compiler_7Visitor_16VisitorTransform__flatten_list(CYTHON_UNUSED struct __pyx_obj_6Cython_8Compiler_7Visitor_VisitorTransform *__pyx_v_self, PyObject *__pyx_v_orig_list); /* proto*/
1813 static PyObject *__pyx_f_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_visit_scope(struct __pyx_obj_6Cython_8Compiler_7Visitor_ScopeTrackingTransform *__pyx_v_self, PyObject *__pyx_v_node, PyObject *__pyx_v_scope_type); /* proto*/
1814 static PyObject *__pyx_f_6Cython_8Compiler_7Visitor_25MethodDispatcherTransform__visit_binop_node(struct __pyx_obj_6Cython_8Compiler_7Visitor_MethodDispatcherTransform *__pyx_v_self, PyObject *__pyx_v_node); /* proto*/
1815 static PyObject *__pyx_f_6Cython_8Compiler_7Visitor_25MethodDispatcherTransform__find_handler(struct __pyx_obj_6Cython_8Compiler_7Visitor_MethodDispatcherTransform *__pyx_v_self, PyObject *__pyx_v_match_name, int __pyx_v_has_kwargs); /* proto*/
1816 static PyObject *__pyx_f_6Cython_8Compiler_7Visitor_25MethodDispatcherTransform__delegate_to_assigned_value(struct __pyx_obj_6Cython_8Compiler_7Visitor_MethodDispatcherTransform *__pyx_v_self, PyObject *__pyx_v_node, PyObject *__pyx_v_function, PyObject *__pyx_v_arg_list, PyObject *__pyx_v_kwargs); /* proto*/
1817 static PyObject *__pyx_f_6Cython_8Compiler_7Visitor_25MethodDispatcherTransform__dispatch_to_handler(struct __pyx_obj_6Cython_8Compiler_7Visitor_MethodDispatcherTransform *__pyx_v_self, PyObject *__pyx_v_node, PyObject *__pyx_v_function, PyObject *__pyx_v_arg_list, PyObject *__pyx_v_kwargs); /* proto*/
1818 static PyObject *__pyx_f_6Cython_8Compiler_7Visitor_25MethodDispatcherTransform__dispatch_to_method_handler(struct __pyx_obj_6Cython_8Compiler_7Visitor_MethodDispatcherTransform *__pyx_v_self, PyObject *__pyx_v_attr_name, PyObject *__pyx_v_self_arg, PyObject *__pyx_v_is_unbound_method, PyObject *__pyx_v_type_name, PyObject *__pyx_v_node, PyObject *__pyx_v_function, PyObject *__pyx_v_arg_list, PyObject *__pyx_v_kwargs); /* proto*/
1819 
1820 /* Module declarations from 'cython' */
1821 
1822 /* Module declarations from 'Cython.Compiler.Visitor' */
1823 static PyTypeObject *__pyx_ptype_6Cython_8Compiler_7Visitor_TreeVisitor = 0;
1824 static PyTypeObject *__pyx_ptype_6Cython_8Compiler_7Visitor_VisitorTransform = 0;
1825 static PyTypeObject *__pyx_ptype_6Cython_8Compiler_7Visitor_CythonTransform = 0;
1826 static PyTypeObject *__pyx_ptype_6Cython_8Compiler_7Visitor_ScopeTrackingTransform = 0;
1827 static PyTypeObject *__pyx_ptype_6Cython_8Compiler_7Visitor_EnvTransform = 0;
1828 static PyTypeObject *__pyx_ptype_6Cython_8Compiler_7Visitor_MethodDispatcherTransform = 0;
1829 static PyTypeObject *__pyx_ptype_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer = 0;
1830 static PyTypeObject *__pyx_ptype_6Cython_8Compiler_7Visitor_NodeFinder = 0;
1831 static PyObject *__pyx_v_6Cython_8Compiler_7Visitor__PRINTABLE = 0;
1832 #define __Pyx_MODULE_NAME "Cython.Compiler.Visitor"
1833 extern int __pyx_module_is_main_Cython__Compiler__Visitor;
1834 int __pyx_module_is_main_Cython__Compiler__Visitor = 0;
1835 
1836 /* Implementation of 'Cython.Compiler.Visitor' */
1837 static PyObject *__pyx_builtin_object;
1838 static PyObject *__pyx_builtin_super;
1839 static PyObject *__pyx_builtin_AttributeError;
1840 static PyObject *__pyx_builtin_print;
1841 static PyObject *__pyx_builtin_RuntimeError;
1842 static PyObject *__pyx_builtin_KeyError;
1843 static PyObject *__pyx_builtin_enumerate;
1844 static const char __pyx_k_[] = ":";
1845 static const char __pyx_k_d[] = "[...]/%d";
1846 static const char __pyx_k_t[] = "t";
1847 static const char __pyx_k__2[] = "_";
1848 static const char __pyx_k__3[] = " = ";
1849 static const char __pyx_k__4[] = "(";
1850 static const char __pyx_k__5[] = ",\n    ";
1851 static const char __pyx_k__6[] = ")";
1852 static const char __pyx_k__7[] = "";
1853 static const char __pyx_k__8[] = ".";
1854 static const char __pyx_k__9[] = ": ";
1855 static const char __pyx_k_eq[] = "__eq__";
1856 static const char __pyx_k_ge[] = "__ge__";
1857 static const char __pyx_k_gt[] = "__gt__";
1858 static const char __pyx_k_in[] = ", in ";
1859 static const char __pyx_k_le[] = "__le__";
1860 static const char __pyx_k_lt[] = "__lt__";
1861 static const char __pyx_k_ne[] = "__ne__";
1862 static const char __pyx_k_or[] = "__or__";
1863 static const char __pyx_k_os[] = "os";
1864 static const char __pyx_k__10[] = "\n";
1865 static const char __pyx_k__13[] = "  ";
1866 static const char __pyx_k__15[] = "[";
1867 static const char __pyx_k__16[] = "]";
1868 static const char __pyx_k__17[] = "- ";
1869 static const char __pyx_k__18[] = "\")";
1870 static const char __pyx_k__19[] = "/";
1871 static const char __pyx_k__20[] = "\\";
1872 static const char __pyx_k__21[] = "))";
1873 static const char __pyx_k__79[] = "<";
1874 static const char __pyx_k__80[] = "<=";
1875 static const char __pyx_k__81[] = "==";
1876 static const char __pyx_k__82[] = "!=";
1877 static const char __pyx_k__83[] = ">=";
1878 static const char __pyx_k__84[] = ">";
1879 static const char __pyx_k__85[] = "+";
1880 static const char __pyx_k__86[] = "&";
1881 static const char __pyx_k__87[] = "//";
1882 static const char __pyx_k__88[] = "<<";
1883 static const char __pyx_k__89[] = "%";
1884 static const char __pyx_k__90[] = "*";
1885 static const char __pyx_k__91[] = "|";
1886 static const char __pyx_k__92[] = "**";
1887 static const char __pyx_k__93[] = ">>";
1888 static const char __pyx_k__94[] = "-";
1889 static const char __pyx_k__95[] = "^";
1890 static const char __pyx_k__96[] = "~";
1891 static const char __pyx_k_add[] = "__add__";
1892 static const char __pyx_k_and[] = "__and__";
1893 static const char __pyx_k_arg[] = "arg";
1894 static const char __pyx_k_d_2[] = "[%d]";
1895 static const char __pyx_k_d_3[] = "d";
1896 static const char __pyx_k_div[] = "__div__";
1897 static const char __pyx_k_doc[] = "__doc__";
1898 static const char __pyx_k_end[] = "end";
1899 static const char __pyx_k_get[] = "get";
1900 static const char __pyx_k_idx[] = "idx";
1901 static const char __pyx_k_inv[] = "__inv__";
1902 static const char __pyx_k_mod[] = "__mod__";
1903 static const char __pyx_k_mul[] = "__mul__";
1904 static const char __pyx_k_neg[] = "__neg__";
1905 static const char __pyx_k_new[] = "__new__";
1906 static const char __pyx_k_not[] = "not";
1907 static const char __pyx_k_obj[] = "obj";
1908 static const char __pyx_k_old[] = "old";
1909 static const char __pyx_k_pop[] = "pop";
1910 static const char __pyx_k_pos[] = "pos";
1911 static const char __pyx_k_pow[] = "__pow__";
1912 static const char __pyx_k_ptr[] = "ptr";
1913 static const char __pyx_k_rhs[] = "rhs";
1914 static const char __pyx_k_sub[] = "__sub__";
1915 static const char __pyx_k_sys[] = "sys";
1916 static const char __pyx_k_xor[] = "__xor__";
1917 static const char __pyx_k_File[] = "File '";
1918 static const char __pyx_k_Node[] = "Node";
1919 static const char __pyx_k_args[] = "args";
1920 static const char __pyx_k_attr[] = "attr";
1921 static const char __pyx_k_call[] = "__call__";
1922 static const char __pyx_k_code[] = "code";
1923 static const char __pyx_k_dict[] = "__dict__";
1924 static const char __pyx_k_expr[] = "expr";
1925 static const char __pyx_k_in_2[] = " in ";
1926 static const char __pyx_k_in_3[] = "in";
1927 static const char __pyx_k_init[] = "__init__";
1928 static const char __pyx_k_line[] = "', line ";
1929 static const char __pyx_k_main[] = "__main__";
1930 static const char __pyx_k_name[] = "__name__";
1931 static const char __pyx_k_node[] = "node";
1932 static const char __pyx_k_none[] = "(none)";
1933 static const char __pyx_k_path[] = "path";
1934 static const char __pyx_k_root[] = "root";
1935 static const char __pyx_k_self[] = "self";
1936 static const char __pyx_k_test[] = "__test__";
1937 static const char __pyx_k_tree[] = "tree";
1938 static const char __pyx_k_type[] = "type";
1939 static const char __pyx_k_Nodes[] = "Nodes";
1940 static const char __pyx_k_arg_2[] = "- arg: ";
1941 static const char __pyx_k_attrs[] = "attrs";
1942 static const char __pyx_k_class[] = "__class__";
1943 static const char __pyx_k_entry[] = "entry";
1944 static const char __pyx_k_frame[] = "frame";
1945 static const char __pyx_k_items[] = "items";
1946 static const char __pyx_k_nodes[] = "nodes";
1947 static const char __pyx_k_not_2[] = "__not__";
1948 static const char __pyx_k_phase[] = "phase";
1949 static const char __pyx_k_pos_2[] = "(pos=(";
1950 static const char __pyx_k_pos_3[] = "__pos__";
1951 static const char __pyx_k_print[] = "print";
1952 static const char __pyx_k_scope[] = "scope";
1953 static const char __pyx_k_split[] = "split";
1954 static const char __pyx_k_start[] = "start";
1955 static const char __pyx_k_super[] = "super";
1956 static const char __pyx_k_value[] = "value";
1957 static const char __pyx_k_visit[] = "visit";
1958 static const char __pyx_k_Errors[] = "Errors";
1959 static const char __pyx_k_Future[] = "Future";
1960 static const char __pyx_k_cclass[] = "cclass";
1961 static const char __pyx_k_f_code[] = "f_code";
1962 static const char __pyx_k_finder[] = "finder";
1963 static const char __pyx_k_getmro[] = "getmro";
1964 static const char __pyx_k_handle[] = "_handle_";
1965 static const char __pyx_k_import[] = "__import__";
1966 static const char __pyx_k_indent[] = "_indent";
1967 static const char __pyx_k_kwargs[] = "kwargs";
1968 static const char __pyx_k_line_2[] = "line";
1969 static const char __pyx_k_lshift[] = "__lshift__";
1970 static const char __pyx_k_method[] = "method_";
1971 static const char __pyx_k_module[] = "module";
1972 static const char __pyx_k_name_2[] = "name";
1973 static const char __pyx_k_name_3[] = ", name=\"";
1974 static const char __pyx_k_name_s[] = "(name=\"%s\")";
1975 static const char __pyx_k_object[] = "object";
1976 static const char __pyx_k_parent[] = "parent";
1977 static const char __pyx_k_result[] = "result";
1978 static const char __pyx_k_root_2[] = "(root)";
1979 static const char __pyx_k_rshift[] = "__rshift__";
1980 static const char __pyx_k_simple[] = "simple";
1981 static const char __pyx_k_slot_s[] = "slot%s";
1982 static const char __pyx_k_source[] = "source";
1983 static const char __pyx_k_struct[] = "struct";
1984 static const char __pyx_k_type_2[] = "(type=";
1985 static const char __pyx_k_type_s[] = "(type=%s)";
1986 static const char __pyx_k_values[] = "values";
1987 static const char __pyx_k_Builtin[] = "Builtin";
1988 static const char __pyx_k_DefNode[] = "DefNode";
1989 static const char __pyx_k_Visitor[] = "Visitor ";
1990 static const char __pyx_k_cascade[] = "cascade";
1991 static const char __pyx_k_co_name[] = "co_name";
1992 static const char __pyx_k_context[] = "context";
1993 static const char __pyx_k_default[] = "default";
1994 static const char __pyx_k_doctest[] = "doctest";
1995 static const char __pyx_k_exclude[] = "exclude";
1996 static const char __pyx_k_general[] = "general";
1997 static const char __pyx_k_ignored[] = "ignored";
1998 static const char __pyx_k_inspect[] = "inspect";
1999 static const char __pyx_k_is_name[] = "is_name";
2000 static const char __pyx_k_listidx[] = "listidx";
2001 static const char __pyx_k_operand[] = "operand";
2002 static const char __pyx_k_os_path[] = "os.path";
2003 static const char __pyx_k_prepare[] = "__prepare__";
2004 static const char __pyx_k_pyclass[] = "pyclass";
2005 static const char __pyx_k_replace[] = "replace";
2006 static const char __pyx_k_repr_of[] = "repr_of";
2007 static const char __pyx_k_tb_next[] = "tb_next";
2008 static const char __pyx_k_testmod[] = "testmod";
2009 static const char __pyx_k_truediv[] = "__truediv__";
2010 static const char __pyx_k_DictNode[] = "DictNode";
2011 static const char __pyx_k_ExprNode[] = "ExprNode";
2012 static const char __pyx_k_KeyError[] = "KeyError";
2013 static const char __pyx_k_NameNode[] = "NameNode";
2014 static const char __pyx_k_arg_list[] = "arg_list";
2015 static const char __pyx_k_attrname[] = "attrname";
2016 static const char __pyx_k_basename[] = "basename";
2017 static const char __pyx_k_cf_state[] = "cf_state";
2018 static const char __pyx_k_contains[] = "__contains__";
2019 static const char __pyx_k_division[] = "division";
2020 static const char __pyx_k_endswith[] = "endswith";
2021 static const char __pyx_k_exc_info[] = "exc_info";
2022 static const char __pyx_k_f_lineno[] = "f_lineno";
2023 static const char __pyx_k_f_locals[] = "f_locals";
2024 static const char __pyx_k_floordiv[] = "__floordiv__";
2025 static const char __pyx_k_function[] = "function";
2026 static const char __pyx_k_indent_2[] = "indent";
2027 static const char __pyx_k_module_2[] = "__module__";
2028 static const char __pyx_k_new_node[] = "new_node";
2029 static const char __pyx_k_obj_type[] = "obj_type";
2030 static const char __pyx_k_old_node[] = "old_node";
2031 static const char __pyx_k_operand1[] = "operand1";
2032 static const char __pyx_k_operand2[] = "operand2";
2033 static const char __pyx_k_operator[] = "operator";
2034 static const char __pyx_k_qualname[] = "__qualname__";
2035 static const char __pyx_k_subexprs[] = "subexprs";
2036 static const char __pyx_k_tb_frame[] = "tb_frame";
2037 static const char __pyx_k_unindent[] = "unindent";
2038 static const char __pyx_k_visit__s[] = "visit_%s";
2039 static const char __pyx_k_ExprNodes[] = "ExprNodes";
2040 static const char __pyx_k_PrintTree[] = "PrintTree";
2041 static const char __pyx_k_TupleNode[] = "TupleNode";
2042 static const char __pyx_k_TypeSlots[] = "TypeSlots";
2043 static const char __pyx_k_arg_tuple[] = "arg_tuple";
2044 static const char __pyx_k_attr_name[] = "attr_name";
2045 static const char __pyx_k_attribute[] = "attribute";
2046 static const char __pyx_k_dump_node[] = "dump_node";
2047 static const char __pyx_k_enumerate[] = "enumerate";
2048 static const char __pyx_k_is_single[] = "is_single";
2049 static const char __pyx_k_metaclass[] = "__metaclass__";
2050 static const char __pyx_k_orig_node[] = "orig_node";
2051 static const char __pyx_k_type_name[] = "type_name";
2052 static const char __pyx_k_type_type[] = "type_type";
2053 static const char __pyx_k_AbortError[] = "AbortError";
2054 static const char __pyx_k_DebugFlags[] = "DebugFlags";
2055 static const char __pyx_k_ModuleNode[] = "ModuleNode";
2056 static const char __pyx_k_NodeFinder[] = "NodeFinder";
2057 static const char __pyx_k_directives[] = "directives";
2058 static const char __pyx_k_exit_scope[] = "exit_scope";
2059 static const char __pyx_k_expr_scope[] = "expr_scope";
2060 static const char __pyx_k_expression[] = "expression";
2061 static const char __pyx_k_is_builtin[] = "is_builtin";
2062 static const char __pyx_k_is_cmethod[] = "is_cmethod";
2063 static const char __pyx_k_line_range[] = "_line_range";
2064 static const char __pyx_k_print_node[] = "_print_node";
2065 static const char __pyx_k_pyx_vtable[] = "__pyx_vtable__";
2066 static const char __pyx_k_replace_in[] = "replace_in";
2067 static const char __pyx_k_stacktrace[] = "stacktrace";
2068 static const char __pyx_k_startswith[] = "startswith";
2069 static const char __pyx_k_visit_Node[] = "visit_Node";
2070 static const char __pyx_k_TreeVisitor[] = "TreeVisitor";
2071 static const char __pyx_k_access_path[] = "access_path";
2072 static const char __pyx_k_as_variable[] = "as_variable";
2073 static const char __pyx_k_child_attrs[] = "child_attrs";
2074 static const char __pyx_k_co_filename[] = "co_filename";
2075 static const char __pyx_k_cpp_message[] = "cpp_message";
2076 static const char __pyx_k_current_env[] = "current_env";
2077 static const char __pyx_k_enter_scope[] = "enter_scope";
2078 static const char __pyx_k_function__s[] = "function_%s";
2079 static const char __pyx_k_gil_message[] = "gil_message";
2080 static const char __pyx_k_is_pyobject[] = "is_pyobject";
2081 static const char __pyx_k_local_scope[] = "local_scope";
2082 static const char __pyx_k_lookup_here[] = "lookup_here";
2083 static const char __pyx_k_method_name[] = "method_name";
2084 static const char __pyx_k_outer_scope[] = "outer_scope";
2085 static const char __pyx_k_parent_type[] = "parent_type";
2086 static const char __pyx_k_replacement[] = "replacement";
2087 static const char __pyx_k_CompileError[] = "CompileError";
2088 static const char __pyx_k_EnvTransform[] = "EnvTransform";
2089 static const char __pyx_k_RuntimeError[] = "RuntimeError";
2090 static const char __pyx_k_global_scope[] = "global_scope";
2091 static const char __pyx_k_is_attribute[] = "is_attribute";
2092 static const char __pyx_k_keyword_args[] = "keyword_args";
2093 static const char __pyx_k_replace_node[] = "replace_node";
2094 static const char __pyx_k_replacements[] = "_replacements";
2095 static const char __pyx_k_version_info[] = "version_info";
2096 static const char __pyx_k_CompilerCrash[] = "CompilerCrash";
2097 static const char __pyx_k_builtin_scope[] = "builtin_scope";
2098 static const char __pyx_k_function_name[] = "function_name";
2099 static const char __pyx_k_handle_any__s[] = "_handle_any_%s";
2100 static const char __pyx_k_handle_method[] = "_handle_method";
2101 static const char __pyx_k_tree_contains[] = "tree_contains";
2102 static const char __pyx_k_visitchildren[] = "visitchildren";
2103 static const char __pyx_k_AttributeError[] = "AttributeError";
2104 static const char __pyx_k_cf_assignments[] = "cf_assignments";
2105 static const char __pyx_k_find_node_path[] = "_find_node_path";
2106 static const char __pyx_k_last_traceback[] = "last_traceback";
2107 static const char __pyx_k_visit_UnopNode[] = "visit_UnopNode";
2108 static const char __pyx_k_CythonTransform[] = "CythonTransform";
2109 static const char __pyx_k_attribute_names[] = "attribute_names";
2110 static const char __pyx_k_get_description[] = "get_description";
2111 static const char __pyx_k_handle_function[] = "_handle_function";
2112 static const char __pyx_k_is_builtin_type[] = "is_builtin_type";
2113 static const char __pyx_k_positional_args[] = "positional_args";
2114 static const char __pyx_k_visit_BinopNode[] = "visit_BinopNode";
2115 static const char __pyx_k_visit_CloneNode[] = "visit_CloneNode";
2116 static const char __pyx_k_PrintTree___call[] = "PrintTree.__call__";
2117 static const char __pyx_k_PrintTree___init[] = "PrintTree.__init__";
2118 static const char __pyx_k_PrintTree_indent[] = "PrintTree.indent";
2119 static const char __pyx_k_VisitorTransform[] = "VisitorTransform";
2120 static const char __pyx_k_visit_ModuleNode[] = "visit_ModuleNode";
2121 static const char __pyx_k_PrintTree_repr_of[] = "PrintTree.repr_of";
2122 static const char __pyx_k_TreeVisitor_visit[] = "TreeVisitor.visit";
2123 static const char __pyx_k_future_directives[] = "future_directives";
2124 static const char __pyx_k_is_unbound_method[] = "is_unbound_method";
2125 static const char __pyx_k_visit_FuncDefNode[] = "visit_FuncDefNode";
2126 static const char __pyx_k_PrintTree_unindent[] = "PrintTree.unindent";
2127 static const char __pyx_k_cline_in_traceback[] = "cline_in_traceback";
2128 static const char __pyx_k_current_scope_node[] = "current_scope_node";
2129 static const char __pyx_k_visit_CArgDeclNode[] = "visit_CArgDeclNode";
2130 static const char __pyx_k_visit_ClassDefNode[] = "visit_ClassDefNode";
2131 static const char __pyx_k_NodeRefCleanupMixin[] = "NodeRefCleanupMixin";
2132 static const char __pyx_k_method_name_to_slot[] = "method_name_to_slot";
2133 static const char __pyx_k_recurse_to_children[] = "recurse_to_children";
2134 static const char __pyx_k_special_method_name[] = "special_method_name";
2135 static const char __pyx_k_visit_CClassDefNode[] = "visit_CClassDefNode";
2136 static const char __pyx_k_visit_ResultRefNode[] = "visit_ResultRefNode";
2137 static const char __pyx_k_PrintTree_visit_Node[] = "PrintTree.visit_Node";
2138 static const char __pyx_k_visit_PrimaryCmpNode[] = "visit_PrimaryCmpNode";
2139 static const char __pyx_k_visit_PyClassDefNode[] = "visit_PyClassDefNode";
2140 static const char __pyx_k_visit_ScopedExprNode[] = "visit_ScopedExprNode";
2141 static const char __pyx_k_visit_SimpleCallNode[] = "visit_SimpleCallNode";
2142 static const char __pyx_k_NodeFinder_visit_Node[] = "NodeFinder.visit_Node";
2143 static const char __pyx_k_PrintTree__print_node[] = "PrintTree._print_node";
2144 static const char __pyx_k_RecursiveNodeReplacer[] = "RecursiveNodeReplacer";
2145 static const char __pyx_k_TreeVisitor_dump_node[] = "TreeVisitor.dump_node";
2146 static const char __pyx_k_visit_GeneralCallNode[] = "visit_GeneralCallNode";
2147 static const char __pyx_k_ScopeTrackingTransform[] = "ScopeTrackingTransform";
2148 static const char __pyx_k_does_not_accept_object[] = " does not accept object: ";
2149 static const char __pyx_k_Cannot_insert_list_here[] = "Cannot insert list here: ";
2150 static const char __pyx_k_Cython_Compiler_Visitor[] = "Cython.Compiler.Visitor";
2151 static const char __pyx_k_EnvTransform_exit_scope[] = "EnvTransform.exit_scope";
2152 static const char __pyx_k_EnvTransform_current_env[] = "EnvTransform.current_env";
2153 static const char __pyx_k_EnvTransform_enter_scope[] = "EnvTransform.enter_scope";
2154 static const char __pyx_k_recursively_replace_node[] = "recursively_replace_node";
2155 static const char __pyx_k_EnvTransform_global_scope[] = "EnvTransform.global_scope";
2156 static const char __pyx_k_MethodDispatcherTransform[] = "MethodDispatcherTransform";
2157 static const char __pyx_k_PrintTree_visit_CloneNode[] = "PrintTree.visit_CloneNode";
2158 static const char __pyx_k_TreeVisitor_visitchildren[] = "TreeVisitor.visitchildren";
2159 static const char __pyx_k_CythonTransform_visit_Node[] = "CythonTransform.visit_Node";
2160 static const char __pyx_k_Cython_Compiler_Visitor_py[] = "Cython/Compiler/Visitor.py";
2161 static const char __pyx_k_NodeRefCleanupMixin___init[] = "NodeRefCleanupMixin.__init__";
2162 static const char __pyx_k_Parse_tree_dump_at_phase_s[] = "Parse tree dump at phase '%s'";
2163 static const char __pyx_k_visit_GeneratorBodyDefNode[] = "visit_GeneratorBodyDefNode";
2164 static const char __pyx_k_NodeRefCleanupMixin_replace[] = "NodeRefCleanupMixin.replace";
2165 static const char __pyx_k_TreeVisitor__find_node_path[] = "TreeVisitor._find_node_path";
2166 static const char __pyx_k_visit_CStructOrUnionDefNode[] = "visit_CStructOrUnionDefNode";
2167 static const char __pyx_k_debug_no_exception_intercept[] = "debug_no_exception_intercept";
2168 static const char __pyx_k_visit_CompilerDirectivesNode[] = "visit_CompilerDirectivesNode";
2169 static const char __pyx_k_EnvTransform_visit_FuncDefNode[] = "EnvTransform.visit_FuncDefNode";
2170 static const char __pyx_k_VisitorTransform_visitchildren[] = "VisitorTransform.visitchildren";
2171 static const char __pyx_k_Clean_up_references_to_nodes_th[] = "\n    Clean up references to nodes that were replaced.\n\n    NOTE: this implementation assumes that the replacement is\n    done first, before hitting any further references during\n    normal tree traversal.  This needs to be arranged by calling\n    \"self.visitchildren()\" at a proper place in the transform\n    and by ordering the \"child_attrs\" of nodes appropriately.\n    ";
2172 static const char __pyx_k_EnvTransform_current_scope_node[] = "EnvTransform.current_scope_node";
2173 static const char __pyx_k_EnvTransform_visit_CArgDeclNode[] = "EnvTransform.visit_CArgDeclNode";
2174 static const char __pyx_k_EnvTransform_visit_ClassDefNode[] = "EnvTransform.visit_ClassDefNode";
2175 static const char __pyx_k_MethodDispatcherTransform_visit[] = "MethodDispatcherTransform.visit_GeneralCallNode";
2176 static const char __pyx_k_CythonTransform_visit_CompilerDi[] = "CythonTransform.visit_CompilerDirectivesNode";
2177 static const char __pyx_k_EnvTransform_visit_CStructOrUnio[] = "EnvTransform.visit_CStructOrUnionDefNode";
2178 static const char __pyx_k_EnvTransform_visit_GeneratorBody[] = "EnvTransform.visit_GeneratorBodyDefNode";
2179 static const char __pyx_k_EnvTransform_visit_ScopedExprNod[] = "EnvTransform.visit_ScopedExprNode";
2180 static const char __pyx_k_MethodDispatcherTransform__handl[] = "MethodDispatcherTransform._handle_function";
2181 static const char __pyx_k_NodeRefCleanupMixin_visit_CloneN[] = "NodeRefCleanupMixin.visit_CloneNode";
2182 static const char __pyx_k_NodeRefCleanupMixin_visit_Result[] = "NodeRefCleanupMixin.visit_ResultRefNode";
2183 static const char __pyx_k_Prints_a_representation_of_the_t[] = "Prints a representation of the tree to standard output.\n    Subclass and override repr_of to provide more information\n    about nodes. ";
2184 static const char __pyx_k_RecursiveNodeReplacer_visit_Clon[] = "RecursiveNodeReplacer.visit_CloneNode";
2185 static const char __pyx_k_RecursiveNodeReplacer_visit_Node[] = "RecursiveNodeReplacer.visit_Node";
2186 static const char __pyx_k_ScopeTrackingTransform_visit_CCl[] = "ScopeTrackingTransform.visit_CClassDefNode";
2187 static const char __pyx_k_ScopeTrackingTransform_visit_CSt[] = "ScopeTrackingTransform.visit_CStructOrUnionDefNode";
2188 static const char __pyx_k_ScopeTrackingTransform_visit_Fun[] = "ScopeTrackingTransform.visit_FuncDefNode";
2189 static const char __pyx_k_ScopeTrackingTransform_visit_Mod[] = "ScopeTrackingTransform.visit_ModuleNode";
2190 static const char __pyx_k_ScopeTrackingTransform_visit_PyC[] = "ScopeTrackingTransform.visit_PyClassDefNode";
2191 static const char __pyx_k_VisitorTransform_recurse_to_chil[] = "VisitorTransform.recurse_to_children";
2192 static const char __pyx_k_find_special_method_for_binary_o[] = "find_special_method_for_binary_operator";
2193 static const char __pyx_k_find_special_method_for_unary_op[] = "find_special_method_for_unary_operator";
2194 static const char __pyx_k_MethodDispatcherTransform_visit_2[] = "MethodDispatcherTransform.visit_SimpleCallNode";
2195 static const char __pyx_k_MethodDispatcherTransform_visit_3[] = "MethodDispatcherTransform.visit_PrimaryCmpNode";
2196 static const char __pyx_k_MethodDispatcherTransform_visit_4[] = "MethodDispatcherTransform.visit_BinopNode";
2197 static const char __pyx_k_MethodDispatcherTransform_visit_5[] = "MethodDispatcherTransform.visit_UnopNode";
2198 static const char __pyx_k_MethodDispatcherTransform__handl_2[] = "MethodDispatcherTransform._handle_method";
2199 static PyObject *__pyx_kp_u_;
2200 static PyObject *__pyx_n_s_AbortError;
2201 static PyObject *__pyx_n_s_AttributeError;
2202 static PyObject *__pyx_n_s_Builtin;
2203 static PyObject *__pyx_kp_u_Cannot_insert_list_here;
2204 static PyObject *__pyx_kp_s_Clean_up_references_to_nodes_th;
2205 static PyObject *__pyx_n_s_CompileError;
2206 static PyObject *__pyx_n_s_CompilerCrash;
2207 static PyObject *__pyx_n_s_CythonTransform;
2208 static PyObject *__pyx_n_s_CythonTransform_visit_CompilerDi;
2209 static PyObject *__pyx_n_s_CythonTransform_visit_Node;
2210 static PyObject *__pyx_n_s_Cython_Compiler_Visitor;
2211 static PyObject *__pyx_kp_s_Cython_Compiler_Visitor_py;
2212 static PyObject *__pyx_n_s_DebugFlags;
2213 static PyObject *__pyx_n_s_DefNode;
2214 static PyObject *__pyx_n_s_DictNode;
2215 static PyObject *__pyx_n_s_EnvTransform;
2216 static PyObject *__pyx_n_s_EnvTransform_current_env;
2217 static PyObject *__pyx_n_s_EnvTransform_current_scope_node;
2218 static PyObject *__pyx_n_s_EnvTransform_enter_scope;
2219 static PyObject *__pyx_n_s_EnvTransform_exit_scope;
2220 static PyObject *__pyx_n_s_EnvTransform_global_scope;
2221 static PyObject *__pyx_n_s_EnvTransform_visit_CArgDeclNode;
2222 static PyObject *__pyx_n_s_EnvTransform_visit_CStructOrUnio;
2223 static PyObject *__pyx_n_s_EnvTransform_visit_ClassDefNode;
2224 static PyObject *__pyx_n_s_EnvTransform_visit_FuncDefNode;
2225 static PyObject *__pyx_n_s_EnvTransform_visit_GeneratorBody;
2226 static PyObject *__pyx_n_s_EnvTransform_visit_ScopedExprNod;
2227 static PyObject *__pyx_n_s_Errors;
2228 static PyObject *__pyx_n_s_ExprNode;
2229 static PyObject *__pyx_n_s_ExprNodes;
2230 static PyObject *__pyx_kp_u_File;
2231 static PyObject *__pyx_n_s_Future;
2232 static PyObject *__pyx_n_s_KeyError;
2233 static PyObject *__pyx_n_s_MethodDispatcherTransform;
2234 static PyObject *__pyx_n_s_MethodDispatcherTransform__handl;
2235 static PyObject *__pyx_n_s_MethodDispatcherTransform__handl_2;
2236 static PyObject *__pyx_n_s_MethodDispatcherTransform_visit;
2237 static PyObject *__pyx_n_s_MethodDispatcherTransform_visit_2;
2238 static PyObject *__pyx_n_s_MethodDispatcherTransform_visit_3;
2239 static PyObject *__pyx_n_s_MethodDispatcherTransform_visit_4;
2240 static PyObject *__pyx_n_s_MethodDispatcherTransform_visit_5;
2241 static PyObject *__pyx_n_s_ModuleNode;
2242 static PyObject *__pyx_n_s_NameNode;
2243 static PyObject *__pyx_n_s_Node;
2244 static PyObject *__pyx_n_s_NodeFinder;
2245 static PyObject *__pyx_n_s_NodeFinder_visit_Node;
2246 static PyObject *__pyx_n_s_NodeRefCleanupMixin;
2247 static PyObject *__pyx_n_s_NodeRefCleanupMixin___init;
2248 static PyObject *__pyx_n_s_NodeRefCleanupMixin_replace;
2249 static PyObject *__pyx_n_s_NodeRefCleanupMixin_visit_CloneN;
2250 static PyObject *__pyx_n_s_NodeRefCleanupMixin_visit_Result;
2251 static PyObject *__pyx_n_s_Nodes;
2252 static PyObject *__pyx_kp_u_Parse_tree_dump_at_phase_s;
2253 static PyObject *__pyx_n_s_PrintTree;
2254 static PyObject *__pyx_n_s_PrintTree___call;
2255 static PyObject *__pyx_n_s_PrintTree___init;
2256 static PyObject *__pyx_n_s_PrintTree__print_node;
2257 static PyObject *__pyx_n_s_PrintTree_indent;
2258 static PyObject *__pyx_n_s_PrintTree_repr_of;
2259 static PyObject *__pyx_n_s_PrintTree_unindent;
2260 static PyObject *__pyx_n_s_PrintTree_visit_CloneNode;
2261 static PyObject *__pyx_n_s_PrintTree_visit_Node;
2262 static PyObject *__pyx_kp_s_Prints_a_representation_of_the_t;
2263 static PyObject *__pyx_n_s_RecursiveNodeReplacer;
2264 static PyObject *__pyx_n_s_RecursiveNodeReplacer_visit_Clon;
2265 static PyObject *__pyx_n_s_RecursiveNodeReplacer_visit_Node;
2266 static PyObject *__pyx_n_s_RuntimeError;
2267 static PyObject *__pyx_n_s_ScopeTrackingTransform;
2268 static PyObject *__pyx_n_s_ScopeTrackingTransform_visit_CCl;
2269 static PyObject *__pyx_n_s_ScopeTrackingTransform_visit_CSt;
2270 static PyObject *__pyx_n_s_ScopeTrackingTransform_visit_Fun;
2271 static PyObject *__pyx_n_s_ScopeTrackingTransform_visit_Mod;
2272 static PyObject *__pyx_n_s_ScopeTrackingTransform_visit_PyC;
2273 static PyObject *__pyx_n_s_TreeVisitor;
2274 static PyObject *__pyx_n_s_TreeVisitor__find_node_path;
2275 static PyObject *__pyx_n_s_TreeVisitor_dump_node;
2276 static PyObject *__pyx_n_s_TreeVisitor_visit;
2277 static PyObject *__pyx_n_s_TreeVisitor_visitchildren;
2278 static PyObject *__pyx_n_s_TupleNode;
2279 static PyObject *__pyx_n_s_TypeSlots;
2280 static PyObject *__pyx_kp_u_Visitor;
2281 static PyObject *__pyx_n_s_VisitorTransform;
2282 static PyObject *__pyx_n_s_VisitorTransform_recurse_to_chil;
2283 static PyObject *__pyx_n_s_VisitorTransform_visitchildren;
2284 static PyObject *__pyx_kp_u__10;
2285 static PyObject *__pyx_kp_u__13;
2286 static PyObject *__pyx_kp_u__15;
2287 static PyObject *__pyx_kp_u__16;
2288 static PyObject *__pyx_kp_u__17;
2289 static PyObject *__pyx_kp_u__18;
2290 static PyObject *__pyx_kp_u__19;
2291 static PyObject *__pyx_n_u__2;
2292 static PyObject *__pyx_kp_u__20;
2293 static PyObject *__pyx_kp_u__21;
2294 static PyObject *__pyx_kp_u__3;
2295 static PyObject *__pyx_kp_u__4;
2296 static PyObject *__pyx_kp_u__5;
2297 static PyObject *__pyx_kp_u__6;
2298 static PyObject *__pyx_n_s__7;
2299 static PyObject *__pyx_kp_u__7;
2300 static PyObject *__pyx_kp_u__79;
2301 static PyObject *__pyx_kp_u__8;
2302 static PyObject *__pyx_kp_u__80;
2303 static PyObject *__pyx_kp_u__81;
2304 static PyObject *__pyx_kp_u__82;
2305 static PyObject *__pyx_kp_u__83;
2306 static PyObject *__pyx_kp_u__84;
2307 static PyObject *__pyx_kp_u__85;
2308 static PyObject *__pyx_kp_u__86;
2309 static PyObject *__pyx_kp_u__87;
2310 static PyObject *__pyx_kp_u__88;
2311 static PyObject *__pyx_kp_u__89;
2312 static PyObject *__pyx_kp_u__9;
2313 static PyObject *__pyx_kp_u__90;
2314 static PyObject *__pyx_kp_u__91;
2315 static PyObject *__pyx_kp_u__92;
2316 static PyObject *__pyx_kp_u__93;
2317 static PyObject *__pyx_kp_u__94;
2318 static PyObject *__pyx_kp_u__95;
2319 static PyObject *__pyx_kp_u__96;
2320 static PyObject *__pyx_n_s_access_path;
2321 static PyObject *__pyx_n_u_add;
2322 static PyObject *__pyx_n_u_and;
2323 static PyObject *__pyx_n_s_arg;
2324 static PyObject *__pyx_kp_u_arg_2;
2325 static PyObject *__pyx_n_s_arg_list;
2326 static PyObject *__pyx_n_s_arg_tuple;
2327 static PyObject *__pyx_n_s_args;
2328 static PyObject *__pyx_n_s_as_variable;
2329 static PyObject *__pyx_n_s_attr;
2330 static PyObject *__pyx_n_s_attr_name;
2331 static PyObject *__pyx_n_s_attribute;
2332 static PyObject *__pyx_n_s_attribute_names;
2333 static PyObject *__pyx_n_s_attrname;
2334 static PyObject *__pyx_n_s_attrs;
2335 static PyObject *__pyx_n_s_basename;
2336 static PyObject *__pyx_n_s_builtin_scope;
2337 static PyObject *__pyx_n_s_call;
2338 static PyObject *__pyx_n_s_cascade;
2339 static PyObject *__pyx_n_u_cclass;
2340 static PyObject *__pyx_n_s_cf_assignments;
2341 static PyObject *__pyx_n_s_cf_state;
2342 static PyObject *__pyx_n_s_child_attrs;
2343 static PyObject *__pyx_n_u_child_attrs;
2344 static PyObject *__pyx_n_s_class;
2345 static PyObject *__pyx_n_s_cline_in_traceback;
2346 static PyObject *__pyx_n_s_co_filename;
2347 static PyObject *__pyx_n_s_co_name;
2348 static PyObject *__pyx_n_s_code;
2349 static PyObject *__pyx_n_u_contains;
2350 static PyObject *__pyx_n_s_context;
2351 static PyObject *__pyx_n_u_cpp_message;
2352 static PyObject *__pyx_n_s_current_env;
2353 static PyObject *__pyx_n_s_current_scope_node;
2354 static PyObject *__pyx_kp_u_d;
2355 static PyObject *__pyx_kp_u_d_2;
2356 static PyObject *__pyx_n_u_d_3;
2357 static PyObject *__pyx_n_s_debug_no_exception_intercept;
2358 static PyObject *__pyx_n_s_default;
2359 static PyObject *__pyx_n_u_default;
2360 static PyObject *__pyx_n_s_dict;
2361 static PyObject *__pyx_n_s_directives;
2362 static PyObject *__pyx_n_u_div;
2363 static PyObject *__pyx_n_s_division;
2364 static PyObject *__pyx_n_s_doc;
2365 static PyObject *__pyx_n_s_doctest;
2366 static PyObject *__pyx_kp_u_does_not_accept_object;
2367 static PyObject *__pyx_n_s_dump_node;
2368 static PyObject *__pyx_n_s_end;
2369 static PyObject *__pyx_n_s_endswith;
2370 static PyObject *__pyx_n_s_enter_scope;
2371 static PyObject *__pyx_n_s_entry;
2372 static PyObject *__pyx_n_s_enumerate;
2373 static PyObject *__pyx_n_u_eq;
2374 static PyObject *__pyx_n_s_exc_info;
2375 static PyObject *__pyx_n_s_exclude;
2376 static PyObject *__pyx_n_s_exit_scope;
2377 static PyObject *__pyx_n_s_expr;
2378 static PyObject *__pyx_n_s_expr_scope;
2379 static PyObject *__pyx_n_s_expression;
2380 static PyObject *__pyx_n_s_f_code;
2381 static PyObject *__pyx_n_s_f_lineno;
2382 static PyObject *__pyx_n_s_f_locals;
2383 static PyObject *__pyx_n_s_find_node_path;
2384 static PyObject *__pyx_n_s_find_special_method_for_binary_o;
2385 static PyObject *__pyx_n_s_find_special_method_for_unary_op;
2386 static PyObject *__pyx_n_s_finder;
2387 static PyObject *__pyx_n_u_floordiv;
2388 static PyObject *__pyx_n_s_frame;
2389 static PyObject *__pyx_n_s_function;
2390 static PyObject *__pyx_n_u_function;
2391 static PyObject *__pyx_kp_u_function__s;
2392 static PyObject *__pyx_n_s_function_name;
2393 static PyObject *__pyx_n_s_future_directives;
2394 static PyObject *__pyx_n_u_ge;
2395 static PyObject *__pyx_n_u_general;
2396 static PyObject *__pyx_n_s_get;
2397 static PyObject *__pyx_n_s_get_description;
2398 static PyObject *__pyx_n_s_getmro;
2399 static PyObject *__pyx_n_u_gil_message;
2400 static PyObject *__pyx_n_s_global_scope;
2401 static PyObject *__pyx_n_u_gt;
2402 static PyObject *__pyx_n_u_handle;
2403 static PyObject *__pyx_kp_u_handle_any__s;
2404 static PyObject *__pyx_n_s_handle_function;
2405 static PyObject *__pyx_n_s_handle_method;
2406 static PyObject *__pyx_n_s_idx;
2407 static PyObject *__pyx_n_s_ignored;
2408 static PyObject *__pyx_n_s_import;
2409 static PyObject *__pyx_kp_u_in;
2410 static PyObject *__pyx_kp_u_in_2;
2411 static PyObject *__pyx_n_u_in_3;
2412 static PyObject *__pyx_n_s_indent;
2413 static PyObject *__pyx_n_s_indent_2;
2414 static PyObject *__pyx_n_s_init;
2415 static PyObject *__pyx_n_s_inspect;
2416 static PyObject *__pyx_n_u_inv;
2417 static PyObject *__pyx_n_s_is_attribute;
2418 static PyObject *__pyx_n_s_is_builtin;
2419 static PyObject *__pyx_n_s_is_builtin_type;
2420 static PyObject *__pyx_n_s_is_cmethod;
2421 static PyObject *__pyx_n_s_is_name;
2422 static PyObject *__pyx_n_s_is_pyobject;
2423 static PyObject *__pyx_n_s_is_single;
2424 static PyObject *__pyx_n_s_is_unbound_method;
2425 static PyObject *__pyx_n_s_items;
2426 static PyObject *__pyx_n_s_keyword_args;
2427 static PyObject *__pyx_n_s_kwargs;
2428 static PyObject *__pyx_n_s_last_traceback;
2429 static PyObject *__pyx_n_u_le;
2430 static PyObject *__pyx_kp_u_line;
2431 static PyObject *__pyx_n_s_line_2;
2432 static PyObject *__pyx_n_s_line_range;
2433 static PyObject *__pyx_n_s_listidx;
2434 static PyObject *__pyx_n_s_local_scope;
2435 static PyObject *__pyx_n_s_lookup_here;
2436 static PyObject *__pyx_n_u_lshift;
2437 static PyObject *__pyx_n_u_lt;
2438 static PyObject *__pyx_n_s_main;
2439 static PyObject *__pyx_n_u_main;
2440 static PyObject *__pyx_n_s_metaclass;
2441 static PyObject *__pyx_n_u_method;
2442 static PyObject *__pyx_n_s_method_name;
2443 static PyObject *__pyx_n_s_method_name_to_slot;
2444 static PyObject *__pyx_n_u_mod;
2445 static PyObject *__pyx_n_u_module;
2446 static PyObject *__pyx_n_s_module_2;
2447 static PyObject *__pyx_n_u_mul;
2448 static PyObject *__pyx_n_s_name;
2449 static PyObject *__pyx_n_s_name_2;
2450 static PyObject *__pyx_kp_u_name_3;
2451 static PyObject *__pyx_kp_u_name_s;
2452 static PyObject *__pyx_n_u_ne;
2453 static PyObject *__pyx_n_u_neg;
2454 static PyObject *__pyx_n_u_new;
2455 static PyObject *__pyx_n_s_new_node;
2456 static PyObject *__pyx_n_s_node;
2457 static PyObject *__pyx_n_s_nodes;
2458 static PyObject *__pyx_kp_u_none;
2459 static PyObject *__pyx_n_u_not;
2460 static PyObject *__pyx_n_u_not_2;
2461 static PyObject *__pyx_n_s_obj;
2462 static PyObject *__pyx_n_s_obj_type;
2463 static PyObject *__pyx_n_s_object;
2464 static PyObject *__pyx_n_u_object;
2465 static PyObject *__pyx_n_s_old;
2466 static PyObject *__pyx_n_s_old_node;
2467 static PyObject *__pyx_n_s_operand;
2468 static PyObject *__pyx_n_s_operand1;
2469 static PyObject *__pyx_n_s_operand2;
2470 static PyObject *__pyx_n_s_operator;
2471 static PyObject *__pyx_n_u_or;
2472 static PyObject *__pyx_n_s_orig_node;
2473 static PyObject *__pyx_n_s_os;
2474 static PyObject *__pyx_n_s_os_path;
2475 static PyObject *__pyx_n_s_outer_scope;
2476 static PyObject *__pyx_n_s_parent;
2477 static PyObject *__pyx_n_s_parent_type;
2478 static PyObject *__pyx_n_s_path;
2479 static PyObject *__pyx_n_s_phase;
2480 static PyObject *__pyx_n_s_pop;
2481 static PyObject *__pyx_n_s_pos;
2482 static PyObject *__pyx_n_u_pos;
2483 static PyObject *__pyx_kp_u_pos_2;
2484 static PyObject *__pyx_n_u_pos_3;
2485 static PyObject *__pyx_n_s_positional_args;
2486 static PyObject *__pyx_n_u_pow;
2487 static PyObject *__pyx_n_s_prepare;
2488 static PyObject *__pyx_n_s_print;
2489 static PyObject *__pyx_n_s_print_node;
2490 static PyObject *__pyx_n_s_ptr;
2491 static PyObject *__pyx_n_u_pyclass;
2492 static PyObject *__pyx_n_s_pyx_vtable;
2493 static PyObject *__pyx_n_s_qualname;
2494 static PyObject *__pyx_n_s_recurse_to_children;
2495 static PyObject *__pyx_n_s_recursively_replace_node;
2496 static PyObject *__pyx_n_s_replace;
2497 static PyObject *__pyx_n_s_replace_in;
2498 static PyObject *__pyx_n_s_replace_node;
2499 static PyObject *__pyx_n_s_replacement;
2500 static PyObject *__pyx_n_s_replacements;
2501 static PyObject *__pyx_n_s_repr_of;
2502 static PyObject *__pyx_n_s_result;
2503 static PyObject *__pyx_n_s_rhs;
2504 static PyObject *__pyx_n_s_root;
2505 static PyObject *__pyx_kp_u_root_2;
2506 static PyObject *__pyx_n_u_rshift;
2507 static PyObject *__pyx_n_s_scope;
2508 static PyObject *__pyx_n_s_self;
2509 static PyObject *__pyx_n_u_self;
2510 static PyObject *__pyx_n_u_simple;
2511 static PyObject *__pyx_kp_u_slot_s;
2512 static PyObject *__pyx_n_s_source;
2513 static PyObject *__pyx_n_s_special_method_name;
2514 static PyObject *__pyx_n_s_split;
2515 static PyObject *__pyx_n_s_stacktrace;
2516 static PyObject *__pyx_n_s_start;
2517 static PyObject *__pyx_n_s_startswith;
2518 static PyObject *__pyx_n_u_struct;
2519 static PyObject *__pyx_n_u_sub;
2520 static PyObject *__pyx_n_u_subexprs;
2521 static PyObject *__pyx_n_s_super;
2522 static PyObject *__pyx_n_s_sys;
2523 static PyObject *__pyx_n_s_t;
2524 static PyObject *__pyx_n_s_tb_frame;
2525 static PyObject *__pyx_n_u_tb_frame;
2526 static PyObject *__pyx_n_s_tb_next;
2527 static PyObject *__pyx_n_s_test;
2528 static PyObject *__pyx_n_s_testmod;
2529 static PyObject *__pyx_n_s_tree;
2530 static PyObject *__pyx_n_s_tree_contains;
2531 static PyObject *__pyx_n_u_truediv;
2532 static PyObject *__pyx_n_s_type;
2533 static PyObject *__pyx_kp_u_type_2;
2534 static PyObject *__pyx_n_s_type_name;
2535 static PyObject *__pyx_kp_u_type_s;
2536 static PyObject *__pyx_n_s_type_type;
2537 static PyObject *__pyx_n_s_unindent;
2538 static PyObject *__pyx_n_s_value;
2539 static PyObject *__pyx_n_s_values;
2540 static PyObject *__pyx_n_s_version_info;
2541 static PyObject *__pyx_n_s_visit;
2542 static PyObject *__pyx_n_s_visit_BinopNode;
2543 static PyObject *__pyx_n_s_visit_CArgDeclNode;
2544 static PyObject *__pyx_n_s_visit_CClassDefNode;
2545 static PyObject *__pyx_n_s_visit_CStructOrUnionDefNode;
2546 static PyObject *__pyx_n_s_visit_ClassDefNode;
2547 static PyObject *__pyx_n_s_visit_CloneNode;
2548 static PyObject *__pyx_n_s_visit_CompilerDirectivesNode;
2549 static PyObject *__pyx_n_s_visit_FuncDefNode;
2550 static PyObject *__pyx_n_s_visit_GeneralCallNode;
2551 static PyObject *__pyx_n_s_visit_GeneratorBodyDefNode;
2552 static PyObject *__pyx_n_s_visit_ModuleNode;
2553 static PyObject *__pyx_n_s_visit_Node;
2554 static PyObject *__pyx_n_s_visit_PrimaryCmpNode;
2555 static PyObject *__pyx_n_s_visit_PyClassDefNode;
2556 static PyObject *__pyx_n_s_visit_ResultRefNode;
2557 static PyObject *__pyx_n_s_visit_ScopedExprNode;
2558 static PyObject *__pyx_n_s_visit_SimpleCallNode;
2559 static PyObject *__pyx_n_s_visit_UnopNode;
2560 static PyObject *__pyx_kp_u_visit__s;
2561 static PyObject *__pyx_n_s_visitchildren;
2562 static PyObject *__pyx_n_u_xor;
2563 static int __pyx_pf_6Cython_8Compiler_7Visitor_11TreeVisitor___init__(struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor *__pyx_v_self); /* proto */
2564 static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_11TreeVisitor_2dump_node(CYTHON_UNUSED struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor *__pyx_v_self, PyObject *__pyx_v_node); /* proto */
2565 static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_11TreeVisitor_4_find_node_path(CYTHON_UNUSED struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor *__pyx_v_self, PyObject *__pyx_v_stacktrace); /* proto */
2566 static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_11TreeVisitor_6visit(struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor *__pyx_v_self, PyObject *__pyx_v_obj); /* proto */
2567 static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_11TreeVisitor_8visitchildren(struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor *__pyx_v_self, PyObject *__pyx_v_parent, PyObject *__pyx_v_attrs); /* proto */
2568 static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_11TreeVisitor_11access_path___get__(struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor *__pyx_v_self); /* proto */
2569 static int __pyx_pf_6Cython_8Compiler_7Visitor_11TreeVisitor_11access_path_2__set__(struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
2570 static int __pyx_pf_6Cython_8Compiler_7Visitor_11TreeVisitor_11access_path_4__del__(struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor *__pyx_v_self); /* proto */
2571 static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_16VisitorTransform_visitchildren(struct __pyx_obj_6Cython_8Compiler_7Visitor_VisitorTransform *__pyx_v_self, PyObject *__pyx_v_parent, PyObject *__pyx_v_attrs, PyObject *__pyx_v_exclude); /* proto */
2572 static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_16VisitorTransform_2recurse_to_children(struct __pyx_obj_6Cython_8Compiler_7Visitor_VisitorTransform *__pyx_v_self, PyObject *__pyx_v_node); /* proto */
2573 static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_16VisitorTransform_4__call__(struct __pyx_obj_6Cython_8Compiler_7Visitor_VisitorTransform *__pyx_v_self, PyObject *__pyx_v_root); /* proto */
2574 static int __pyx_pf_6Cython_8Compiler_7Visitor_15CythonTransform___init__(struct __pyx_obj_6Cython_8Compiler_7Visitor_CythonTransform *__pyx_v_self, PyObject *__pyx_v_context); /* proto */
2575 static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_15CythonTransform_2__call__(struct __pyx_obj_6Cython_8Compiler_7Visitor_CythonTransform *__pyx_v_self, PyObject *__pyx_v_node); /* proto */
2576 static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_15CythonTransform_4visit_CompilerDirectivesNode(struct __pyx_obj_6Cython_8Compiler_7Visitor_CythonTransform *__pyx_v_self, PyObject *__pyx_v_node); /* proto */
2577 static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_15CythonTransform_6visit_Node(struct __pyx_obj_6Cython_8Compiler_7Visitor_CythonTransform *__pyx_v_self, PyObject *__pyx_v_node); /* proto */
2578 static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_15CythonTransform_7context___get__(struct __pyx_obj_6Cython_8Compiler_7Visitor_CythonTransform *__pyx_v_self); /* proto */
2579 static int __pyx_pf_6Cython_8Compiler_7Visitor_15CythonTransform_7context_2__set__(struct __pyx_obj_6Cython_8Compiler_7Visitor_CythonTransform *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
2580 static int __pyx_pf_6Cython_8Compiler_7Visitor_15CythonTransform_7context_4__del__(struct __pyx_obj_6Cython_8Compiler_7Visitor_CythonTransform *__pyx_v_self); /* proto */
2581 static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_15CythonTransform_18current_directives___get__(struct __pyx_obj_6Cython_8Compiler_7Visitor_CythonTransform *__pyx_v_self); /* proto */
2582 static int __pyx_pf_6Cython_8Compiler_7Visitor_15CythonTransform_18current_directives_2__set__(struct __pyx_obj_6Cython_8Compiler_7Visitor_CythonTransform *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
2583 static int __pyx_pf_6Cython_8Compiler_7Visitor_15CythonTransform_18current_directives_4__del__(struct __pyx_obj_6Cython_8Compiler_7Visitor_CythonTransform *__pyx_v_self); /* proto */
2584 static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_visit_ModuleNode(struct __pyx_obj_6Cython_8Compiler_7Visitor_ScopeTrackingTransform *__pyx_v_self, PyObject *__pyx_v_node); /* proto */
2585 static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_2visit_CClassDefNode(struct __pyx_obj_6Cython_8Compiler_7Visitor_ScopeTrackingTransform *__pyx_v_self, PyObject *__pyx_v_node); /* proto */
2586 static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_4visit_PyClassDefNode(struct __pyx_obj_6Cython_8Compiler_7Visitor_ScopeTrackingTransform *__pyx_v_self, PyObject *__pyx_v_node); /* proto */
2587 static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_6visit_FuncDefNode(struct __pyx_obj_6Cython_8Compiler_7Visitor_ScopeTrackingTransform *__pyx_v_self, PyObject *__pyx_v_node); /* proto */
2588 static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_8visit_CStructOrUnionDefNode(struct __pyx_obj_6Cython_8Compiler_7Visitor_ScopeTrackingTransform *__pyx_v_self, PyObject *__pyx_v_node); /* proto */
2589 static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_10scope_type___get__(struct __pyx_obj_6Cython_8Compiler_7Visitor_ScopeTrackingTransform *__pyx_v_self); /* proto */
2590 static int __pyx_pf_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_10scope_type_2__set__(struct __pyx_obj_6Cython_8Compiler_7Visitor_ScopeTrackingTransform *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
2591 static int __pyx_pf_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_10scope_type_4__del__(struct __pyx_obj_6Cython_8Compiler_7Visitor_ScopeTrackingTransform *__pyx_v_self); /* proto */
2592 static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_10scope_node___get__(struct __pyx_obj_6Cython_8Compiler_7Visitor_ScopeTrackingTransform *__pyx_v_self); /* proto */
2593 static int __pyx_pf_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_10scope_node_2__set__(struct __pyx_obj_6Cython_8Compiler_7Visitor_ScopeTrackingTransform *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
2594 static int __pyx_pf_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_10scope_node_4__del__(struct __pyx_obj_6Cython_8Compiler_7Visitor_ScopeTrackingTransform *__pyx_v_self); /* proto */
2595 static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_12EnvTransform___call__(struct __pyx_obj_6Cython_8Compiler_7Visitor_EnvTransform *__pyx_v_self, PyObject *__pyx_v_root); /* proto */
2596 static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_12EnvTransform_2current_env(struct __pyx_obj_6Cython_8Compiler_7Visitor_EnvTransform *__pyx_v_self); /* proto */
2597 static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_12EnvTransform_4current_scope_node(struct __pyx_obj_6Cython_8Compiler_7Visitor_EnvTransform *__pyx_v_self); /* proto */
2598 static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_12EnvTransform_6global_scope(struct __pyx_obj_6Cython_8Compiler_7Visitor_EnvTransform *__pyx_v_self); /* proto */
2599 static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_12EnvTransform_8enter_scope(struct __pyx_obj_6Cython_8Compiler_7Visitor_EnvTransform *__pyx_v_self, PyObject *__pyx_v_node, PyObject *__pyx_v_scope); /* proto */
2600 static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_12EnvTransform_10exit_scope(struct __pyx_obj_6Cython_8Compiler_7Visitor_EnvTransform *__pyx_v_self); /* proto */
2601 static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_12EnvTransform_12visit_FuncDefNode(struct __pyx_obj_6Cython_8Compiler_7Visitor_EnvTransform *__pyx_v_self, PyObject *__pyx_v_node); /* proto */
2602 static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_12EnvTransform_14visit_GeneratorBodyDefNode(struct __pyx_obj_6Cython_8Compiler_7Visitor_EnvTransform *__pyx_v_self, PyObject *__pyx_v_node); /* proto */
2603 static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_12EnvTransform_16visit_ClassDefNode(struct __pyx_obj_6Cython_8Compiler_7Visitor_EnvTransform *__pyx_v_self, PyObject *__pyx_v_node); /* proto */
2604 static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_12EnvTransform_18visit_CStructOrUnionDefNode(struct __pyx_obj_6Cython_8Compiler_7Visitor_EnvTransform *__pyx_v_self, PyObject *__pyx_v_node); /* proto */
2605 static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_12EnvTransform_20visit_ScopedExprNode(struct __pyx_obj_6Cython_8Compiler_7Visitor_EnvTransform *__pyx_v_self, PyObject *__pyx_v_node); /* proto */
2606 static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_12EnvTransform_22visit_CArgDeclNode(struct __pyx_obj_6Cython_8Compiler_7Visitor_EnvTransform *__pyx_v_self, PyObject *__pyx_v_node); /* proto */
2607 static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_12EnvTransform_9env_stack___get__(struct __pyx_obj_6Cython_8Compiler_7Visitor_EnvTransform *__pyx_v_self); /* proto */
2608 static int __pyx_pf_6Cython_8Compiler_7Visitor_12EnvTransform_9env_stack_2__set__(struct __pyx_obj_6Cython_8Compiler_7Visitor_EnvTransform *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
2609 static int __pyx_pf_6Cython_8Compiler_7Visitor_12EnvTransform_9env_stack_4__del__(struct __pyx_obj_6Cython_8Compiler_7Visitor_EnvTransform *__pyx_v_self); /* proto */
2610 static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_19NodeRefCleanupMixin___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_args); /* proto */
2611 static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_19NodeRefCleanupMixin_2visit_CloneNode(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_node); /* proto */
2612 static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_19NodeRefCleanupMixin_4visit_ResultRefNode(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_node); /* proto */
2613 static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_19NodeRefCleanupMixin_6replace(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_node, PyObject *__pyx_v_replacement); /* proto */
2614 static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_25MethodDispatcherTransform_visit_GeneralCallNode(struct __pyx_obj_6Cython_8Compiler_7Visitor_MethodDispatcherTransform *__pyx_v_self, PyObject *__pyx_v_node); /* proto */
2615 static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_25MethodDispatcherTransform_2visit_SimpleCallNode(struct __pyx_obj_6Cython_8Compiler_7Visitor_MethodDispatcherTransform *__pyx_v_self, PyObject *__pyx_v_node); /* proto */
2616 static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_25MethodDispatcherTransform_4visit_PrimaryCmpNode(struct __pyx_obj_6Cython_8Compiler_7Visitor_MethodDispatcherTransform *__pyx_v_self, PyObject *__pyx_v_node); /* proto */
2617 static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_25MethodDispatcherTransform_6visit_BinopNode(struct __pyx_obj_6Cython_8Compiler_7Visitor_MethodDispatcherTransform *__pyx_v_self, PyObject *__pyx_v_node); /* proto */
2618 static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_25MethodDispatcherTransform_8visit_UnopNode(struct __pyx_obj_6Cython_8Compiler_7Visitor_MethodDispatcherTransform *__pyx_v_self, PyObject *__pyx_v_node); /* proto */
2619 static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_25MethodDispatcherTransform_10_handle_function(CYTHON_UNUSED struct __pyx_obj_6Cython_8Compiler_7Visitor_MethodDispatcherTransform *__pyx_v_self, PyObject *__pyx_v_node, CYTHON_UNUSED PyObject *__pyx_v_function_name, CYTHON_UNUSED PyObject *__pyx_v_function, CYTHON_UNUSED PyObject *__pyx_v_arg_list, CYTHON_UNUSED PyObject *__pyx_v_kwargs); /* proto */
2620 static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_25MethodDispatcherTransform_12_handle_method(CYTHON_UNUSED struct __pyx_obj_6Cython_8Compiler_7Visitor_MethodDispatcherTransform *__pyx_v_self, PyObject *__pyx_v_node, CYTHON_UNUSED PyObject *__pyx_v_type_name, CYTHON_UNUSED PyObject *__pyx_v_attr_name, CYTHON_UNUSED PyObject *__pyx_v_function, CYTHON_UNUSED PyObject *__pyx_v_arg_list, CYTHON_UNUSED PyObject *__pyx_v_is_unbound_method, CYTHON_UNUSED PyObject *__pyx_v_kwargs); /* proto */
2621 static int __pyx_pf_6Cython_8Compiler_7Visitor_21RecursiveNodeReplacer___init__(struct __pyx_obj_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer *__pyx_v_self, PyObject *__pyx_v_orig_node, PyObject *__pyx_v_new_node); /* proto */
2622 static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_21RecursiveNodeReplacer_2visit_CloneNode(struct __pyx_obj_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer *__pyx_v_self, PyObject *__pyx_v_node); /* proto */
2623 static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_21RecursiveNodeReplacer_4visit_Node(struct __pyx_obj_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer *__pyx_v_self, PyObject *__pyx_v_node); /* proto */
2624 static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_21RecursiveNodeReplacer_9orig_node___get__(struct __pyx_obj_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer *__pyx_v_self); /* proto */
2625 static int __pyx_pf_6Cython_8Compiler_7Visitor_21RecursiveNodeReplacer_9orig_node_2__set__(struct __pyx_obj_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
2626 static int __pyx_pf_6Cython_8Compiler_7Visitor_21RecursiveNodeReplacer_9orig_node_4__del__(struct __pyx_obj_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer *__pyx_v_self); /* proto */
2627 static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_21RecursiveNodeReplacer_8new_node___get__(struct __pyx_obj_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer *__pyx_v_self); /* proto */
2628 static int __pyx_pf_6Cython_8Compiler_7Visitor_21RecursiveNodeReplacer_8new_node_2__set__(struct __pyx_obj_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
2629 static int __pyx_pf_6Cython_8Compiler_7Visitor_21RecursiveNodeReplacer_8new_node_4__del__(struct __pyx_obj_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer *__pyx_v_self); /* proto */
2630 static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_recursively_replace_node(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_tree, PyObject *__pyx_v_old_node, PyObject *__pyx_v_new_node); /* proto */
2631 static int __pyx_pf_6Cython_8Compiler_7Visitor_10NodeFinder___init__(struct __pyx_obj_6Cython_8Compiler_7Visitor_NodeFinder *__pyx_v_self, PyObject *__pyx_v_node); /* proto */
2632 static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_10NodeFinder_2visit_Node(struct __pyx_obj_6Cython_8Compiler_7Visitor_NodeFinder *__pyx_v_self, PyObject *__pyx_v_node); /* proto */
2633 static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_10NodeFinder_5found___get__(struct __pyx_obj_6Cython_8Compiler_7Visitor_NodeFinder *__pyx_v_self); /* proto */
2634 static int __pyx_pf_6Cython_8Compiler_7Visitor_10NodeFinder_5found_2__set__(struct __pyx_obj_6Cython_8Compiler_7Visitor_NodeFinder *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
2635 static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_2tree_contains(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_tree, PyObject *__pyx_v_node); /* proto */
2636 static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_4replace_node(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_ptr, PyObject *__pyx_v_value); /* proto */
2637 static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_9PrintTree___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_start, PyObject *__pyx_v_end); /* proto */
2638 static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_9PrintTree_2indent(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */
2639 static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_9PrintTree_4unindent(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */
2640 static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_9PrintTree_6__call__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_tree, PyObject *__pyx_v_phase); /* proto */
2641 static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_9PrintTree_8visit_Node(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_node); /* proto */
2642 static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_9PrintTree_10visit_CloneNode(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_node); /* proto */
2643 static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_9PrintTree_12_print_node(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_node); /* proto */
2644 static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_9PrintTree_14repr_of(CYTHON_UNUSED PyObject *__pyx_self, CYTHON_UNUSED PyObject *__pyx_v_self, PyObject *__pyx_v_node); /* proto */
2645 static PyObject *__pyx_tp_new_6Cython_8Compiler_7Visitor_TreeVisitor(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
2646 static PyObject *__pyx_tp_new_6Cython_8Compiler_7Visitor_VisitorTransform(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
2647 static PyObject *__pyx_tp_new_6Cython_8Compiler_7Visitor_CythonTransform(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
2648 static PyObject *__pyx_tp_new_6Cython_8Compiler_7Visitor_ScopeTrackingTransform(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
2649 static PyObject *__pyx_tp_new_6Cython_8Compiler_7Visitor_EnvTransform(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
2650 static PyObject *__pyx_tp_new_6Cython_8Compiler_7Visitor_MethodDispatcherTransform(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
2651 static PyObject *__pyx_tp_new_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
2652 static PyObject *__pyx_tp_new_6Cython_8Compiler_7Visitor_NodeFinder(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
2653 static __Pyx_CachedCFunction __pyx_umethod_PyList_Type_pop = {0, &__pyx_n_s_pop, 0, 0, 0};
2654 static PyObject *__pyx_int_0;
2655 static PyObject *__pyx_int_1;
2656 static PyObject *__pyx_int_3;
2657 static PyObject *__pyx_int_neg_2;
2658 static PyObject *__pyx_slice__12;
2659 static PyObject *__pyx_slice__14;
2660 static PyObject *__pyx_tuple__11;
2661 static PyObject *__pyx_tuple__22;
2662 static PyObject *__pyx_tuple__24;
2663 static PyObject *__pyx_tuple__26;
2664 static PyObject *__pyx_tuple__28;
2665 static PyObject *__pyx_tuple__30;
2666 static PyObject *__pyx_tuple__32;
2667 static PyObject *__pyx_tuple__34;
2668 static PyObject *__pyx_tuple__36;
2669 static PyObject *__pyx_tuple__38;
2670 static PyObject *__pyx_tuple__40;
2671 static PyObject *__pyx_tuple__42;
2672 static PyObject *__pyx_tuple__44;
2673 static PyObject *__pyx_tuple__46;
2674 static PyObject *__pyx_tuple__48;
2675 static PyObject *__pyx_tuple__50;
2676 static PyObject *__pyx_tuple__52;
2677 static PyObject *__pyx_tuple__54;
2678 static PyObject *__pyx_tuple__56;
2679 static PyObject *__pyx_tuple__58;
2680 static PyObject *__pyx_tuple__60;
2681 static PyObject *__pyx_tuple__62;
2682 static PyObject *__pyx_tuple__64;
2683 static PyObject *__pyx_tuple__66;
2684 static PyObject *__pyx_tuple__68;
2685 static PyObject *__pyx_tuple__70;
2686 static PyObject *__pyx_tuple__71;
2687 static PyObject *__pyx_tuple__73;
2688 static PyObject *__pyx_tuple__75;
2689 static PyObject *__pyx_tuple__77;
2690 static PyObject *__pyx_tuple__97;
2691 static PyObject *__pyx_tuple__99;
2692 static PyObject *__pyx_tuple__101;
2693 static PyObject *__pyx_tuple__103;
2694 static PyObject *__pyx_tuple__105;
2695 static PyObject *__pyx_tuple__107;
2696 static PyObject *__pyx_tuple__109;
2697 static PyObject *__pyx_tuple__111;
2698 static PyObject *__pyx_tuple__113;
2699 static PyObject *__pyx_tuple__115;
2700 static PyObject *__pyx_tuple__117;
2701 static PyObject *__pyx_tuple__119;
2702 static PyObject *__pyx_tuple__121;
2703 static PyObject *__pyx_tuple__123;
2704 static PyObject *__pyx_tuple__125;
2705 static PyObject *__pyx_tuple__126;
2706 static PyObject *__pyx_tuple__128;
2707 static PyObject *__pyx_tuple__130;
2708 static PyObject *__pyx_tuple__132;
2709 static PyObject *__pyx_tuple__133;
2710 static PyObject *__pyx_tuple__135;
2711 static PyObject *__pyx_tuple__137;
2712 static PyObject *__pyx_tuple__139;
2713 static PyObject *__pyx_codeobj__23;
2714 static PyObject *__pyx_codeobj__25;
2715 static PyObject *__pyx_codeobj__27;
2716 static PyObject *__pyx_codeobj__29;
2717 static PyObject *__pyx_codeobj__31;
2718 static PyObject *__pyx_codeobj__33;
2719 static PyObject *__pyx_codeobj__35;
2720 static PyObject *__pyx_codeobj__37;
2721 static PyObject *__pyx_codeobj__39;
2722 static PyObject *__pyx_codeobj__41;
2723 static PyObject *__pyx_codeobj__43;
2724 static PyObject *__pyx_codeobj__45;
2725 static PyObject *__pyx_codeobj__47;
2726 static PyObject *__pyx_codeobj__49;
2727 static PyObject *__pyx_codeobj__51;
2728 static PyObject *__pyx_codeobj__53;
2729 static PyObject *__pyx_codeobj__55;
2730 static PyObject *__pyx_codeobj__57;
2731 static PyObject *__pyx_codeobj__59;
2732 static PyObject *__pyx_codeobj__61;
2733 static PyObject *__pyx_codeobj__63;
2734 static PyObject *__pyx_codeobj__65;
2735 static PyObject *__pyx_codeobj__67;
2736 static PyObject *__pyx_codeobj__69;
2737 static PyObject *__pyx_codeobj__72;
2738 static PyObject *__pyx_codeobj__74;
2739 static PyObject *__pyx_codeobj__76;
2740 static PyObject *__pyx_codeobj__78;
2741 static PyObject *__pyx_codeobj__98;
2742 static PyObject *__pyx_codeobj__100;
2743 static PyObject *__pyx_codeobj__102;
2744 static PyObject *__pyx_codeobj__104;
2745 static PyObject *__pyx_codeobj__106;
2746 static PyObject *__pyx_codeobj__108;
2747 static PyObject *__pyx_codeobj__110;
2748 static PyObject *__pyx_codeobj__112;
2749 static PyObject *__pyx_codeobj__114;
2750 static PyObject *__pyx_codeobj__116;
2751 static PyObject *__pyx_codeobj__118;
2752 static PyObject *__pyx_codeobj__120;
2753 static PyObject *__pyx_codeobj__122;
2754 static PyObject *__pyx_codeobj__124;
2755 static PyObject *__pyx_codeobj__127;
2756 static PyObject *__pyx_codeobj__129;
2757 static PyObject *__pyx_codeobj__131;
2758 static PyObject *__pyx_codeobj__134;
2759 static PyObject *__pyx_codeobj__136;
2760 static PyObject *__pyx_codeobj__138;
2761 static PyObject *__pyx_codeobj__140;
2762 /* Late includes */
2763 
2764 /* "Cython/Compiler/Visitor.py":76
2765  *     out 0
2766  *     """
2767  *     def __init__(self):             # <<<<<<<<<<<<<<
2768  *         super(TreeVisitor, self).__init__()
2769  *         self.dispatch_table = {}
2770  */
2771 
2772 /* Python wrapper */
2773 static int __pyx_pw_6Cython_8Compiler_7Visitor_11TreeVisitor_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
__pyx_pw_6Cython_8Compiler_7Visitor_11TreeVisitor_1__init__(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)2774 static int __pyx_pw_6Cython_8Compiler_7Visitor_11TreeVisitor_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
2775   int __pyx_r;
2776   __Pyx_RefNannyDeclarations
2777   __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
2778   if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) {
2779     __Pyx_RaiseArgtupleInvalid("__init__", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return -1;}
2780   if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__init__", 0))) return -1;
2781   __pyx_r = __pyx_pf_6Cython_8Compiler_7Visitor_11TreeVisitor___init__(((struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor *)__pyx_v_self));
2782 
2783   /* function exit code */
2784   __Pyx_RefNannyFinishContext();
2785   return __pyx_r;
2786 }
2787 
__pyx_pf_6Cython_8Compiler_7Visitor_11TreeVisitor___init__(struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor * __pyx_v_self)2788 static int __pyx_pf_6Cython_8Compiler_7Visitor_11TreeVisitor___init__(struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor *__pyx_v_self) {
2789   int __pyx_r;
2790   __Pyx_RefNannyDeclarations
2791   PyObject *__pyx_t_1 = NULL;
2792   PyObject *__pyx_t_2 = NULL;
2793   PyObject *__pyx_t_3 = NULL;
2794   int __pyx_lineno = 0;
2795   const char *__pyx_filename = NULL;
2796   int __pyx_clineno = 0;
2797   __Pyx_RefNannySetupContext("__init__", 0);
2798 
2799   /* "Cython/Compiler/Visitor.py":77
2800  *     """
2801  *     def __init__(self):
2802  *         super(TreeVisitor, self).__init__()             # <<<<<<<<<<<<<<
2803  *         self.dispatch_table = {}
2804  *         self.access_path = []
2805  */
2806   __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 77, __pyx_L1_error)
2807   __Pyx_GOTREF(__pyx_t_2);
2808   __Pyx_INCREF(((PyObject *)__pyx_ptype_6Cython_8Compiler_7Visitor_TreeVisitor));
2809   __Pyx_GIVEREF(((PyObject *)__pyx_ptype_6Cython_8Compiler_7Visitor_TreeVisitor));
2810   PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_ptype_6Cython_8Compiler_7Visitor_TreeVisitor));
2811   __Pyx_INCREF(((PyObject *)__pyx_v_self));
2812   __Pyx_GIVEREF(((PyObject *)__pyx_v_self));
2813   PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_v_self));
2814   __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 77, __pyx_L1_error)
2815   __Pyx_GOTREF(__pyx_t_3);
2816   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
2817   __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_init); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 77, __pyx_L1_error)
2818   __Pyx_GOTREF(__pyx_t_2);
2819   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
2820   __pyx_t_3 = NULL;
2821   if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
2822     __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
2823     if (likely(__pyx_t_3)) {
2824       PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
2825       __Pyx_INCREF(__pyx_t_3);
2826       __Pyx_INCREF(function);
2827       __Pyx_DECREF_SET(__pyx_t_2, function);
2828     }
2829   }
2830   __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
2831   __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
2832   if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 77, __pyx_L1_error)
2833   __Pyx_GOTREF(__pyx_t_1);
2834   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
2835   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
2836 
2837   /* "Cython/Compiler/Visitor.py":78
2838  *     def __init__(self):
2839  *         super(TreeVisitor, self).__init__()
2840  *         self.dispatch_table = {}             # <<<<<<<<<<<<<<
2841  *         self.access_path = []
2842  *
2843  */
2844   __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 78, __pyx_L1_error)
2845   __Pyx_GOTREF(__pyx_t_1);
2846   __Pyx_GIVEREF(__pyx_t_1);
2847   __Pyx_GOTREF(__pyx_v_self->dispatch_table);
2848   __Pyx_DECREF(__pyx_v_self->dispatch_table);
2849   __pyx_v_self->dispatch_table = ((PyObject*)__pyx_t_1);
2850   __pyx_t_1 = 0;
2851 
2852   /* "Cython/Compiler/Visitor.py":79
2853  *         super(TreeVisitor, self).__init__()
2854  *         self.dispatch_table = {}
2855  *         self.access_path = []             # <<<<<<<<<<<<<<
2856  *
2857  *     def dump_node(self, node):
2858  */
2859   __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 79, __pyx_L1_error)
2860   __Pyx_GOTREF(__pyx_t_1);
2861   __Pyx_GIVEREF(__pyx_t_1);
2862   __Pyx_GOTREF(__pyx_v_self->access_path);
2863   __Pyx_DECREF(__pyx_v_self->access_path);
2864   __pyx_v_self->access_path = ((PyObject*)__pyx_t_1);
2865   __pyx_t_1 = 0;
2866 
2867   /* "Cython/Compiler/Visitor.py":76
2868  *     out 0
2869  *     """
2870  *     def __init__(self):             # <<<<<<<<<<<<<<
2871  *         super(TreeVisitor, self).__init__()
2872  *         self.dispatch_table = {}
2873  */
2874 
2875   /* function exit code */
2876   __pyx_r = 0;
2877   goto __pyx_L0;
2878   __pyx_L1_error:;
2879   __Pyx_XDECREF(__pyx_t_1);
2880   __Pyx_XDECREF(__pyx_t_2);
2881   __Pyx_XDECREF(__pyx_t_3);
2882   __Pyx_AddTraceback("Cython.Compiler.Visitor.TreeVisitor.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
2883   __pyx_r = -1;
2884   __pyx_L0:;
2885   __Pyx_RefNannyFinishContext();
2886   return __pyx_r;
2887 }
2888 
2889 /* "Cython/Compiler/Visitor.py":81
2890  *         self.access_path = []
2891  *
2892  *     def dump_node(self, node):             # <<<<<<<<<<<<<<
2893  *         ignored = list(node.child_attrs or []) + [
2894  *             u'child_attrs', u'pos', u'gil_message', u'cpp_message', u'subexprs']
2895  */
2896 
2897 /* Python wrapper */
2898 static PyObject *__pyx_pw_6Cython_8Compiler_7Visitor_11TreeVisitor_3dump_node(PyObject *__pyx_v_self, PyObject *__pyx_v_node); /*proto*/
2899 static PyMethodDef __pyx_mdef_6Cython_8Compiler_7Visitor_11TreeVisitor_3dump_node = {"dump_node", (PyCFunction)__pyx_pw_6Cython_8Compiler_7Visitor_11TreeVisitor_3dump_node, METH_O, 0};
__pyx_pw_6Cython_8Compiler_7Visitor_11TreeVisitor_3dump_node(PyObject * __pyx_v_self,PyObject * __pyx_v_node)2900 static PyObject *__pyx_pw_6Cython_8Compiler_7Visitor_11TreeVisitor_3dump_node(PyObject *__pyx_v_self, PyObject *__pyx_v_node) {
2901   PyObject *__pyx_r = 0;
2902   __Pyx_RefNannyDeclarations
2903   __Pyx_RefNannySetupContext("dump_node (wrapper)", 0);
2904   __pyx_r = __pyx_pf_6Cython_8Compiler_7Visitor_11TreeVisitor_2dump_node(((struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor *)__pyx_v_self), ((PyObject *)__pyx_v_node));
2905 
2906   /* function exit code */
2907   __Pyx_RefNannyFinishContext();
2908   return __pyx_r;
2909 }
2910 
__pyx_pf_6Cython_8Compiler_7Visitor_11TreeVisitor_2dump_node(CYTHON_UNUSED struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor * __pyx_v_self,PyObject * __pyx_v_node)2911 static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_11TreeVisitor_2dump_node(CYTHON_UNUSED struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor *__pyx_v_self, PyObject *__pyx_v_node) {
2912   PyObject *__pyx_v_ignored = NULL;
2913   PyObject *__pyx_v_values = NULL;
2914   PyObject *__pyx_v_pos = NULL;
2915   PyObject *__pyx_v_source = NULL;
2916   PyObject *__pyx_v_os = NULL;
2917   PyObject *__pyx_v_attribute_names = NULL;
2918   PyObject *__pyx_v_attr = NULL;
2919   PyObject *__pyx_v_value = NULL;
2920   PyObject *__pyx_r = NULL;
2921   __Pyx_RefNannyDeclarations
2922   PyObject *__pyx_t_1 = NULL;
2923   PyObject *__pyx_t_2 = NULL;
2924   int __pyx_t_3;
2925   PyObject *__pyx_t_4 = NULL;
2926   PyObject *__pyx_t_5 = NULL;
2927   PyObject *__pyx_t_6 = NULL;
2928   Py_ssize_t __pyx_t_7;
2929   Py_UCS4 __pyx_t_8;
2930   int __pyx_t_9;
2931   PyObject *(*__pyx_t_10)(PyObject *);
2932   int __pyx_t_11;
2933   PyObject *__pyx_t_12 = NULL;
2934   PyObject *__pyx_t_13 = NULL;
2935   PyObject *__pyx_t_14 = NULL;
2936   int __pyx_t_15;
2937   int __pyx_t_16;
2938   Py_ssize_t __pyx_t_17;
2939   int __pyx_lineno = 0;
2940   const char *__pyx_filename = NULL;
2941   int __pyx_clineno = 0;
2942   __Pyx_RefNannySetupContext("dump_node", 0);
2943 
2944   /* "Cython/Compiler/Visitor.py":82
2945  *
2946  *     def dump_node(self, node):
2947  *         ignored = list(node.child_attrs or []) + [             # <<<<<<<<<<<<<<
2948  *             u'child_attrs', u'pos', u'gil_message', u'cpp_message', u'subexprs']
2949  *         values = []
2950  */
2951   __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_child_attrs); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 82, __pyx_L1_error)
2952   __Pyx_GOTREF(__pyx_t_2);
2953   __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 82, __pyx_L1_error)
2954   if (!__pyx_t_3) {
2955     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
2956   } else {
2957     __Pyx_INCREF(__pyx_t_2);
2958     __pyx_t_1 = __pyx_t_2;
2959     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
2960     goto __pyx_L3_bool_binop_done;
2961   }
2962   __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 82, __pyx_L1_error)
2963   __Pyx_GOTREF(__pyx_t_2);
2964   __Pyx_INCREF(__pyx_t_2);
2965   __pyx_t_1 = __pyx_t_2;
2966   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
2967   __pyx_L3_bool_binop_done:;
2968   __pyx_t_2 = PySequence_List(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 82, __pyx_L1_error)
2969   __Pyx_GOTREF(__pyx_t_2);
2970   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
2971   __pyx_t_1 = PyList_New(5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 82, __pyx_L1_error)
2972   __Pyx_GOTREF(__pyx_t_1);
2973   __Pyx_INCREF(__pyx_n_u_child_attrs);
2974   __Pyx_GIVEREF(__pyx_n_u_child_attrs);
2975   PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_u_child_attrs);
2976   __Pyx_INCREF(__pyx_n_u_pos);
2977   __Pyx_GIVEREF(__pyx_n_u_pos);
2978   PyList_SET_ITEM(__pyx_t_1, 1, __pyx_n_u_pos);
2979   __Pyx_INCREF(__pyx_n_u_gil_message);
2980   __Pyx_GIVEREF(__pyx_n_u_gil_message);
2981   PyList_SET_ITEM(__pyx_t_1, 2, __pyx_n_u_gil_message);
2982   __Pyx_INCREF(__pyx_n_u_cpp_message);
2983   __Pyx_GIVEREF(__pyx_n_u_cpp_message);
2984   PyList_SET_ITEM(__pyx_t_1, 3, __pyx_n_u_cpp_message);
2985   __Pyx_INCREF(__pyx_n_u_subexprs);
2986   __Pyx_GIVEREF(__pyx_n_u_subexprs);
2987   PyList_SET_ITEM(__pyx_t_1, 4, __pyx_n_u_subexprs);
2988   __pyx_t_4 = PyNumber_Add(__pyx_t_2, __pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 82, __pyx_L1_error)
2989   __Pyx_GOTREF(__pyx_t_4);
2990   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
2991   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
2992   __pyx_v_ignored = ((PyObject*)__pyx_t_4);
2993   __pyx_t_4 = 0;
2994 
2995   /* "Cython/Compiler/Visitor.py":84
2996  *         ignored = list(node.child_attrs or []) + [
2997  *             u'child_attrs', u'pos', u'gil_message', u'cpp_message', u'subexprs']
2998  *         values = []             # <<<<<<<<<<<<<<
2999  *         pos = getattr(node, 'pos', None)
3000  *         if pos:
3001  */
3002   __pyx_t_4 = PyList_New(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 84, __pyx_L1_error)
3003   __Pyx_GOTREF(__pyx_t_4);
3004   __pyx_v_values = ((PyObject*)__pyx_t_4);
3005   __pyx_t_4 = 0;
3006 
3007   /* "Cython/Compiler/Visitor.py":85
3008  *             u'child_attrs', u'pos', u'gil_message', u'cpp_message', u'subexprs']
3009  *         values = []
3010  *         pos = getattr(node, 'pos', None)             # <<<<<<<<<<<<<<
3011  *         if pos:
3012  *             source = pos[0]
3013  */
3014   __pyx_t_4 = __Pyx_GetAttr3(__pyx_v_node, __pyx_n_u_pos, Py_None); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 85, __pyx_L1_error)
3015   __Pyx_GOTREF(__pyx_t_4);
3016   __pyx_v_pos = __pyx_t_4;
3017   __pyx_t_4 = 0;
3018 
3019   /* "Cython/Compiler/Visitor.py":86
3020  *         values = []
3021  *         pos = getattr(node, 'pos', None)
3022  *         if pos:             # <<<<<<<<<<<<<<
3023  *             source = pos[0]
3024  *             if source:
3025  */
3026   __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_pos); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 86, __pyx_L1_error)
3027   if (__pyx_t_3) {
3028 
3029     /* "Cython/Compiler/Visitor.py":87
3030  *         pos = getattr(node, 'pos', None)
3031  *         if pos:
3032  *             source = pos[0]             # <<<<<<<<<<<<<<
3033  *             if source:
3034  *                 import os.path
3035  */
3036     __pyx_t_4 = __Pyx_GetItemInt(__pyx_v_pos, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 87, __pyx_L1_error)
3037     __Pyx_GOTREF(__pyx_t_4);
3038     __pyx_v_source = __pyx_t_4;
3039     __pyx_t_4 = 0;
3040 
3041     /* "Cython/Compiler/Visitor.py":88
3042  *         if pos:
3043  *             source = pos[0]
3044  *             if source:             # <<<<<<<<<<<<<<
3045  *                 import os.path
3046  *                 source = os.path.basename(source.get_description())
3047  */
3048     __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_source); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 88, __pyx_L1_error)
3049     if (__pyx_t_3) {
3050 
3051       /* "Cython/Compiler/Visitor.py":89
3052  *             source = pos[0]
3053  *             if source:
3054  *                 import os.path             # <<<<<<<<<<<<<<
3055  *                 source = os.path.basename(source.get_description())
3056  *             values.append(u'%s:%s:%s' % (source, pos[1], pos[2]))
3057  */
3058       __pyx_t_4 = __Pyx_Import(__pyx_n_s_os_path, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 89, __pyx_L1_error)
3059       __Pyx_GOTREF(__pyx_t_4);
3060       __pyx_v_os = __pyx_t_4;
3061       __pyx_t_4 = 0;
3062 
3063       /* "Cython/Compiler/Visitor.py":90
3064  *             if source:
3065  *                 import os.path
3066  *                 source = os.path.basename(source.get_description())             # <<<<<<<<<<<<<<
3067  *             values.append(u'%s:%s:%s' % (source, pos[1], pos[2]))
3068  *         attribute_names = dir(node)
3069  */
3070       __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_os, __pyx_n_s_path); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 90, __pyx_L1_error)
3071       __Pyx_GOTREF(__pyx_t_1);
3072       __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_basename); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 90, __pyx_L1_error)
3073       __Pyx_GOTREF(__pyx_t_2);
3074       __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
3075       __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_source, __pyx_n_s_get_description); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 90, __pyx_L1_error)
3076       __Pyx_GOTREF(__pyx_t_5);
3077       __pyx_t_6 = NULL;
3078       if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
3079         __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5);
3080         if (likely(__pyx_t_6)) {
3081           PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
3082           __Pyx_INCREF(__pyx_t_6);
3083           __Pyx_INCREF(function);
3084           __Pyx_DECREF_SET(__pyx_t_5, function);
3085         }
3086       }
3087       __pyx_t_1 = (__pyx_t_6) ? __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_6) : __Pyx_PyObject_CallNoArg(__pyx_t_5);
3088       __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
3089       if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 90, __pyx_L1_error)
3090       __Pyx_GOTREF(__pyx_t_1);
3091       __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
3092       __pyx_t_5 = NULL;
3093       if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
3094         __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_2);
3095         if (likely(__pyx_t_5)) {
3096           PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
3097           __Pyx_INCREF(__pyx_t_5);
3098           __Pyx_INCREF(function);
3099           __Pyx_DECREF_SET(__pyx_t_2, function);
3100         }
3101       }
3102       __pyx_t_4 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_5, __pyx_t_1) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_1);
3103       __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
3104       __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
3105       if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 90, __pyx_L1_error)
3106       __Pyx_GOTREF(__pyx_t_4);
3107       __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
3108       __Pyx_DECREF_SET(__pyx_v_source, __pyx_t_4);
3109       __pyx_t_4 = 0;
3110 
3111       /* "Cython/Compiler/Visitor.py":88
3112  *         if pos:
3113  *             source = pos[0]
3114  *             if source:             # <<<<<<<<<<<<<<
3115  *                 import os.path
3116  *                 source = os.path.basename(source.get_description())
3117  */
3118     }
3119 
3120     /* "Cython/Compiler/Visitor.py":91
3121  *                 import os.path
3122  *                 source = os.path.basename(source.get_description())
3123  *             values.append(u'%s:%s:%s' % (source, pos[1], pos[2]))             # <<<<<<<<<<<<<<
3124  *         attribute_names = dir(node)
3125  *         for attr in attribute_names:
3126  */
3127     __pyx_t_4 = PyTuple_New(5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 91, __pyx_L1_error)
3128     __Pyx_GOTREF(__pyx_t_4);
3129     __pyx_t_7 = 0;
3130     __pyx_t_8 = 127;
3131     __pyx_t_2 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Unicode(__pyx_v_source), __pyx_empty_unicode); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 91, __pyx_L1_error)
3132     __Pyx_GOTREF(__pyx_t_2);
3133     __pyx_t_8 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_2) > __pyx_t_8) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_2) : __pyx_t_8;
3134     __pyx_t_7 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_2);
3135     __Pyx_GIVEREF(__pyx_t_2);
3136     PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
3137     __pyx_t_2 = 0;
3138     __Pyx_INCREF(__pyx_kp_u_);
3139     __pyx_t_7 += 1;
3140     __Pyx_GIVEREF(__pyx_kp_u_);
3141     PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_kp_u_);
3142     __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_pos, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 91, __pyx_L1_error)
3143     __Pyx_GOTREF(__pyx_t_2);
3144     __pyx_t_1 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Unicode(__pyx_t_2), __pyx_empty_unicode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 91, __pyx_L1_error)
3145     __Pyx_GOTREF(__pyx_t_1);
3146     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
3147     __pyx_t_8 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_1) > __pyx_t_8) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_1) : __pyx_t_8;
3148     __pyx_t_7 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_1);
3149     __Pyx_GIVEREF(__pyx_t_1);
3150     PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_t_1);
3151     __pyx_t_1 = 0;
3152     __Pyx_INCREF(__pyx_kp_u_);
3153     __pyx_t_7 += 1;
3154     __Pyx_GIVEREF(__pyx_kp_u_);
3155     PyTuple_SET_ITEM(__pyx_t_4, 3, __pyx_kp_u_);
3156     __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_pos, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 91, __pyx_L1_error)
3157     __Pyx_GOTREF(__pyx_t_1);
3158     __pyx_t_2 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Unicode(__pyx_t_1), __pyx_empty_unicode); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 91, __pyx_L1_error)
3159     __Pyx_GOTREF(__pyx_t_2);
3160     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
3161     __pyx_t_8 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_2) > __pyx_t_8) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_2) : __pyx_t_8;
3162     __pyx_t_7 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_2);
3163     __Pyx_GIVEREF(__pyx_t_2);
3164     PyTuple_SET_ITEM(__pyx_t_4, 4, __pyx_t_2);
3165     __pyx_t_2 = 0;
3166     __pyx_t_2 = __Pyx_PyUnicode_Join(__pyx_t_4, 5, __pyx_t_7, __pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 91, __pyx_L1_error)
3167     __Pyx_GOTREF(__pyx_t_2);
3168     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
3169     __pyx_t_9 = __Pyx_PyList_Append(__pyx_v_values, __pyx_t_2); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(0, 91, __pyx_L1_error)
3170     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
3171 
3172     /* "Cython/Compiler/Visitor.py":86
3173  *         values = []
3174  *         pos = getattr(node, 'pos', None)
3175  *         if pos:             # <<<<<<<<<<<<<<
3176  *             source = pos[0]
3177  *             if source:
3178  */
3179   }
3180 
3181   /* "Cython/Compiler/Visitor.py":92
3182  *                 source = os.path.basename(source.get_description())
3183  *             values.append(u'%s:%s:%s' % (source, pos[1], pos[2]))
3184  *         attribute_names = dir(node)             # <<<<<<<<<<<<<<
3185  *         for attr in attribute_names:
3186  *             if attr in ignored:
3187  */
3188   __pyx_t_2 = PyObject_Dir(__pyx_v_node); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 92, __pyx_L1_error)
3189   __Pyx_GOTREF(__pyx_t_2);
3190   __pyx_v_attribute_names = __pyx_t_2;
3191   __pyx_t_2 = 0;
3192 
3193   /* "Cython/Compiler/Visitor.py":93
3194  *             values.append(u'%s:%s:%s' % (source, pos[1], pos[2]))
3195  *         attribute_names = dir(node)
3196  *         for attr in attribute_names:             # <<<<<<<<<<<<<<
3197  *             if attr in ignored:
3198  *                 continue
3199  */
3200   if (likely(PyList_CheckExact(__pyx_v_attribute_names)) || PyTuple_CheckExact(__pyx_v_attribute_names)) {
3201     __pyx_t_2 = __pyx_v_attribute_names; __Pyx_INCREF(__pyx_t_2); __pyx_t_7 = 0;
3202     __pyx_t_10 = NULL;
3203   } else {
3204     __pyx_t_7 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_v_attribute_names); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 93, __pyx_L1_error)
3205     __Pyx_GOTREF(__pyx_t_2);
3206     __pyx_t_10 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 93, __pyx_L1_error)
3207   }
3208   for (;;) {
3209     if (likely(!__pyx_t_10)) {
3210       if (likely(PyList_CheckExact(__pyx_t_2))) {
3211         if (__pyx_t_7 >= PyList_GET_SIZE(__pyx_t_2)) break;
3212         #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
3213         __pyx_t_4 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_7); __Pyx_INCREF(__pyx_t_4); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(0, 93, __pyx_L1_error)
3214         #else
3215         __pyx_t_4 = PySequence_ITEM(__pyx_t_2, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 93, __pyx_L1_error)
3216         __Pyx_GOTREF(__pyx_t_4);
3217         #endif
3218       } else {
3219         if (__pyx_t_7 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
3220         #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
3221         __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_7); __Pyx_INCREF(__pyx_t_4); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(0, 93, __pyx_L1_error)
3222         #else
3223         __pyx_t_4 = PySequence_ITEM(__pyx_t_2, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 93, __pyx_L1_error)
3224         __Pyx_GOTREF(__pyx_t_4);
3225         #endif
3226       }
3227     } else {
3228       __pyx_t_4 = __pyx_t_10(__pyx_t_2);
3229       if (unlikely(!__pyx_t_4)) {
3230         PyObject* exc_type = PyErr_Occurred();
3231         if (exc_type) {
3232           if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
3233           else __PYX_ERR(0, 93, __pyx_L1_error)
3234         }
3235         break;
3236       }
3237       __Pyx_GOTREF(__pyx_t_4);
3238     }
3239     __Pyx_XDECREF_SET(__pyx_v_attr, __pyx_t_4);
3240     __pyx_t_4 = 0;
3241 
3242     /* "Cython/Compiler/Visitor.py":94
3243  *         attribute_names = dir(node)
3244  *         for attr in attribute_names:
3245  *             if attr in ignored:             # <<<<<<<<<<<<<<
3246  *                 continue
3247  *             if attr.startswith('_') or attr.endswith('_'):
3248  */
3249     __pyx_t_3 = (__Pyx_PySequence_ContainsTF(__pyx_v_attr, __pyx_v_ignored, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 94, __pyx_L1_error)
3250     __pyx_t_11 = (__pyx_t_3 != 0);
3251     if (__pyx_t_11) {
3252 
3253       /* "Cython/Compiler/Visitor.py":95
3254  *         for attr in attribute_names:
3255  *             if attr in ignored:
3256  *                 continue             # <<<<<<<<<<<<<<
3257  *             if attr.startswith('_') or attr.endswith('_'):
3258  *                 continue
3259  */
3260       goto __pyx_L7_continue;
3261 
3262       /* "Cython/Compiler/Visitor.py":94
3263  *         attribute_names = dir(node)
3264  *         for attr in attribute_names:
3265  *             if attr in ignored:             # <<<<<<<<<<<<<<
3266  *                 continue
3267  *             if attr.startswith('_') or attr.endswith('_'):
3268  */
3269     }
3270 
3271     /* "Cython/Compiler/Visitor.py":96
3272  *             if attr in ignored:
3273  *                 continue
3274  *             if attr.startswith('_') or attr.endswith('_'):             # <<<<<<<<<<<<<<
3275  *                 continue
3276  *             try:
3277  */
3278     __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_attr, __pyx_n_s_startswith); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 96, __pyx_L1_error)
3279     __Pyx_GOTREF(__pyx_t_1);
3280     __pyx_t_5 = NULL;
3281     if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) {
3282       __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_1);
3283       if (likely(__pyx_t_5)) {
3284         PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
3285         __Pyx_INCREF(__pyx_t_5);
3286         __Pyx_INCREF(function);
3287         __Pyx_DECREF_SET(__pyx_t_1, function);
3288       }
3289     }
3290     __pyx_t_4 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_5, __pyx_n_u__2) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_n_u__2);
3291     __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
3292     if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 96, __pyx_L1_error)
3293     __Pyx_GOTREF(__pyx_t_4);
3294     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
3295     __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 96, __pyx_L1_error)
3296     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
3297     if (!__pyx_t_3) {
3298     } else {
3299       __pyx_t_11 = __pyx_t_3;
3300       goto __pyx_L11_bool_binop_done;
3301     }
3302     __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_attr, __pyx_n_s_endswith); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 96, __pyx_L1_error)
3303     __Pyx_GOTREF(__pyx_t_1);
3304     __pyx_t_5 = NULL;
3305     if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) {
3306       __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_1);
3307       if (likely(__pyx_t_5)) {
3308         PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
3309         __Pyx_INCREF(__pyx_t_5);
3310         __Pyx_INCREF(function);
3311         __Pyx_DECREF_SET(__pyx_t_1, function);
3312       }
3313     }
3314     __pyx_t_4 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_5, __pyx_n_u__2) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_n_u__2);
3315     __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
3316     if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 96, __pyx_L1_error)
3317     __Pyx_GOTREF(__pyx_t_4);
3318     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
3319     __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 96, __pyx_L1_error)
3320     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
3321     __pyx_t_11 = __pyx_t_3;
3322     __pyx_L11_bool_binop_done:;
3323     if (__pyx_t_11) {
3324 
3325       /* "Cython/Compiler/Visitor.py":97
3326  *                 continue
3327  *             if attr.startswith('_') or attr.endswith('_'):
3328  *                 continue             # <<<<<<<<<<<<<<
3329  *             try:
3330  *                 value = getattr(node, attr)
3331  */
3332       goto __pyx_L7_continue;
3333 
3334       /* "Cython/Compiler/Visitor.py":96
3335  *             if attr in ignored:
3336  *                 continue
3337  *             if attr.startswith('_') or attr.endswith('_'):             # <<<<<<<<<<<<<<
3338  *                 continue
3339  *             try:
3340  */
3341     }
3342 
3343     /* "Cython/Compiler/Visitor.py":98
3344  *             if attr.startswith('_') or attr.endswith('_'):
3345  *                 continue
3346  *             try:             # <<<<<<<<<<<<<<
3347  *                 value = getattr(node, attr)
3348  *             except AttributeError:
3349  */
3350     {
3351       __Pyx_PyThreadState_declare
3352       __Pyx_PyThreadState_assign
3353       __Pyx_ExceptionSave(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
3354       __Pyx_XGOTREF(__pyx_t_12);
3355       __Pyx_XGOTREF(__pyx_t_13);
3356       __Pyx_XGOTREF(__pyx_t_14);
3357       /*try:*/ {
3358 
3359         /* "Cython/Compiler/Visitor.py":99
3360  *                 continue
3361  *             try:
3362  *                 value = getattr(node, attr)             # <<<<<<<<<<<<<<
3363  *             except AttributeError:
3364  *                 continue
3365  */
3366         __pyx_t_4 = __Pyx_GetAttr(__pyx_v_node, __pyx_v_attr); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 99, __pyx_L13_error)
3367         __Pyx_GOTREF(__pyx_t_4);
3368         __Pyx_XDECREF_SET(__pyx_v_value, __pyx_t_4);
3369         __pyx_t_4 = 0;
3370 
3371         /* "Cython/Compiler/Visitor.py":98
3372  *             if attr.startswith('_') or attr.endswith('_'):
3373  *                 continue
3374  *             try:             # <<<<<<<<<<<<<<
3375  *                 value = getattr(node, attr)
3376  *             except AttributeError:
3377  */
3378       }
3379       __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
3380       __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
3381       __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
3382       goto __pyx_L20_try_end;
3383       __pyx_L13_error:;
3384       __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
3385       __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
3386       __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
3387       __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
3388 
3389       /* "Cython/Compiler/Visitor.py":100
3390  *             try:
3391  *                 value = getattr(node, attr)
3392  *             except AttributeError:             # <<<<<<<<<<<<<<
3393  *                 continue
3394  *             if value is None or value == 0:
3395  */
3396       __pyx_t_15 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_AttributeError);
3397       if (__pyx_t_15) {
3398         __Pyx_AddTraceback("Cython.Compiler.Visitor.TreeVisitor.dump_node", __pyx_clineno, __pyx_lineno, __pyx_filename);
3399         if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_1, &__pyx_t_5) < 0) __PYX_ERR(0, 100, __pyx_L15_except_error)
3400         __Pyx_GOTREF(__pyx_t_4);
3401         __Pyx_GOTREF(__pyx_t_1);
3402         __Pyx_GOTREF(__pyx_t_5);
3403 
3404         /* "Cython/Compiler/Visitor.py":101
3405  *                 value = getattr(node, attr)
3406  *             except AttributeError:
3407  *                 continue             # <<<<<<<<<<<<<<
3408  *             if value is None or value == 0:
3409  *                 continue
3410  */
3411         goto __pyx_L22_except_continue;
3412         __pyx_L22_except_continue:;
3413         __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
3414         __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
3415         __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
3416         goto __pyx_L19_try_continue;
3417       }
3418       goto __pyx_L15_except_error;
3419       __pyx_L15_except_error:;
3420 
3421       /* "Cython/Compiler/Visitor.py":98
3422  *             if attr.startswith('_') or attr.endswith('_'):
3423  *                 continue
3424  *             try:             # <<<<<<<<<<<<<<
3425  *                 value = getattr(node, attr)
3426  *             except AttributeError:
3427  */
3428       __Pyx_XGIVEREF(__pyx_t_12);
3429       __Pyx_XGIVEREF(__pyx_t_13);
3430       __Pyx_XGIVEREF(__pyx_t_14);
3431       __Pyx_ExceptionReset(__pyx_t_12, __pyx_t_13, __pyx_t_14);
3432       goto __pyx_L1_error;
3433       __pyx_L19_try_continue:;
3434       __Pyx_XGIVEREF(__pyx_t_12);
3435       __Pyx_XGIVEREF(__pyx_t_13);
3436       __Pyx_XGIVEREF(__pyx_t_14);
3437       __Pyx_ExceptionReset(__pyx_t_12, __pyx_t_13, __pyx_t_14);
3438       goto __pyx_L7_continue;
3439       __pyx_L20_try_end:;
3440     }
3441 
3442     /* "Cython/Compiler/Visitor.py":102
3443  *             except AttributeError:
3444  *                 continue
3445  *             if value is None or value == 0:             # <<<<<<<<<<<<<<
3446  *                 continue
3447  *             elif isinstance(value, list):
3448  */
3449     __pyx_t_3 = (__pyx_v_value == Py_None);
3450     __pyx_t_16 = (__pyx_t_3 != 0);
3451     if (!__pyx_t_16) {
3452     } else {
3453       __pyx_t_11 = __pyx_t_16;
3454       goto __pyx_L24_bool_binop_done;
3455     }
3456     __pyx_t_5 = __Pyx_PyInt_EqObjC(__pyx_v_value, __pyx_int_0, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 102, __pyx_L1_error)
3457     __Pyx_GOTREF(__pyx_t_5);
3458     __pyx_t_16 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_16 < 0)) __PYX_ERR(0, 102, __pyx_L1_error)
3459     __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
3460     __pyx_t_11 = __pyx_t_16;
3461     __pyx_L24_bool_binop_done:;
3462     if (__pyx_t_11) {
3463 
3464       /* "Cython/Compiler/Visitor.py":103
3465  *                 continue
3466  *             if value is None or value == 0:
3467  *                 continue             # <<<<<<<<<<<<<<
3468  *             elif isinstance(value, list):
3469  *                 value = u'[...]/%d' % len(value)
3470  */
3471       goto __pyx_L7_continue;
3472 
3473       /* "Cython/Compiler/Visitor.py":102
3474  *             except AttributeError:
3475  *                 continue
3476  *             if value is None or value == 0:             # <<<<<<<<<<<<<<
3477  *                 continue
3478  *             elif isinstance(value, list):
3479  */
3480     }
3481 
3482     /* "Cython/Compiler/Visitor.py":104
3483  *             if value is None or value == 0:
3484  *                 continue
3485  *             elif isinstance(value, list):             # <<<<<<<<<<<<<<
3486  *                 value = u'[...]/%d' % len(value)
3487  *             elif not isinstance(value, _PRINTABLE):
3488  */
3489     __pyx_t_11 = PyList_Check(__pyx_v_value);
3490     __pyx_t_16 = (__pyx_t_11 != 0);
3491     if (__pyx_t_16) {
3492 
3493       /* "Cython/Compiler/Visitor.py":105
3494  *                 continue
3495  *             elif isinstance(value, list):
3496  *                 value = u'[...]/%d' % len(value)             # <<<<<<<<<<<<<<
3497  *             elif not isinstance(value, _PRINTABLE):
3498  *                 continue
3499  */
3500       __pyx_t_17 = PyObject_Length(__pyx_v_value); if (unlikely(__pyx_t_17 == ((Py_ssize_t)-1))) __PYX_ERR(0, 105, __pyx_L1_error)
3501       __pyx_t_5 = PyInt_FromSsize_t(__pyx_t_17); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 105, __pyx_L1_error)
3502       __Pyx_GOTREF(__pyx_t_5);
3503       __pyx_t_1 = PyUnicode_Format(__pyx_kp_u_d, __pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 105, __pyx_L1_error)
3504       __Pyx_GOTREF(__pyx_t_1);
3505       __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
3506       __Pyx_DECREF_SET(__pyx_v_value, __pyx_t_1);
3507       __pyx_t_1 = 0;
3508 
3509       /* "Cython/Compiler/Visitor.py":104
3510  *             if value is None or value == 0:
3511  *                 continue
3512  *             elif isinstance(value, list):             # <<<<<<<<<<<<<<
3513  *                 value = u'[...]/%d' % len(value)
3514  *             elif not isinstance(value, _PRINTABLE):
3515  */
3516       goto __pyx_L23;
3517     }
3518 
3519     /* "Cython/Compiler/Visitor.py":106
3520  *             elif isinstance(value, list):
3521  *                 value = u'[...]/%d' % len(value)
3522  *             elif not isinstance(value, _PRINTABLE):             # <<<<<<<<<<<<<<
3523  *                 continue
3524  *             else:
3525  */
3526     __pyx_t_1 = __pyx_v_6Cython_8Compiler_7Visitor__PRINTABLE;
3527     __Pyx_INCREF(__pyx_t_1);
3528     __pyx_t_16 = PyObject_IsInstance(__pyx_v_value, __pyx_t_1); if (unlikely(__pyx_t_16 == ((int)-1))) __PYX_ERR(0, 106, __pyx_L1_error)
3529     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
3530     __pyx_t_11 = ((!(__pyx_t_16 != 0)) != 0);
3531     if (__pyx_t_11) {
3532 
3533       /* "Cython/Compiler/Visitor.py":107
3534  *                 value = u'[...]/%d' % len(value)
3535  *             elif not isinstance(value, _PRINTABLE):
3536  *                 continue             # <<<<<<<<<<<<<<
3537  *             else:
3538  *                 value = repr(value)
3539  */
3540       goto __pyx_L7_continue;
3541 
3542       /* "Cython/Compiler/Visitor.py":106
3543  *             elif isinstance(value, list):
3544  *                 value = u'[...]/%d' % len(value)
3545  *             elif not isinstance(value, _PRINTABLE):             # <<<<<<<<<<<<<<
3546  *                 continue
3547  *             else:
3548  */
3549     }
3550 
3551     /* "Cython/Compiler/Visitor.py":109
3552  *                 continue
3553  *             else:
3554  *                 value = repr(value)             # <<<<<<<<<<<<<<
3555  *             values.append(u'%s = %s' % (attr, value))
3556  *         return u'%s(%s)' % (node.__class__.__name__, u',\n    '.join(values))
3557  */
3558     /*else*/ {
3559       __pyx_t_1 = PyObject_Repr(__pyx_v_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 109, __pyx_L1_error)
3560       __Pyx_GOTREF(__pyx_t_1);
3561       __Pyx_DECREF_SET(__pyx_v_value, __pyx_t_1);
3562       __pyx_t_1 = 0;
3563     }
3564     __pyx_L23:;
3565 
3566     /* "Cython/Compiler/Visitor.py":110
3567  *             else:
3568  *                 value = repr(value)
3569  *             values.append(u'%s = %s' % (attr, value))             # <<<<<<<<<<<<<<
3570  *         return u'%s(%s)' % (node.__class__.__name__, u',\n    '.join(values))
3571  *
3572  */
3573     __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 110, __pyx_L1_error)
3574     __Pyx_GOTREF(__pyx_t_1);
3575     __pyx_t_17 = 0;
3576     __pyx_t_8 = 127;
3577     __pyx_t_5 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Unicode(__pyx_v_attr), __pyx_empty_unicode); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 110, __pyx_L1_error)
3578     __Pyx_GOTREF(__pyx_t_5);
3579     __pyx_t_8 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5) > __pyx_t_8) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5) : __pyx_t_8;
3580     __pyx_t_17 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_5);
3581     __Pyx_GIVEREF(__pyx_t_5);
3582     PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_5);
3583     __pyx_t_5 = 0;
3584     __Pyx_INCREF(__pyx_kp_u__3);
3585     __pyx_t_17 += 3;
3586     __Pyx_GIVEREF(__pyx_kp_u__3);
3587     PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_kp_u__3);
3588     __pyx_t_5 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Unicode(__pyx_v_value), __pyx_empty_unicode); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 110, __pyx_L1_error)
3589     __Pyx_GOTREF(__pyx_t_5);
3590     __pyx_t_8 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5) > __pyx_t_8) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5) : __pyx_t_8;
3591     __pyx_t_17 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_5);
3592     __Pyx_GIVEREF(__pyx_t_5);
3593     PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_5);
3594     __pyx_t_5 = 0;
3595     __pyx_t_5 = __Pyx_PyUnicode_Join(__pyx_t_1, 3, __pyx_t_17, __pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 110, __pyx_L1_error)
3596     __Pyx_GOTREF(__pyx_t_5);
3597     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
3598     __pyx_t_9 = __Pyx_PyList_Append(__pyx_v_values, __pyx_t_5); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(0, 110, __pyx_L1_error)
3599     __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
3600 
3601     /* "Cython/Compiler/Visitor.py":93
3602  *             values.append(u'%s:%s:%s' % (source, pos[1], pos[2]))
3603  *         attribute_names = dir(node)
3604  *         for attr in attribute_names:             # <<<<<<<<<<<<<<
3605  *             if attr in ignored:
3606  *                 continue
3607  */
3608     __pyx_L7_continue:;
3609   }
3610   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
3611 
3612   /* "Cython/Compiler/Visitor.py":111
3613  *                 value = repr(value)
3614  *             values.append(u'%s = %s' % (attr, value))
3615  *         return u'%s(%s)' % (node.__class__.__name__, u',\n    '.join(values))             # <<<<<<<<<<<<<<
3616  *
3617  *     def _find_node_path(self, stacktrace):
3618  */
3619   __Pyx_XDECREF(__pyx_r);
3620   __pyx_t_2 = PyTuple_New(4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 111, __pyx_L1_error)
3621   __Pyx_GOTREF(__pyx_t_2);
3622   __pyx_t_7 = 0;
3623   __pyx_t_8 = 127;
3624   __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_class); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 111, __pyx_L1_error)
3625   __Pyx_GOTREF(__pyx_t_5);
3626   __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 111, __pyx_L1_error)
3627   __Pyx_GOTREF(__pyx_t_1);
3628   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
3629   __pyx_t_5 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Unicode(__pyx_t_1), __pyx_empty_unicode); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 111, __pyx_L1_error)
3630   __Pyx_GOTREF(__pyx_t_5);
3631   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
3632   __pyx_t_8 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5) > __pyx_t_8) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5) : __pyx_t_8;
3633   __pyx_t_7 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_5);
3634   __Pyx_GIVEREF(__pyx_t_5);
3635   PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_5);
3636   __pyx_t_5 = 0;
3637   __Pyx_INCREF(__pyx_kp_u__4);
3638   __pyx_t_7 += 1;
3639   __Pyx_GIVEREF(__pyx_kp_u__4);
3640   PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_kp_u__4);
3641   __pyx_t_5 = PyUnicode_Join(__pyx_kp_u__5, __pyx_v_values); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 111, __pyx_L1_error)
3642   __Pyx_GOTREF(__pyx_t_5);
3643   __pyx_t_8 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5) > __pyx_t_8) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5) : __pyx_t_8;
3644   __pyx_t_7 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_5);
3645   __Pyx_GIVEREF(__pyx_t_5);
3646   PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_t_5);
3647   __pyx_t_5 = 0;
3648   __Pyx_INCREF(__pyx_kp_u__6);
3649   __pyx_t_7 += 1;
3650   __Pyx_GIVEREF(__pyx_kp_u__6);
3651   PyTuple_SET_ITEM(__pyx_t_2, 3, __pyx_kp_u__6);
3652   __pyx_t_5 = __Pyx_PyUnicode_Join(__pyx_t_2, 4, __pyx_t_7, __pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 111, __pyx_L1_error)
3653   __Pyx_GOTREF(__pyx_t_5);
3654   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
3655   __pyx_r = __pyx_t_5;
3656   __pyx_t_5 = 0;
3657   goto __pyx_L0;
3658 
3659   /* "Cython/Compiler/Visitor.py":81
3660  *         self.access_path = []
3661  *
3662  *     def dump_node(self, node):             # <<<<<<<<<<<<<<
3663  *         ignored = list(node.child_attrs or []) + [
3664  *             u'child_attrs', u'pos', u'gil_message', u'cpp_message', u'subexprs']
3665  */
3666 
3667   /* function exit code */
3668   __pyx_L1_error:;
3669   __Pyx_XDECREF(__pyx_t_1);
3670   __Pyx_XDECREF(__pyx_t_2);
3671   __Pyx_XDECREF(__pyx_t_4);
3672   __Pyx_XDECREF(__pyx_t_5);
3673   __Pyx_XDECREF(__pyx_t_6);
3674   __Pyx_AddTraceback("Cython.Compiler.Visitor.TreeVisitor.dump_node", __pyx_clineno, __pyx_lineno, __pyx_filename);
3675   __pyx_r = NULL;
3676   __pyx_L0:;
3677   __Pyx_XDECREF(__pyx_v_ignored);
3678   __Pyx_XDECREF(__pyx_v_values);
3679   __Pyx_XDECREF(__pyx_v_pos);
3680   __Pyx_XDECREF(__pyx_v_source);
3681   __Pyx_XDECREF(__pyx_v_os);
3682   __Pyx_XDECREF(__pyx_v_attribute_names);
3683   __Pyx_XDECREF(__pyx_v_attr);
3684   __Pyx_XDECREF(__pyx_v_value);
3685   __Pyx_XGIVEREF(__pyx_r);
3686   __Pyx_RefNannyFinishContext();
3687   return __pyx_r;
3688 }
3689 
3690 /* "Cython/Compiler/Visitor.py":113
3691  *         return u'%s(%s)' % (node.__class__.__name__, u',\n    '.join(values))
3692  *
3693  *     def _find_node_path(self, stacktrace):             # <<<<<<<<<<<<<<
3694  *         import os.path
3695  *         last_traceback = stacktrace
3696  */
3697 
3698 /* Python wrapper */
3699 static PyObject *__pyx_pw_6Cython_8Compiler_7Visitor_11TreeVisitor_5_find_node_path(PyObject *__pyx_v_self, PyObject *__pyx_v_stacktrace); /*proto*/
3700 static PyMethodDef __pyx_mdef_6Cython_8Compiler_7Visitor_11TreeVisitor_5_find_node_path = {"_find_node_path", (PyCFunction)__pyx_pw_6Cython_8Compiler_7Visitor_11TreeVisitor_5_find_node_path, METH_O, 0};
__pyx_pw_6Cython_8Compiler_7Visitor_11TreeVisitor_5_find_node_path(PyObject * __pyx_v_self,PyObject * __pyx_v_stacktrace)3701 static PyObject *__pyx_pw_6Cython_8Compiler_7Visitor_11TreeVisitor_5_find_node_path(PyObject *__pyx_v_self, PyObject *__pyx_v_stacktrace) {
3702   PyObject *__pyx_r = 0;
3703   __Pyx_RefNannyDeclarations
3704   __Pyx_RefNannySetupContext("_find_node_path (wrapper)", 0);
3705   __pyx_r = __pyx_pf_6Cython_8Compiler_7Visitor_11TreeVisitor_4_find_node_path(((struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor *)__pyx_v_self), ((PyObject *)__pyx_v_stacktrace));
3706 
3707   /* function exit code */
3708   __Pyx_RefNannyFinishContext();
3709   return __pyx_r;
3710 }
3711 
__pyx_pf_6Cython_8Compiler_7Visitor_11TreeVisitor_4_find_node_path(CYTHON_UNUSED struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor * __pyx_v_self,PyObject * __pyx_v_stacktrace)3712 static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_11TreeVisitor_4_find_node_path(CYTHON_UNUSED struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor *__pyx_v_self, PyObject *__pyx_v_stacktrace) {
3713   PyObject *__pyx_v_os = NULL;
3714   PyObject *__pyx_v_last_traceback = NULL;
3715   PyObject *__pyx_v_nodes = NULL;
3716   PyObject *__pyx_v_frame = NULL;
3717   PyObject *__pyx_v_node = NULL;
3718   PyObject *__pyx_v_code = NULL;
3719   PyObject *__pyx_v_method_name = NULL;
3720   PyObject *__pyx_v_pos = NULL;
3721   PyObject *__pyx_r = NULL;
3722   __Pyx_RefNannyDeclarations
3723   PyObject *__pyx_t_1 = NULL;
3724   int __pyx_t_2;
3725   int __pyx_t_3;
3726   PyObject *__pyx_t_4 = NULL;
3727   PyObject *__pyx_t_5 = NULL;
3728   PyObject *__pyx_t_6 = NULL;
3729   int __pyx_t_7;
3730   int __pyx_lineno = 0;
3731   const char *__pyx_filename = NULL;
3732   int __pyx_clineno = 0;
3733   __Pyx_RefNannySetupContext("_find_node_path", 0);
3734   __Pyx_INCREF(__pyx_v_stacktrace);
3735 
3736   /* "Cython/Compiler/Visitor.py":114
3737  *
3738  *     def _find_node_path(self, stacktrace):
3739  *         import os.path             # <<<<<<<<<<<<<<
3740  *         last_traceback = stacktrace
3741  *         nodes = []
3742  */
3743   __pyx_t_1 = __Pyx_Import(__pyx_n_s_os_path, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 114, __pyx_L1_error)
3744   __Pyx_GOTREF(__pyx_t_1);
3745   __pyx_v_os = __pyx_t_1;
3746   __pyx_t_1 = 0;
3747 
3748   /* "Cython/Compiler/Visitor.py":115
3749  *     def _find_node_path(self, stacktrace):
3750  *         import os.path
3751  *         last_traceback = stacktrace             # <<<<<<<<<<<<<<
3752  *         nodes = []
3753  *         while hasattr(stacktrace, 'tb_frame'):
3754  */
3755   __Pyx_INCREF(__pyx_v_stacktrace);
3756   __pyx_v_last_traceback = __pyx_v_stacktrace;
3757 
3758   /* "Cython/Compiler/Visitor.py":116
3759  *         import os.path
3760  *         last_traceback = stacktrace
3761  *         nodes = []             # <<<<<<<<<<<<<<
3762  *         while hasattr(stacktrace, 'tb_frame'):
3763  *             frame = stacktrace.tb_frame
3764  */
3765   __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 116, __pyx_L1_error)
3766   __Pyx_GOTREF(__pyx_t_1);
3767   __pyx_v_nodes = ((PyObject*)__pyx_t_1);
3768   __pyx_t_1 = 0;
3769 
3770   /* "Cython/Compiler/Visitor.py":117
3771  *         last_traceback = stacktrace
3772  *         nodes = []
3773  *         while hasattr(stacktrace, 'tb_frame'):             # <<<<<<<<<<<<<<
3774  *             frame = stacktrace.tb_frame
3775  *             node = frame.f_locals.get(u'self')
3776  */
3777   while (1) {
3778     __pyx_t_2 = __Pyx_HasAttr(__pyx_v_stacktrace, __pyx_n_u_tb_frame); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 117, __pyx_L1_error)
3779     __pyx_t_3 = (__pyx_t_2 != 0);
3780     if (!__pyx_t_3) break;
3781 
3782     /* "Cython/Compiler/Visitor.py":118
3783  *         nodes = []
3784  *         while hasattr(stacktrace, 'tb_frame'):
3785  *             frame = stacktrace.tb_frame             # <<<<<<<<<<<<<<
3786  *             node = frame.f_locals.get(u'self')
3787  *             if isinstance(node, Nodes.Node):
3788  */
3789     __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_stacktrace, __pyx_n_s_tb_frame); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 118, __pyx_L1_error)
3790     __Pyx_GOTREF(__pyx_t_1);
3791     __Pyx_XDECREF_SET(__pyx_v_frame, __pyx_t_1);
3792     __pyx_t_1 = 0;
3793 
3794     /* "Cython/Compiler/Visitor.py":119
3795  *         while hasattr(stacktrace, 'tb_frame'):
3796  *             frame = stacktrace.tb_frame
3797  *             node = frame.f_locals.get(u'self')             # <<<<<<<<<<<<<<
3798  *             if isinstance(node, Nodes.Node):
3799  *                 code = frame.f_code
3800  */
3801     __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_locals); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 119, __pyx_L1_error)
3802     __Pyx_GOTREF(__pyx_t_4);
3803     __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_get); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 119, __pyx_L1_error)
3804     __Pyx_GOTREF(__pyx_t_5);
3805     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
3806     __pyx_t_4 = NULL;
3807     if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
3808       __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5);
3809       if (likely(__pyx_t_4)) {
3810         PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
3811         __Pyx_INCREF(__pyx_t_4);
3812         __Pyx_INCREF(function);
3813         __Pyx_DECREF_SET(__pyx_t_5, function);
3814       }
3815     }
3816     __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_4, __pyx_n_u_self) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_n_u_self);
3817     __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
3818     if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 119, __pyx_L1_error)
3819     __Pyx_GOTREF(__pyx_t_1);
3820     __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
3821     __Pyx_XDECREF_SET(__pyx_v_node, __pyx_t_1);
3822     __pyx_t_1 = 0;
3823 
3824     /* "Cython/Compiler/Visitor.py":120
3825  *             frame = stacktrace.tb_frame
3826  *             node = frame.f_locals.get(u'self')
3827  *             if isinstance(node, Nodes.Node):             # <<<<<<<<<<<<<<
3828  *                 code = frame.f_code
3829  *                 method_name = code.co_name
3830  */
3831     __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_Nodes); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 120, __pyx_L1_error)
3832     __Pyx_GOTREF(__pyx_t_1);
3833     __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_Node); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 120, __pyx_L1_error)
3834     __Pyx_GOTREF(__pyx_t_5);
3835     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
3836     __pyx_t_3 = PyObject_IsInstance(__pyx_v_node, __pyx_t_5); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(0, 120, __pyx_L1_error)
3837     __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
3838     __pyx_t_2 = (__pyx_t_3 != 0);
3839     if (__pyx_t_2) {
3840 
3841       /* "Cython/Compiler/Visitor.py":121
3842  *             node = frame.f_locals.get(u'self')
3843  *             if isinstance(node, Nodes.Node):
3844  *                 code = frame.f_code             # <<<<<<<<<<<<<<
3845  *                 method_name = code.co_name
3846  *                 pos = (os.path.basename(code.co_filename),
3847  */
3848       __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_code); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 121, __pyx_L1_error)
3849       __Pyx_GOTREF(__pyx_t_5);
3850       __Pyx_XDECREF_SET(__pyx_v_code, __pyx_t_5);
3851       __pyx_t_5 = 0;
3852 
3853       /* "Cython/Compiler/Visitor.py":122
3854  *             if isinstance(node, Nodes.Node):
3855  *                 code = frame.f_code
3856  *                 method_name = code.co_name             # <<<<<<<<<<<<<<
3857  *                 pos = (os.path.basename(code.co_filename),
3858  *                        frame.f_lineno)
3859  */
3860       __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_code, __pyx_n_s_co_name); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 122, __pyx_L1_error)
3861       __Pyx_GOTREF(__pyx_t_5);
3862       __Pyx_XDECREF_SET(__pyx_v_method_name, __pyx_t_5);
3863       __pyx_t_5 = 0;
3864 
3865       /* "Cython/Compiler/Visitor.py":123
3866  *                 code = frame.f_code
3867  *                 method_name = code.co_name
3868  *                 pos = (os.path.basename(code.co_filename),             # <<<<<<<<<<<<<<
3869  *                        frame.f_lineno)
3870  *                 nodes.append((node, method_name, pos))
3871  */
3872       __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_os, __pyx_n_s_path); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 123, __pyx_L1_error)
3873       __Pyx_GOTREF(__pyx_t_1);
3874       __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_basename); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 123, __pyx_L1_error)
3875       __Pyx_GOTREF(__pyx_t_4);
3876       __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
3877       __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_code, __pyx_n_s_co_filename); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 123, __pyx_L1_error)
3878       __Pyx_GOTREF(__pyx_t_1);
3879       __pyx_t_6 = NULL;
3880       if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
3881         __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4);
3882         if (likely(__pyx_t_6)) {
3883           PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
3884           __Pyx_INCREF(__pyx_t_6);
3885           __Pyx_INCREF(function);
3886           __Pyx_DECREF_SET(__pyx_t_4, function);
3887         }
3888       }
3889       __pyx_t_5 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_6, __pyx_t_1) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_1);
3890       __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
3891       __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
3892       if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 123, __pyx_L1_error)
3893       __Pyx_GOTREF(__pyx_t_5);
3894       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
3895 
3896       /* "Cython/Compiler/Visitor.py":124
3897  *                 method_name = code.co_name
3898  *                 pos = (os.path.basename(code.co_filename),
3899  *                        frame.f_lineno)             # <<<<<<<<<<<<<<
3900  *                 nodes.append((node, method_name, pos))
3901  *                 last_traceback = stacktrace
3902  */
3903       __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_lineno); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 124, __pyx_L1_error)
3904       __Pyx_GOTREF(__pyx_t_4);
3905 
3906       /* "Cython/Compiler/Visitor.py":123
3907  *                 code = frame.f_code
3908  *                 method_name = code.co_name
3909  *                 pos = (os.path.basename(code.co_filename),             # <<<<<<<<<<<<<<
3910  *                        frame.f_lineno)
3911  *                 nodes.append((node, method_name, pos))
3912  */
3913       __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 123, __pyx_L1_error)
3914       __Pyx_GOTREF(__pyx_t_1);
3915       __Pyx_GIVEREF(__pyx_t_5);
3916       PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_5);
3917       __Pyx_GIVEREF(__pyx_t_4);
3918       PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_4);
3919       __pyx_t_5 = 0;
3920       __pyx_t_4 = 0;
3921       __Pyx_XDECREF_SET(__pyx_v_pos, ((PyObject*)__pyx_t_1));
3922       __pyx_t_1 = 0;
3923 
3924       /* "Cython/Compiler/Visitor.py":125
3925  *                 pos = (os.path.basename(code.co_filename),
3926  *                        frame.f_lineno)
3927  *                 nodes.append((node, method_name, pos))             # <<<<<<<<<<<<<<
3928  *                 last_traceback = stacktrace
3929  *             stacktrace = stacktrace.tb_next
3930  */
3931       __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 125, __pyx_L1_error)
3932       __Pyx_GOTREF(__pyx_t_1);
3933       __Pyx_INCREF(__pyx_v_node);
3934       __Pyx_GIVEREF(__pyx_v_node);
3935       PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_node);
3936       __Pyx_INCREF(__pyx_v_method_name);
3937       __Pyx_GIVEREF(__pyx_v_method_name);
3938       PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_method_name);
3939       __Pyx_INCREF(__pyx_v_pos);
3940       __Pyx_GIVEREF(__pyx_v_pos);
3941       PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_pos);
3942       __pyx_t_7 = __Pyx_PyList_Append(__pyx_v_nodes, __pyx_t_1); if (unlikely(__pyx_t_7 == ((int)-1))) __PYX_ERR(0, 125, __pyx_L1_error)
3943       __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
3944 
3945       /* "Cython/Compiler/Visitor.py":126
3946  *                        frame.f_lineno)
3947  *                 nodes.append((node, method_name, pos))
3948  *                 last_traceback = stacktrace             # <<<<<<<<<<<<<<
3949  *             stacktrace = stacktrace.tb_next
3950  *         return (last_traceback, nodes)
3951  */
3952       __Pyx_INCREF(__pyx_v_stacktrace);
3953       __Pyx_DECREF_SET(__pyx_v_last_traceback, __pyx_v_stacktrace);
3954 
3955       /* "Cython/Compiler/Visitor.py":120
3956  *             frame = stacktrace.tb_frame
3957  *             node = frame.f_locals.get(u'self')
3958  *             if isinstance(node, Nodes.Node):             # <<<<<<<<<<<<<<
3959  *                 code = frame.f_code
3960  *                 method_name = code.co_name
3961  */
3962     }
3963 
3964     /* "Cython/Compiler/Visitor.py":127
3965  *                 nodes.append((node, method_name, pos))
3966  *                 last_traceback = stacktrace
3967  *             stacktrace = stacktrace.tb_next             # <<<<<<<<<<<<<<
3968  *         return (last_traceback, nodes)
3969  *
3970  */
3971     __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_stacktrace, __pyx_n_s_tb_next); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 127, __pyx_L1_error)
3972     __Pyx_GOTREF(__pyx_t_1);
3973     __Pyx_DECREF_SET(__pyx_v_stacktrace, __pyx_t_1);
3974     __pyx_t_1 = 0;
3975   }
3976 
3977   /* "Cython/Compiler/Visitor.py":128
3978  *                 last_traceback = stacktrace
3979  *             stacktrace = stacktrace.tb_next
3980  *         return (last_traceback, nodes)             # <<<<<<<<<<<<<<
3981  *
3982  *     def _raise_compiler_error(self, child, e):
3983  */
3984   __Pyx_XDECREF(__pyx_r);
3985   __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 128, __pyx_L1_error)
3986   __Pyx_GOTREF(__pyx_t_1);
3987   __Pyx_INCREF(__pyx_v_last_traceback);
3988   __Pyx_GIVEREF(__pyx_v_last_traceback);
3989   PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_last_traceback);
3990   __Pyx_INCREF(__pyx_v_nodes);
3991   __Pyx_GIVEREF(__pyx_v_nodes);
3992   PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_nodes);
3993   __pyx_r = __pyx_t_1;
3994   __pyx_t_1 = 0;
3995   goto __pyx_L0;
3996 
3997   /* "Cython/Compiler/Visitor.py":113
3998  *         return u'%s(%s)' % (node.__class__.__name__, u',\n    '.join(values))
3999  *
4000  *     def _find_node_path(self, stacktrace):             # <<<<<<<<<<<<<<
4001  *         import os.path
4002  *         last_traceback = stacktrace
4003  */
4004 
4005   /* function exit code */
4006   __pyx_L1_error:;
4007   __Pyx_XDECREF(__pyx_t_1);
4008   __Pyx_XDECREF(__pyx_t_4);
4009   __Pyx_XDECREF(__pyx_t_5);
4010   __Pyx_XDECREF(__pyx_t_6);
4011   __Pyx_AddTraceback("Cython.Compiler.Visitor.TreeVisitor._find_node_path", __pyx_clineno, __pyx_lineno, __pyx_filename);
4012   __pyx_r = NULL;
4013   __pyx_L0:;
4014   __Pyx_XDECREF(__pyx_v_os);
4015   __Pyx_XDECREF(__pyx_v_last_traceback);
4016   __Pyx_XDECREF(__pyx_v_nodes);
4017   __Pyx_XDECREF(__pyx_v_frame);
4018   __Pyx_XDECREF(__pyx_v_node);
4019   __Pyx_XDECREF(__pyx_v_code);
4020   __Pyx_XDECREF(__pyx_v_method_name);
4021   __Pyx_XDECREF(__pyx_v_pos);
4022   __Pyx_XDECREF(__pyx_v_stacktrace);
4023   __Pyx_XGIVEREF(__pyx_r);
4024   __Pyx_RefNannyFinishContext();
4025   return __pyx_r;
4026 }
4027 
4028 /* "Cython/Compiler/Visitor.py":130
4029  *         return (last_traceback, nodes)
4030  *
4031  *     def _raise_compiler_error(self, child, e):             # <<<<<<<<<<<<<<
4032  *         trace = ['']
4033  *         for parent, attribute, index in self.access_path:
4034  */
4035 
__pyx_f_6Cython_8Compiler_7Visitor_11TreeVisitor__raise_compiler_error(struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor * __pyx_v_self,PyObject * __pyx_v_child,PyObject * __pyx_v_e)4036 static PyObject *__pyx_f_6Cython_8Compiler_7Visitor_11TreeVisitor__raise_compiler_error(struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor *__pyx_v_self, PyObject *__pyx_v_child, PyObject *__pyx_v_e) {
4037   PyObject *__pyx_v_trace = NULL;
4038   PyObject *__pyx_v_parent = NULL;
4039   PyObject *__pyx_v_attribute = NULL;
4040   PyObject *__pyx_v_index = NULL;
4041   PyObject *__pyx_v_node = NULL;
4042   PyObject *__pyx_v_stacktrace = NULL;
4043   PyObject *__pyx_v_called_nodes = NULL;
4044   PyObject *__pyx_v_last_node = NULL;
4045   PyObject *__pyx_v_method_name = NULL;
4046   PyObject *__pyx_v_pos = NULL;
4047   PyObject *__pyx_r = NULL;
4048   __Pyx_RefNannyDeclarations
4049   PyObject *__pyx_t_1 = NULL;
4050   Py_ssize_t __pyx_t_2;
4051   PyObject *__pyx_t_3 = NULL;
4052   PyObject *__pyx_t_4 = NULL;
4053   PyObject *__pyx_t_5 = NULL;
4054   PyObject *__pyx_t_6 = NULL;
4055   PyObject *__pyx_t_7 = NULL;
4056   PyObject *(*__pyx_t_8)(PyObject *);
4057   int __pyx_t_9;
4058   int __pyx_t_10;
4059   Py_ssize_t __pyx_t_11;
4060   Py_UCS4 __pyx_t_12;
4061   int __pyx_t_13;
4062   PyObject *(*__pyx_t_14)(PyObject *);
4063   int __pyx_t_15;
4064   PyObject *__pyx_t_16 = NULL;
4065   int __pyx_lineno = 0;
4066   const char *__pyx_filename = NULL;
4067   int __pyx_clineno = 0;
4068   __Pyx_RefNannySetupContext("_raise_compiler_error", 0);
4069 
4070   /* "Cython/Compiler/Visitor.py":131
4071  *
4072  *     def _raise_compiler_error(self, child, e):
4073  *         trace = ['']             # <<<<<<<<<<<<<<
4074  *         for parent, attribute, index in self.access_path:
4075  *             node = getattr(parent, attribute)
4076  */
4077   __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 131, __pyx_L1_error)
4078   __Pyx_GOTREF(__pyx_t_1);
4079   __Pyx_INCREF(__pyx_kp_u__7);
4080   __Pyx_GIVEREF(__pyx_kp_u__7);
4081   PyList_SET_ITEM(__pyx_t_1, 0, __pyx_kp_u__7);
4082   __pyx_v_trace = ((PyObject*)__pyx_t_1);
4083   __pyx_t_1 = 0;
4084 
4085   /* "Cython/Compiler/Visitor.py":132
4086  *     def _raise_compiler_error(self, child, e):
4087  *         trace = ['']
4088  *         for parent, attribute, index in self.access_path:             # <<<<<<<<<<<<<<
4089  *             node = getattr(parent, attribute)
4090  *             if index is None:
4091  */
4092   if (unlikely(__pyx_v_self->access_path == Py_None)) {
4093     PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
4094     __PYX_ERR(0, 132, __pyx_L1_error)
4095   }
4096   __pyx_t_1 = __pyx_v_self->access_path; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0;
4097   for (;;) {
4098     if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break;
4099     #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
4100     __pyx_t_3 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_3); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 132, __pyx_L1_error)
4101     #else
4102     __pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 132, __pyx_L1_error)
4103     __Pyx_GOTREF(__pyx_t_3);
4104     #endif
4105     if ((likely(PyTuple_CheckExact(__pyx_t_3))) || (PyList_CheckExact(__pyx_t_3))) {
4106       PyObject* sequence = __pyx_t_3;
4107       Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
4108       if (unlikely(size != 3)) {
4109         if (size > 3) __Pyx_RaiseTooManyValuesError(3);
4110         else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
4111         __PYX_ERR(0, 132, __pyx_L1_error)
4112       }
4113       #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
4114       if (likely(PyTuple_CheckExact(sequence))) {
4115         __pyx_t_4 = PyTuple_GET_ITEM(sequence, 0);
4116         __pyx_t_5 = PyTuple_GET_ITEM(sequence, 1);
4117         __pyx_t_6 = PyTuple_GET_ITEM(sequence, 2);
4118       } else {
4119         __pyx_t_4 = PyList_GET_ITEM(sequence, 0);
4120         __pyx_t_5 = PyList_GET_ITEM(sequence, 1);
4121         __pyx_t_6 = PyList_GET_ITEM(sequence, 2);
4122       }
4123       __Pyx_INCREF(__pyx_t_4);
4124       __Pyx_INCREF(__pyx_t_5);
4125       __Pyx_INCREF(__pyx_t_6);
4126       #else
4127       __pyx_t_4 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 132, __pyx_L1_error)
4128       __Pyx_GOTREF(__pyx_t_4);
4129       __pyx_t_5 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 132, __pyx_L1_error)
4130       __Pyx_GOTREF(__pyx_t_5);
4131       __pyx_t_6 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 132, __pyx_L1_error)
4132       __Pyx_GOTREF(__pyx_t_6);
4133       #endif
4134       __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
4135     } else {
4136       Py_ssize_t index = -1;
4137       __pyx_t_7 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 132, __pyx_L1_error)
4138       __Pyx_GOTREF(__pyx_t_7);
4139       __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
4140       __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext;
4141       index = 0; __pyx_t_4 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_4)) goto __pyx_L5_unpacking_failed;
4142       __Pyx_GOTREF(__pyx_t_4);
4143       index = 1; __pyx_t_5 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_5)) goto __pyx_L5_unpacking_failed;
4144       __Pyx_GOTREF(__pyx_t_5);
4145       index = 2; __pyx_t_6 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_6)) goto __pyx_L5_unpacking_failed;
4146       __Pyx_GOTREF(__pyx_t_6);
4147       if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 3) < 0) __PYX_ERR(0, 132, __pyx_L1_error)
4148       __pyx_t_8 = NULL;
4149       __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
4150       goto __pyx_L6_unpacking_done;
4151       __pyx_L5_unpacking_failed:;
4152       __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
4153       __pyx_t_8 = NULL;
4154       if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
4155       __PYX_ERR(0, 132, __pyx_L1_error)
4156       __pyx_L6_unpacking_done:;
4157     }
4158     __Pyx_XDECREF_SET(__pyx_v_parent, __pyx_t_4);
4159     __pyx_t_4 = 0;
4160     __Pyx_XDECREF_SET(__pyx_v_attribute, __pyx_t_5);
4161     __pyx_t_5 = 0;
4162     __Pyx_XDECREF_SET(__pyx_v_index, __pyx_t_6);
4163     __pyx_t_6 = 0;
4164 
4165     /* "Cython/Compiler/Visitor.py":133
4166  *         trace = ['']
4167  *         for parent, attribute, index in self.access_path:
4168  *             node = getattr(parent, attribute)             # <<<<<<<<<<<<<<
4169  *             if index is None:
4170  *                 index = ''
4171  */
4172     __pyx_t_3 = __Pyx_GetAttr(__pyx_v_parent, __pyx_v_attribute); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 133, __pyx_L1_error)
4173     __Pyx_GOTREF(__pyx_t_3);
4174     __Pyx_XDECREF_SET(__pyx_v_node, __pyx_t_3);
4175     __pyx_t_3 = 0;
4176 
4177     /* "Cython/Compiler/Visitor.py":134
4178  *         for parent, attribute, index in self.access_path:
4179  *             node = getattr(parent, attribute)
4180  *             if index is None:             # <<<<<<<<<<<<<<
4181  *                 index = ''
4182  *             else:
4183  */
4184     __pyx_t_9 = (__pyx_v_index == Py_None);
4185     __pyx_t_10 = (__pyx_t_9 != 0);
4186     if (__pyx_t_10) {
4187 
4188       /* "Cython/Compiler/Visitor.py":135
4189  *             node = getattr(parent, attribute)
4190  *             if index is None:
4191  *                 index = ''             # <<<<<<<<<<<<<<
4192  *             else:
4193  *                 node = node[index]
4194  */
4195       __Pyx_INCREF(__pyx_kp_u__7);
4196       __Pyx_DECREF_SET(__pyx_v_index, __pyx_kp_u__7);
4197 
4198       /* "Cython/Compiler/Visitor.py":134
4199  *         for parent, attribute, index in self.access_path:
4200  *             node = getattr(parent, attribute)
4201  *             if index is None:             # <<<<<<<<<<<<<<
4202  *                 index = ''
4203  *             else:
4204  */
4205       goto __pyx_L7;
4206     }
4207 
4208     /* "Cython/Compiler/Visitor.py":137
4209  *                 index = ''
4210  *             else:
4211  *                 node = node[index]             # <<<<<<<<<<<<<<
4212  *                 index = u'[%d]' % index
4213  *             trace.append(u'%s.%s%s = %s' % (
4214  */
4215     /*else*/ {
4216       __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_v_node, __pyx_v_index); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 137, __pyx_L1_error)
4217       __Pyx_GOTREF(__pyx_t_3);
4218       __Pyx_DECREF_SET(__pyx_v_node, __pyx_t_3);
4219       __pyx_t_3 = 0;
4220 
4221       /* "Cython/Compiler/Visitor.py":138
4222  *             else:
4223  *                 node = node[index]
4224  *                 index = u'[%d]' % index             # <<<<<<<<<<<<<<
4225  *             trace.append(u'%s.%s%s = %s' % (
4226  *                 parent.__class__.__name__, attribute, index,
4227  */
4228       __pyx_t_3 = __Pyx_PyUnicode_FormatSafe(__pyx_kp_u_d_2, __pyx_v_index); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 138, __pyx_L1_error)
4229       __Pyx_GOTREF(__pyx_t_3);
4230       __Pyx_DECREF_SET(__pyx_v_index, __pyx_t_3);
4231       __pyx_t_3 = 0;
4232     }
4233     __pyx_L7:;
4234 
4235     /* "Cython/Compiler/Visitor.py":139
4236  *                 node = node[index]
4237  *                 index = u'[%d]' % index
4238  *             trace.append(u'%s.%s%s = %s' % (             # <<<<<<<<<<<<<<
4239  *                 parent.__class__.__name__, attribute, index,
4240  *                 self.dump_node(node)))
4241  */
4242     __pyx_t_3 = PyTuple_New(6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 139, __pyx_L1_error)
4243     __Pyx_GOTREF(__pyx_t_3);
4244     __pyx_t_11 = 0;
4245     __pyx_t_12 = 127;
4246 
4247     /* "Cython/Compiler/Visitor.py":140
4248  *                 index = u'[%d]' % index
4249  *             trace.append(u'%s.%s%s = %s' % (
4250  *                 parent.__class__.__name__, attribute, index,             # <<<<<<<<<<<<<<
4251  *                 self.dump_node(node)))
4252  *         stacktrace, called_nodes = self._find_node_path(sys.exc_info()[2])
4253  */
4254     __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_parent, __pyx_n_s_class); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 140, __pyx_L1_error)
4255     __Pyx_GOTREF(__pyx_t_6);
4256     __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_name); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 140, __pyx_L1_error)
4257     __Pyx_GOTREF(__pyx_t_5);
4258     __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
4259     __pyx_t_6 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Unicode(__pyx_t_5), __pyx_empty_unicode); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 140, __pyx_L1_error)
4260     __Pyx_GOTREF(__pyx_t_6);
4261     __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
4262     __pyx_t_12 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_6) > __pyx_t_12) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_6) : __pyx_t_12;
4263     __pyx_t_11 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_6);
4264     __Pyx_GIVEREF(__pyx_t_6);
4265     PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_6);
4266     __pyx_t_6 = 0;
4267     __Pyx_INCREF(__pyx_kp_u__8);
4268     __pyx_t_11 += 1;
4269     __Pyx_GIVEREF(__pyx_kp_u__8);
4270     PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_kp_u__8);
4271     __pyx_t_6 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Unicode(__pyx_v_attribute), __pyx_empty_unicode); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 140, __pyx_L1_error)
4272     __Pyx_GOTREF(__pyx_t_6);
4273     __pyx_t_12 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_6) > __pyx_t_12) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_6) : __pyx_t_12;
4274     __pyx_t_11 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_6);
4275     __Pyx_GIVEREF(__pyx_t_6);
4276     PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_t_6);
4277     __pyx_t_6 = 0;
4278     __pyx_t_6 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Unicode(__pyx_v_index), __pyx_empty_unicode); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 140, __pyx_L1_error)
4279     __Pyx_GOTREF(__pyx_t_6);
4280     __pyx_t_12 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_6) > __pyx_t_12) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_6) : __pyx_t_12;
4281     __pyx_t_11 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_6);
4282     __Pyx_GIVEREF(__pyx_t_6);
4283     PyTuple_SET_ITEM(__pyx_t_3, 3, __pyx_t_6);
4284     __pyx_t_6 = 0;
4285     __Pyx_INCREF(__pyx_kp_u__3);
4286     __pyx_t_11 += 3;
4287     __Pyx_GIVEREF(__pyx_kp_u__3);
4288     PyTuple_SET_ITEM(__pyx_t_3, 4, __pyx_kp_u__3);
4289 
4290     /* "Cython/Compiler/Visitor.py":141
4291  *             trace.append(u'%s.%s%s = %s' % (
4292  *                 parent.__class__.__name__, attribute, index,
4293  *                 self.dump_node(node)))             # <<<<<<<<<<<<<<
4294  *         stacktrace, called_nodes = self._find_node_path(sys.exc_info()[2])
4295  *         last_node = child
4296  */
4297     __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_dump_node); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 141, __pyx_L1_error)
4298     __Pyx_GOTREF(__pyx_t_5);
4299     __pyx_t_4 = NULL;
4300     if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
4301       __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5);
4302       if (likely(__pyx_t_4)) {
4303         PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
4304         __Pyx_INCREF(__pyx_t_4);
4305         __Pyx_INCREF(function);
4306         __Pyx_DECREF_SET(__pyx_t_5, function);
4307       }
4308     }
4309     __pyx_t_6 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_4, __pyx_v_node) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_v_node);
4310     __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
4311     if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 141, __pyx_L1_error)
4312     __Pyx_GOTREF(__pyx_t_6);
4313     __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
4314     __pyx_t_5 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Unicode(__pyx_t_6), __pyx_empty_unicode); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 141, __pyx_L1_error)
4315     __Pyx_GOTREF(__pyx_t_5);
4316     __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
4317     __pyx_t_12 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5) > __pyx_t_12) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5) : __pyx_t_12;
4318     __pyx_t_11 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_5);
4319     __Pyx_GIVEREF(__pyx_t_5);
4320     PyTuple_SET_ITEM(__pyx_t_3, 5, __pyx_t_5);
4321     __pyx_t_5 = 0;
4322 
4323     /* "Cython/Compiler/Visitor.py":139
4324  *                 node = node[index]
4325  *                 index = u'[%d]' % index
4326  *             trace.append(u'%s.%s%s = %s' % (             # <<<<<<<<<<<<<<
4327  *                 parent.__class__.__name__, attribute, index,
4328  *                 self.dump_node(node)))
4329  */
4330     __pyx_t_5 = __Pyx_PyUnicode_Join(__pyx_t_3, 6, __pyx_t_11, __pyx_t_12); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 139, __pyx_L1_error)
4331     __Pyx_GOTREF(__pyx_t_5);
4332     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
4333     __pyx_t_13 = __Pyx_PyList_Append(__pyx_v_trace, __pyx_t_5); if (unlikely(__pyx_t_13 == ((int)-1))) __PYX_ERR(0, 139, __pyx_L1_error)
4334     __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
4335 
4336     /* "Cython/Compiler/Visitor.py":132
4337  *     def _raise_compiler_error(self, child, e):
4338  *         trace = ['']
4339  *         for parent, attribute, index in self.access_path:             # <<<<<<<<<<<<<<
4340  *             node = getattr(parent, attribute)
4341  *             if index is None:
4342  */
4343   }
4344   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
4345 
4346   /* "Cython/Compiler/Visitor.py":142
4347  *                 parent.__class__.__name__, attribute, index,
4348  *                 self.dump_node(node)))
4349  *         stacktrace, called_nodes = self._find_node_path(sys.exc_info()[2])             # <<<<<<<<<<<<<<
4350  *         last_node = child
4351  *         for node, method_name, pos in called_nodes:
4352  */
4353   __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_find_node_path); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 142, __pyx_L1_error)
4354   __Pyx_GOTREF(__pyx_t_5);
4355   __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_sys); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 142, __pyx_L1_error)
4356   __Pyx_GOTREF(__pyx_t_6);
4357   __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_exc_info); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 142, __pyx_L1_error)
4358   __Pyx_GOTREF(__pyx_t_4);
4359   __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
4360   __pyx_t_6 = NULL;
4361   if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
4362     __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4);
4363     if (likely(__pyx_t_6)) {
4364       PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
4365       __Pyx_INCREF(__pyx_t_6);
4366       __Pyx_INCREF(function);
4367       __Pyx_DECREF_SET(__pyx_t_4, function);
4368     }
4369   }
4370   __pyx_t_3 = (__pyx_t_6) ? __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_6) : __Pyx_PyObject_CallNoArg(__pyx_t_4);
4371   __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
4372   if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 142, __pyx_L1_error)
4373   __Pyx_GOTREF(__pyx_t_3);
4374   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
4375   __pyx_t_4 = __Pyx_GetItemInt(__pyx_t_3, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 142, __pyx_L1_error)
4376   __Pyx_GOTREF(__pyx_t_4);
4377   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
4378   __pyx_t_3 = NULL;
4379   if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
4380     __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_5);
4381     if (likely(__pyx_t_3)) {
4382       PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
4383       __Pyx_INCREF(__pyx_t_3);
4384       __Pyx_INCREF(function);
4385       __Pyx_DECREF_SET(__pyx_t_5, function);
4386     }
4387   }
4388   __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_3, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_4);
4389   __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
4390   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
4391   if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 142, __pyx_L1_error)
4392   __Pyx_GOTREF(__pyx_t_1);
4393   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
4394   if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) {
4395     PyObject* sequence = __pyx_t_1;
4396     Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
4397     if (unlikely(size != 2)) {
4398       if (size > 2) __Pyx_RaiseTooManyValuesError(2);
4399       else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
4400       __PYX_ERR(0, 142, __pyx_L1_error)
4401     }
4402     #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
4403     if (likely(PyTuple_CheckExact(sequence))) {
4404       __pyx_t_5 = PyTuple_GET_ITEM(sequence, 0);
4405       __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1);
4406     } else {
4407       __pyx_t_5 = PyList_GET_ITEM(sequence, 0);
4408       __pyx_t_4 = PyList_GET_ITEM(sequence, 1);
4409     }
4410     __Pyx_INCREF(__pyx_t_5);
4411     __Pyx_INCREF(__pyx_t_4);
4412     #else
4413     __pyx_t_5 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 142, __pyx_L1_error)
4414     __Pyx_GOTREF(__pyx_t_5);
4415     __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 142, __pyx_L1_error)
4416     __Pyx_GOTREF(__pyx_t_4);
4417     #endif
4418     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
4419   } else {
4420     Py_ssize_t index = -1;
4421     __pyx_t_3 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 142, __pyx_L1_error)
4422     __Pyx_GOTREF(__pyx_t_3);
4423     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
4424     __pyx_t_8 = Py_TYPE(__pyx_t_3)->tp_iternext;
4425     index = 0; __pyx_t_5 = __pyx_t_8(__pyx_t_3); if (unlikely(!__pyx_t_5)) goto __pyx_L8_unpacking_failed;
4426     __Pyx_GOTREF(__pyx_t_5);
4427     index = 1; __pyx_t_4 = __pyx_t_8(__pyx_t_3); if (unlikely(!__pyx_t_4)) goto __pyx_L8_unpacking_failed;
4428     __Pyx_GOTREF(__pyx_t_4);
4429     if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_3), 2) < 0) __PYX_ERR(0, 142, __pyx_L1_error)
4430     __pyx_t_8 = NULL;
4431     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
4432     goto __pyx_L9_unpacking_done;
4433     __pyx_L8_unpacking_failed:;
4434     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
4435     __pyx_t_8 = NULL;
4436     if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
4437     __PYX_ERR(0, 142, __pyx_L1_error)
4438     __pyx_L9_unpacking_done:;
4439   }
4440   __pyx_v_stacktrace = __pyx_t_5;
4441   __pyx_t_5 = 0;
4442   __pyx_v_called_nodes = __pyx_t_4;
4443   __pyx_t_4 = 0;
4444 
4445   /* "Cython/Compiler/Visitor.py":143
4446  *                 self.dump_node(node)))
4447  *         stacktrace, called_nodes = self._find_node_path(sys.exc_info()[2])
4448  *         last_node = child             # <<<<<<<<<<<<<<
4449  *         for node, method_name, pos in called_nodes:
4450  *             last_node = node
4451  */
4452   __Pyx_INCREF(__pyx_v_child);
4453   __pyx_v_last_node = __pyx_v_child;
4454 
4455   /* "Cython/Compiler/Visitor.py":144
4456  *         stacktrace, called_nodes = self._find_node_path(sys.exc_info()[2])
4457  *         last_node = child
4458  *         for node, method_name, pos in called_nodes:             # <<<<<<<<<<<<<<
4459  *             last_node = node
4460  *             trace.append(u"File '%s', line %d, in %s: %s" % (
4461  */
4462   if (likely(PyList_CheckExact(__pyx_v_called_nodes)) || PyTuple_CheckExact(__pyx_v_called_nodes)) {
4463     __pyx_t_1 = __pyx_v_called_nodes; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0;
4464     __pyx_t_14 = NULL;
4465   } else {
4466     __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_called_nodes); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 144, __pyx_L1_error)
4467     __Pyx_GOTREF(__pyx_t_1);
4468     __pyx_t_14 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 144, __pyx_L1_error)
4469   }
4470   for (;;) {
4471     if (likely(!__pyx_t_14)) {
4472       if (likely(PyList_CheckExact(__pyx_t_1))) {
4473         if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break;
4474         #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
4475         __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 144, __pyx_L1_error)
4476         #else
4477         __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 144, __pyx_L1_error)
4478         __Pyx_GOTREF(__pyx_t_4);
4479         #endif
4480       } else {
4481         if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
4482         #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
4483         __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 144, __pyx_L1_error)
4484         #else
4485         __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 144, __pyx_L1_error)
4486         __Pyx_GOTREF(__pyx_t_4);
4487         #endif
4488       }
4489     } else {
4490       __pyx_t_4 = __pyx_t_14(__pyx_t_1);
4491       if (unlikely(!__pyx_t_4)) {
4492         PyObject* exc_type = PyErr_Occurred();
4493         if (exc_type) {
4494           if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
4495           else __PYX_ERR(0, 144, __pyx_L1_error)
4496         }
4497         break;
4498       }
4499       __Pyx_GOTREF(__pyx_t_4);
4500     }
4501     if ((likely(PyTuple_CheckExact(__pyx_t_4))) || (PyList_CheckExact(__pyx_t_4))) {
4502       PyObject* sequence = __pyx_t_4;
4503       Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
4504       if (unlikely(size != 3)) {
4505         if (size > 3) __Pyx_RaiseTooManyValuesError(3);
4506         else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
4507         __PYX_ERR(0, 144, __pyx_L1_error)
4508       }
4509       #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
4510       if (likely(PyTuple_CheckExact(sequence))) {
4511         __pyx_t_5 = PyTuple_GET_ITEM(sequence, 0);
4512         __pyx_t_3 = PyTuple_GET_ITEM(sequence, 1);
4513         __pyx_t_6 = PyTuple_GET_ITEM(sequence, 2);
4514       } else {
4515         __pyx_t_5 = PyList_GET_ITEM(sequence, 0);
4516         __pyx_t_3 = PyList_GET_ITEM(sequence, 1);
4517         __pyx_t_6 = PyList_GET_ITEM(sequence, 2);
4518       }
4519       __Pyx_INCREF(__pyx_t_5);
4520       __Pyx_INCREF(__pyx_t_3);
4521       __Pyx_INCREF(__pyx_t_6);
4522       #else
4523       __pyx_t_5 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 144, __pyx_L1_error)
4524       __Pyx_GOTREF(__pyx_t_5);
4525       __pyx_t_3 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 144, __pyx_L1_error)
4526       __Pyx_GOTREF(__pyx_t_3);
4527       __pyx_t_6 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 144, __pyx_L1_error)
4528       __Pyx_GOTREF(__pyx_t_6);
4529       #endif
4530       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
4531     } else {
4532       Py_ssize_t index = -1;
4533       __pyx_t_7 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 144, __pyx_L1_error)
4534       __Pyx_GOTREF(__pyx_t_7);
4535       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
4536       __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext;
4537       index = 0; __pyx_t_5 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_5)) goto __pyx_L12_unpacking_failed;
4538       __Pyx_GOTREF(__pyx_t_5);
4539       index = 1; __pyx_t_3 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_3)) goto __pyx_L12_unpacking_failed;
4540       __Pyx_GOTREF(__pyx_t_3);
4541       index = 2; __pyx_t_6 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_6)) goto __pyx_L12_unpacking_failed;
4542       __Pyx_GOTREF(__pyx_t_6);
4543       if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 3) < 0) __PYX_ERR(0, 144, __pyx_L1_error)
4544       __pyx_t_8 = NULL;
4545       __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
4546       goto __pyx_L13_unpacking_done;
4547       __pyx_L12_unpacking_failed:;
4548       __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
4549       __pyx_t_8 = NULL;
4550       if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
4551       __PYX_ERR(0, 144, __pyx_L1_error)
4552       __pyx_L13_unpacking_done:;
4553     }
4554     __Pyx_XDECREF_SET(__pyx_v_node, __pyx_t_5);
4555     __pyx_t_5 = 0;
4556     __Pyx_XDECREF_SET(__pyx_v_method_name, __pyx_t_3);
4557     __pyx_t_3 = 0;
4558     __Pyx_XDECREF_SET(__pyx_v_pos, __pyx_t_6);
4559     __pyx_t_6 = 0;
4560 
4561     /* "Cython/Compiler/Visitor.py":145
4562  *         last_node = child
4563  *         for node, method_name, pos in called_nodes:
4564  *             last_node = node             # <<<<<<<<<<<<<<
4565  *             trace.append(u"File '%s', line %d, in %s: %s" % (
4566  *                 pos[0], pos[1], method_name, self.dump_node(node)))
4567  */
4568     __Pyx_INCREF(__pyx_v_node);
4569     __Pyx_DECREF_SET(__pyx_v_last_node, __pyx_v_node);
4570 
4571     /* "Cython/Compiler/Visitor.py":146
4572  *         for node, method_name, pos in called_nodes:
4573  *             last_node = node
4574  *             trace.append(u"File '%s', line %d, in %s: %s" % (             # <<<<<<<<<<<<<<
4575  *                 pos[0], pos[1], method_name, self.dump_node(node)))
4576  *         raise Errors.CompilerCrash(
4577  */
4578     __pyx_t_4 = PyTuple_New(8); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 146, __pyx_L1_error)
4579     __Pyx_GOTREF(__pyx_t_4);
4580     __pyx_t_11 = 0;
4581     __pyx_t_12 = 127;
4582     __Pyx_INCREF(__pyx_kp_u_File);
4583     __pyx_t_11 += 6;
4584     __Pyx_GIVEREF(__pyx_kp_u_File);
4585     PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_kp_u_File);
4586 
4587     /* "Cython/Compiler/Visitor.py":147
4588  *             last_node = node
4589  *             trace.append(u"File '%s', line %d, in %s: %s" % (
4590  *                 pos[0], pos[1], method_name, self.dump_node(node)))             # <<<<<<<<<<<<<<
4591  *         raise Errors.CompilerCrash(
4592  *             getattr(last_node, 'pos', None), self.__class__.__name__,
4593  */
4594     __pyx_t_6 = __Pyx_GetItemInt(__pyx_v_pos, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 147, __pyx_L1_error)
4595     __Pyx_GOTREF(__pyx_t_6);
4596     __pyx_t_3 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Unicode(__pyx_t_6), __pyx_empty_unicode); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 147, __pyx_L1_error)
4597     __Pyx_GOTREF(__pyx_t_3);
4598     __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
4599     __pyx_t_12 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_3) > __pyx_t_12) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_3) : __pyx_t_12;
4600     __pyx_t_11 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_3);
4601     __Pyx_GIVEREF(__pyx_t_3);
4602     PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3);
4603     __pyx_t_3 = 0;
4604     __Pyx_INCREF(__pyx_kp_u_line);
4605     __pyx_t_11 += 8;
4606     __Pyx_GIVEREF(__pyx_kp_u_line);
4607     PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_kp_u_line);
4608     __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_pos, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 147, __pyx_L1_error)
4609     __Pyx_GOTREF(__pyx_t_3);
4610     __pyx_t_6 = __Pyx_PyObject_FormatAndDecref(__Pyx_PyNumber_IntOrLong(__pyx_t_3), __pyx_n_u_d_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 147, __pyx_L1_error)
4611     __Pyx_GOTREF(__pyx_t_6);
4612     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
4613     __pyx_t_12 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_6) > __pyx_t_12) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_6) : __pyx_t_12;
4614     __pyx_t_11 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_6);
4615     __Pyx_GIVEREF(__pyx_t_6);
4616     PyTuple_SET_ITEM(__pyx_t_4, 3, __pyx_t_6);
4617     __pyx_t_6 = 0;
4618     __Pyx_INCREF(__pyx_kp_u_in);
4619     __pyx_t_11 += 5;
4620     __Pyx_GIVEREF(__pyx_kp_u_in);
4621     PyTuple_SET_ITEM(__pyx_t_4, 4, __pyx_kp_u_in);
4622     __pyx_t_6 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Unicode(__pyx_v_method_name), __pyx_empty_unicode); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 147, __pyx_L1_error)
4623     __Pyx_GOTREF(__pyx_t_6);
4624     __pyx_t_12 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_6) > __pyx_t_12) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_6) : __pyx_t_12;
4625     __pyx_t_11 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_6);
4626     __Pyx_GIVEREF(__pyx_t_6);
4627     PyTuple_SET_ITEM(__pyx_t_4, 5, __pyx_t_6);
4628     __pyx_t_6 = 0;
4629     __Pyx_INCREF(__pyx_kp_u__9);
4630     __pyx_t_11 += 2;
4631     __Pyx_GIVEREF(__pyx_kp_u__9);
4632     PyTuple_SET_ITEM(__pyx_t_4, 6, __pyx_kp_u__9);
4633     __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_dump_node); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 147, __pyx_L1_error)
4634     __Pyx_GOTREF(__pyx_t_3);
4635     __pyx_t_5 = NULL;
4636     if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
4637       __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
4638       if (likely(__pyx_t_5)) {
4639         PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
4640         __Pyx_INCREF(__pyx_t_5);
4641         __Pyx_INCREF(function);
4642         __Pyx_DECREF_SET(__pyx_t_3, function);
4643       }
4644     }
4645     __pyx_t_6 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_v_node) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_node);
4646     __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
4647     if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 147, __pyx_L1_error)
4648     __Pyx_GOTREF(__pyx_t_6);
4649     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
4650     __pyx_t_3 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Unicode(__pyx_t_6), __pyx_empty_unicode); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 147, __pyx_L1_error)
4651     __Pyx_GOTREF(__pyx_t_3);
4652     __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
4653     __pyx_t_12 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_3) > __pyx_t_12) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_3) : __pyx_t_12;
4654     __pyx_t_11 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_3);
4655     __Pyx_GIVEREF(__pyx_t_3);
4656     PyTuple_SET_ITEM(__pyx_t_4, 7, __pyx_t_3);
4657     __pyx_t_3 = 0;
4658 
4659     /* "Cython/Compiler/Visitor.py":146
4660  *         for node, method_name, pos in called_nodes:
4661  *             last_node = node
4662  *             trace.append(u"File '%s', line %d, in %s: %s" % (             # <<<<<<<<<<<<<<
4663  *                 pos[0], pos[1], method_name, self.dump_node(node)))
4664  *         raise Errors.CompilerCrash(
4665  */
4666     __pyx_t_3 = __Pyx_PyUnicode_Join(__pyx_t_4, 8, __pyx_t_11, __pyx_t_12); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 146, __pyx_L1_error)
4667     __Pyx_GOTREF(__pyx_t_3);
4668     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
4669     __pyx_t_13 = __Pyx_PyList_Append(__pyx_v_trace, __pyx_t_3); if (unlikely(__pyx_t_13 == ((int)-1))) __PYX_ERR(0, 146, __pyx_L1_error)
4670     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
4671 
4672     /* "Cython/Compiler/Visitor.py":144
4673  *         stacktrace, called_nodes = self._find_node_path(sys.exc_info()[2])
4674  *         last_node = child
4675  *         for node, method_name, pos in called_nodes:             # <<<<<<<<<<<<<<
4676  *             last_node = node
4677  *             trace.append(u"File '%s', line %d, in %s: %s" % (
4678  */
4679   }
4680   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
4681 
4682   /* "Cython/Compiler/Visitor.py":148
4683  *             trace.append(u"File '%s', line %d, in %s: %s" % (
4684  *                 pos[0], pos[1], method_name, self.dump_node(node)))
4685  *         raise Errors.CompilerCrash(             # <<<<<<<<<<<<<<
4686  *             getattr(last_node, 'pos', None), self.__class__.__name__,
4687  *             u'\n'.join(trace), e, stacktrace)
4688  */
4689   __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_Errors); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 148, __pyx_L1_error)
4690   __Pyx_GOTREF(__pyx_t_3);
4691   __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_CompilerCrash); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 148, __pyx_L1_error)
4692   __Pyx_GOTREF(__pyx_t_4);
4693   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
4694 
4695   /* "Cython/Compiler/Visitor.py":149
4696  *                 pos[0], pos[1], method_name, self.dump_node(node)))
4697  *         raise Errors.CompilerCrash(
4698  *             getattr(last_node, 'pos', None), self.__class__.__name__,             # <<<<<<<<<<<<<<
4699  *             u'\n'.join(trace), e, stacktrace)
4700  *
4701  */
4702   __pyx_t_3 = __Pyx_GetAttr3(__pyx_v_last_node, __pyx_n_u_pos, Py_None); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 149, __pyx_L1_error)
4703   __Pyx_GOTREF(__pyx_t_3);
4704   __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_class); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 149, __pyx_L1_error)
4705   __Pyx_GOTREF(__pyx_t_6);
4706   __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_name); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 149, __pyx_L1_error)
4707   __Pyx_GOTREF(__pyx_t_5);
4708   __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
4709 
4710   /* "Cython/Compiler/Visitor.py":150
4711  *         raise Errors.CompilerCrash(
4712  *             getattr(last_node, 'pos', None), self.__class__.__name__,
4713  *             u'\n'.join(trace), e, stacktrace)             # <<<<<<<<<<<<<<
4714  *
4715  *     @cython.final
4716  */
4717   __pyx_t_6 = PyUnicode_Join(__pyx_kp_u__10, __pyx_v_trace); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 150, __pyx_L1_error)
4718   __Pyx_GOTREF(__pyx_t_6);
4719   __pyx_t_7 = NULL;
4720   __pyx_t_15 = 0;
4721   if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
4722     __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_4);
4723     if (likely(__pyx_t_7)) {
4724       PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
4725       __Pyx_INCREF(__pyx_t_7);
4726       __Pyx_INCREF(function);
4727       __Pyx_DECREF_SET(__pyx_t_4, function);
4728       __pyx_t_15 = 1;
4729     }
4730   }
4731   #if CYTHON_FAST_PYCALL
4732   if (PyFunction_Check(__pyx_t_4)) {
4733     PyObject *__pyx_temp[6] = {__pyx_t_7, __pyx_t_3, __pyx_t_5, __pyx_t_6, __pyx_v_e, __pyx_v_stacktrace};
4734     __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_15, 5+__pyx_t_15); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 148, __pyx_L1_error)
4735     __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
4736     __Pyx_GOTREF(__pyx_t_1);
4737     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
4738     __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
4739     __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
4740   } else
4741   #endif
4742   #if CYTHON_FAST_PYCCALL
4743   if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) {
4744     PyObject *__pyx_temp[6] = {__pyx_t_7, __pyx_t_3, __pyx_t_5, __pyx_t_6, __pyx_v_e, __pyx_v_stacktrace};
4745     __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_15, 5+__pyx_t_15); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 148, __pyx_L1_error)
4746     __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
4747     __Pyx_GOTREF(__pyx_t_1);
4748     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
4749     __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
4750     __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
4751   } else
4752   #endif
4753   {
4754     __pyx_t_16 = PyTuple_New(5+__pyx_t_15); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 148, __pyx_L1_error)
4755     __Pyx_GOTREF(__pyx_t_16);
4756     if (__pyx_t_7) {
4757       __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_16, 0, __pyx_t_7); __pyx_t_7 = NULL;
4758     }
4759     __Pyx_GIVEREF(__pyx_t_3);
4760     PyTuple_SET_ITEM(__pyx_t_16, 0+__pyx_t_15, __pyx_t_3);
4761     __Pyx_GIVEREF(__pyx_t_5);
4762     PyTuple_SET_ITEM(__pyx_t_16, 1+__pyx_t_15, __pyx_t_5);
4763     __Pyx_GIVEREF(__pyx_t_6);
4764     PyTuple_SET_ITEM(__pyx_t_16, 2+__pyx_t_15, __pyx_t_6);
4765     __Pyx_INCREF(__pyx_v_e);
4766     __Pyx_GIVEREF(__pyx_v_e);
4767     PyTuple_SET_ITEM(__pyx_t_16, 3+__pyx_t_15, __pyx_v_e);
4768     __Pyx_INCREF(__pyx_v_stacktrace);
4769     __Pyx_GIVEREF(__pyx_v_stacktrace);
4770     PyTuple_SET_ITEM(__pyx_t_16, 4+__pyx_t_15, __pyx_v_stacktrace);
4771     __pyx_t_3 = 0;
4772     __pyx_t_5 = 0;
4773     __pyx_t_6 = 0;
4774     __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_16, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 148, __pyx_L1_error)
4775     __Pyx_GOTREF(__pyx_t_1);
4776     __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
4777   }
4778   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
4779   __Pyx_Raise(__pyx_t_1, 0, 0, 0);
4780   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
4781   __PYX_ERR(0, 148, __pyx_L1_error)
4782 
4783   /* "Cython/Compiler/Visitor.py":130
4784  *         return (last_traceback, nodes)
4785  *
4786  *     def _raise_compiler_error(self, child, e):             # <<<<<<<<<<<<<<
4787  *         trace = ['']
4788  *         for parent, attribute, index in self.access_path:
4789  */
4790 
4791   /* function exit code */
4792   __pyx_L1_error:;
4793   __Pyx_XDECREF(__pyx_t_1);
4794   __Pyx_XDECREF(__pyx_t_3);
4795   __Pyx_XDECREF(__pyx_t_4);
4796   __Pyx_XDECREF(__pyx_t_5);
4797   __Pyx_XDECREF(__pyx_t_6);
4798   __Pyx_XDECREF(__pyx_t_7);
4799   __Pyx_XDECREF(__pyx_t_16);
4800   __Pyx_AddTraceback("Cython.Compiler.Visitor.TreeVisitor._raise_compiler_error", __pyx_clineno, __pyx_lineno, __pyx_filename);
4801   __pyx_r = 0;
4802   __Pyx_XDECREF(__pyx_v_trace);
4803   __Pyx_XDECREF(__pyx_v_parent);
4804   __Pyx_XDECREF(__pyx_v_attribute);
4805   __Pyx_XDECREF(__pyx_v_index);
4806   __Pyx_XDECREF(__pyx_v_node);
4807   __Pyx_XDECREF(__pyx_v_stacktrace);
4808   __Pyx_XDECREF(__pyx_v_called_nodes);
4809   __Pyx_XDECREF(__pyx_v_last_node);
4810   __Pyx_XDECREF(__pyx_v_method_name);
4811   __Pyx_XDECREF(__pyx_v_pos);
4812   __Pyx_XGIVEREF(__pyx_r);
4813   __Pyx_RefNannyFinishContext();
4814   return __pyx_r;
4815 }
4816 
4817 /* "Cython/Compiler/Visitor.py":153
4818  *
4819  *     @cython.final
4820  *     def find_handler(self, obj):             # <<<<<<<<<<<<<<
4821  *         # to resolve, try entire hierarchy
4822  *         cls = type(obj)
4823  */
4824 
__pyx_f_6Cython_8Compiler_7Visitor_11TreeVisitor_find_handler(struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor * __pyx_v_self,PyObject * __pyx_v_obj)4825 static PyObject *__pyx_f_6Cython_8Compiler_7Visitor_11TreeVisitor_find_handler(struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor *__pyx_v_self, PyObject *__pyx_v_obj) {
4826   PyTypeObject *__pyx_v_cls = NULL;
4827   PyObject *__pyx_v_pattern = NULL;
4828   PyObject *__pyx_v_mro = NULL;
4829   PyObject *__pyx_v_mro_cls = NULL;
4830   PyObject *__pyx_v_handler_method = NULL;
4831   PyObject *__pyx_r = NULL;
4832   __Pyx_RefNannyDeclarations
4833   PyObject *__pyx_t_1 = NULL;
4834   PyObject *__pyx_t_2 = NULL;
4835   PyObject *__pyx_t_3 = NULL;
4836   Py_ssize_t __pyx_t_4;
4837   PyObject *(*__pyx_t_5)(PyObject *);
4838   int __pyx_t_6;
4839   int __pyx_t_7;
4840   Py_UCS4 __pyx_t_8;
4841   int __pyx_lineno = 0;
4842   const char *__pyx_filename = NULL;
4843   int __pyx_clineno = 0;
4844   __Pyx_RefNannySetupContext("find_handler", 0);
4845 
4846   /* "Cython/Compiler/Visitor.py":155
4847  *     def find_handler(self, obj):
4848  *         # to resolve, try entire hierarchy
4849  *         cls = type(obj)             # <<<<<<<<<<<<<<
4850  *         pattern = "visit_%s"
4851  *         mro = inspect.getmro(cls)
4852  */
4853   __Pyx_INCREF(((PyObject *)Py_TYPE(__pyx_v_obj)));
4854   __pyx_v_cls = ((PyTypeObject*)((PyObject *)Py_TYPE(__pyx_v_obj)));
4855 
4856   /* "Cython/Compiler/Visitor.py":156
4857  *         # to resolve, try entire hierarchy
4858  *         cls = type(obj)
4859  *         pattern = "visit_%s"             # <<<<<<<<<<<<<<
4860  *         mro = inspect.getmro(cls)
4861  *         for mro_cls in mro:
4862  */
4863   __Pyx_INCREF(__pyx_kp_u_visit__s);
4864   __pyx_v_pattern = __pyx_kp_u_visit__s;
4865 
4866   /* "Cython/Compiler/Visitor.py":157
4867  *         cls = type(obj)
4868  *         pattern = "visit_%s"
4869  *         mro = inspect.getmro(cls)             # <<<<<<<<<<<<<<
4870  *         for mro_cls in mro:
4871  *             handler_method = getattr(self, pattern % mro_cls.__name__, None)
4872  */
4873   __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_inspect); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 157, __pyx_L1_error)
4874   __Pyx_GOTREF(__pyx_t_2);
4875   __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_getmro); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 157, __pyx_L1_error)
4876   __Pyx_GOTREF(__pyx_t_3);
4877   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
4878   __pyx_t_2 = NULL;
4879   if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
4880     __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
4881     if (likely(__pyx_t_2)) {
4882       PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
4883       __Pyx_INCREF(__pyx_t_2);
4884       __Pyx_INCREF(function);
4885       __Pyx_DECREF_SET(__pyx_t_3, function);
4886     }
4887   }
4888   __pyx_t_1 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_2, ((PyObject *)__pyx_v_cls)) : __Pyx_PyObject_CallOneArg(__pyx_t_3, ((PyObject *)__pyx_v_cls));
4889   __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
4890   if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 157, __pyx_L1_error)
4891   __Pyx_GOTREF(__pyx_t_1);
4892   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
4893   __pyx_v_mro = __pyx_t_1;
4894   __pyx_t_1 = 0;
4895 
4896   /* "Cython/Compiler/Visitor.py":158
4897  *         pattern = "visit_%s"
4898  *         mro = inspect.getmro(cls)
4899  *         for mro_cls in mro:             # <<<<<<<<<<<<<<
4900  *             handler_method = getattr(self, pattern % mro_cls.__name__, None)
4901  *             if handler_method is not None:
4902  */
4903   if (likely(PyList_CheckExact(__pyx_v_mro)) || PyTuple_CheckExact(__pyx_v_mro)) {
4904     __pyx_t_1 = __pyx_v_mro; __Pyx_INCREF(__pyx_t_1); __pyx_t_4 = 0;
4905     __pyx_t_5 = NULL;
4906   } else {
4907     __pyx_t_4 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_mro); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 158, __pyx_L1_error)
4908     __Pyx_GOTREF(__pyx_t_1);
4909     __pyx_t_5 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 158, __pyx_L1_error)
4910   }
4911   for (;;) {
4912     if (likely(!__pyx_t_5)) {
4913       if (likely(PyList_CheckExact(__pyx_t_1))) {
4914         if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_1)) break;
4915         #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
4916         __pyx_t_3 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_4); __Pyx_INCREF(__pyx_t_3); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 158, __pyx_L1_error)
4917         #else
4918         __pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 158, __pyx_L1_error)
4919         __Pyx_GOTREF(__pyx_t_3);
4920         #endif
4921       } else {
4922         if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
4923         #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
4924         __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_4); __Pyx_INCREF(__pyx_t_3); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 158, __pyx_L1_error)
4925         #else
4926         __pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 158, __pyx_L1_error)
4927         __Pyx_GOTREF(__pyx_t_3);
4928         #endif
4929       }
4930     } else {
4931       __pyx_t_3 = __pyx_t_5(__pyx_t_1);
4932       if (unlikely(!__pyx_t_3)) {
4933         PyObject* exc_type = PyErr_Occurred();
4934         if (exc_type) {
4935           if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
4936           else __PYX_ERR(0, 158, __pyx_L1_error)
4937         }
4938         break;
4939       }
4940       __Pyx_GOTREF(__pyx_t_3);
4941     }
4942     __Pyx_XDECREF_SET(__pyx_v_mro_cls, __pyx_t_3);
4943     __pyx_t_3 = 0;
4944 
4945     /* "Cython/Compiler/Visitor.py":159
4946  *         mro = inspect.getmro(cls)
4947  *         for mro_cls in mro:
4948  *             handler_method = getattr(self, pattern % mro_cls.__name__, None)             # <<<<<<<<<<<<<<
4949  *             if handler_method is not None:
4950  *                 return handler_method
4951  */
4952     __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_mro_cls, __pyx_n_s_name); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 159, __pyx_L1_error)
4953     __Pyx_GOTREF(__pyx_t_3);
4954     __pyx_t_2 = __Pyx_PyUnicode_FormatSafe(__pyx_v_pattern, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 159, __pyx_L1_error)
4955     __Pyx_GOTREF(__pyx_t_2);
4956     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
4957     __pyx_t_3 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_t_2, Py_None); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 159, __pyx_L1_error)
4958     __Pyx_GOTREF(__pyx_t_3);
4959     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
4960     __Pyx_XDECREF_SET(__pyx_v_handler_method, __pyx_t_3);
4961     __pyx_t_3 = 0;
4962 
4963     /* "Cython/Compiler/Visitor.py":160
4964  *         for mro_cls in mro:
4965  *             handler_method = getattr(self, pattern % mro_cls.__name__, None)
4966  *             if handler_method is not None:             # <<<<<<<<<<<<<<
4967  *                 return handler_method
4968  *         print(type(self), cls)
4969  */
4970     __pyx_t_6 = (__pyx_v_handler_method != Py_None);
4971     __pyx_t_7 = (__pyx_t_6 != 0);
4972     if (__pyx_t_7) {
4973 
4974       /* "Cython/Compiler/Visitor.py":161
4975  *             handler_method = getattr(self, pattern % mro_cls.__name__, None)
4976  *             if handler_method is not None:
4977  *                 return handler_method             # <<<<<<<<<<<<<<
4978  *         print(type(self), cls)
4979  *         if self.access_path:
4980  */
4981       __Pyx_XDECREF(__pyx_r);
4982       __Pyx_INCREF(__pyx_v_handler_method);
4983       __pyx_r = __pyx_v_handler_method;
4984       __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
4985       goto __pyx_L0;
4986 
4987       /* "Cython/Compiler/Visitor.py":160
4988  *         for mro_cls in mro:
4989  *             handler_method = getattr(self, pattern % mro_cls.__name__, None)
4990  *             if handler_method is not None:             # <<<<<<<<<<<<<<
4991  *                 return handler_method
4992  *         print(type(self), cls)
4993  */
4994     }
4995 
4996     /* "Cython/Compiler/Visitor.py":158
4997  *         pattern = "visit_%s"
4998  *         mro = inspect.getmro(cls)
4999  *         for mro_cls in mro:             # <<<<<<<<<<<<<<
5000  *             handler_method = getattr(self, pattern % mro_cls.__name__, None)
5001  *             if handler_method is not None:
5002  */
5003   }
5004   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
5005 
5006   /* "Cython/Compiler/Visitor.py":162
5007  *             if handler_method is not None:
5008  *                 return handler_method
5009  *         print(type(self), cls)             # <<<<<<<<<<<<<<
5010  *         if self.access_path:
5011  *             print(self.access_path)
5012  */
5013   __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 162, __pyx_L1_error)
5014   __Pyx_GOTREF(__pyx_t_1);
5015   __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
5016   __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
5017   PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
5018   __Pyx_INCREF(((PyObject *)__pyx_v_cls));
5019   __Pyx_GIVEREF(((PyObject *)__pyx_v_cls));
5020   PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_cls));
5021   __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_print, __pyx_t_1, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 162, __pyx_L1_error)
5022   __Pyx_GOTREF(__pyx_t_3);
5023   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
5024   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
5025 
5026   /* "Cython/Compiler/Visitor.py":163
5027  *                 return handler_method
5028  *         print(type(self), cls)
5029  *         if self.access_path:             # <<<<<<<<<<<<<<
5030  *             print(self.access_path)
5031  *             print(self.access_path[-1][0].pos)
5032  */
5033   __pyx_t_7 = (__pyx_v_self->access_path != Py_None)&&(PyList_GET_SIZE(__pyx_v_self->access_path) != 0);
5034   if (__pyx_t_7) {
5035 
5036     /* "Cython/Compiler/Visitor.py":164
5037  *         print(type(self), cls)
5038  *         if self.access_path:
5039  *             print(self.access_path)             # <<<<<<<<<<<<<<
5040  *             print(self.access_path[-1][0].pos)
5041  *             print(self.access_path[-1][0].__dict__)
5042  */
5043     __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_print, __pyx_v_self->access_path); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 164, __pyx_L1_error)
5044     __Pyx_GOTREF(__pyx_t_3);
5045     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
5046 
5047     /* "Cython/Compiler/Visitor.py":165
5048  *         if self.access_path:
5049  *             print(self.access_path)
5050  *             print(self.access_path[-1][0].pos)             # <<<<<<<<<<<<<<
5051  *             print(self.access_path[-1][0].__dict__)
5052  *         raise RuntimeError("Visitor %r does not accept object: %s" % (self, obj))
5053  */
5054     if (unlikely(__pyx_v_self->access_path == Py_None)) {
5055       PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
5056       __PYX_ERR(0, 165, __pyx_L1_error)
5057     }
5058     __pyx_t_3 = __Pyx_GetItemInt_List(__pyx_v_self->access_path, -1L, long, 1, __Pyx_PyInt_From_long, 1, 1, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 165, __pyx_L1_error)
5059     __Pyx_GOTREF(__pyx_t_3);
5060     __pyx_t_1 = __Pyx_GetItemInt(__pyx_t_3, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 165, __pyx_L1_error)
5061     __Pyx_GOTREF(__pyx_t_1);
5062     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
5063     __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_pos); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 165, __pyx_L1_error)
5064     __Pyx_GOTREF(__pyx_t_3);
5065     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
5066     __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_builtin_print, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 165, __pyx_L1_error)
5067     __Pyx_GOTREF(__pyx_t_1);
5068     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
5069     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
5070 
5071     /* "Cython/Compiler/Visitor.py":166
5072  *             print(self.access_path)
5073  *             print(self.access_path[-1][0].pos)
5074  *             print(self.access_path[-1][0].__dict__)             # <<<<<<<<<<<<<<
5075  *         raise RuntimeError("Visitor %r does not accept object: %s" % (self, obj))
5076  *
5077  */
5078     if (unlikely(__pyx_v_self->access_path == Py_None)) {
5079       PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
5080       __PYX_ERR(0, 166, __pyx_L1_error)
5081     }
5082     __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_self->access_path, -1L, long, 1, __Pyx_PyInt_From_long, 1, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 166, __pyx_L1_error)
5083     __Pyx_GOTREF(__pyx_t_1);
5084     __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_1, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 166, __pyx_L1_error)
5085     __Pyx_GOTREF(__pyx_t_3);
5086     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
5087     __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_dict); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 166, __pyx_L1_error)
5088     __Pyx_GOTREF(__pyx_t_1);
5089     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
5090     __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_print, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 166, __pyx_L1_error)
5091     __Pyx_GOTREF(__pyx_t_3);
5092     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
5093     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
5094 
5095     /* "Cython/Compiler/Visitor.py":163
5096  *                 return handler_method
5097  *         print(type(self), cls)
5098  *         if self.access_path:             # <<<<<<<<<<<<<<
5099  *             print(self.access_path)
5100  *             print(self.access_path[-1][0].pos)
5101  */
5102   }
5103 
5104   /* "Cython/Compiler/Visitor.py":167
5105  *             print(self.access_path[-1][0].pos)
5106  *             print(self.access_path[-1][0].__dict__)
5107  *         raise RuntimeError("Visitor %r does not accept object: %s" % (self, obj))             # <<<<<<<<<<<<<<
5108  *
5109  *     def visit(self, obj):
5110  */
5111   __pyx_t_3 = PyTuple_New(4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 167, __pyx_L1_error)
5112   __Pyx_GOTREF(__pyx_t_3);
5113   __pyx_t_4 = 0;
5114   __pyx_t_8 = 127;
5115   __Pyx_INCREF(__pyx_kp_u_Visitor);
5116   __pyx_t_4 += 8;
5117   __Pyx_GIVEREF(__pyx_kp_u_Visitor);
5118   PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_kp_u_Visitor);
5119   __pyx_t_1 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Repr(((PyObject *)__pyx_v_self)), __pyx_empty_unicode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 167, __pyx_L1_error)
5120   __Pyx_GOTREF(__pyx_t_1);
5121   __pyx_t_8 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_1) > __pyx_t_8) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_1) : __pyx_t_8;
5122   __pyx_t_4 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_1);
5123   __Pyx_GIVEREF(__pyx_t_1);
5124   PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_1);
5125   __pyx_t_1 = 0;
5126   __Pyx_INCREF(__pyx_kp_u_does_not_accept_object);
5127   __pyx_t_4 += 25;
5128   __Pyx_GIVEREF(__pyx_kp_u_does_not_accept_object);
5129   PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_kp_u_does_not_accept_object);
5130   __pyx_t_1 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Unicode(__pyx_v_obj), __pyx_empty_unicode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 167, __pyx_L1_error)
5131   __Pyx_GOTREF(__pyx_t_1);
5132   __pyx_t_8 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_1) > __pyx_t_8) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_1) : __pyx_t_8;
5133   __pyx_t_4 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_1);
5134   __Pyx_GIVEREF(__pyx_t_1);
5135   PyTuple_SET_ITEM(__pyx_t_3, 3, __pyx_t_1);
5136   __pyx_t_1 = 0;
5137   __pyx_t_1 = __Pyx_PyUnicode_Join(__pyx_t_3, 4, __pyx_t_4, __pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 167, __pyx_L1_error)
5138   __Pyx_GOTREF(__pyx_t_1);
5139   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
5140   __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_RuntimeError, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 167, __pyx_L1_error)
5141   __Pyx_GOTREF(__pyx_t_3);
5142   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
5143   __Pyx_Raise(__pyx_t_3, 0, 0, 0);
5144   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
5145   __PYX_ERR(0, 167, __pyx_L1_error)
5146 
5147   /* "Cython/Compiler/Visitor.py":153
5148  *
5149  *     @cython.final
5150  *     def find_handler(self, obj):             # <<<<<<<<<<<<<<
5151  *         # to resolve, try entire hierarchy
5152  *         cls = type(obj)
5153  */
5154 
5155   /* function exit code */
5156   __pyx_L1_error:;
5157   __Pyx_XDECREF(__pyx_t_1);
5158   __Pyx_XDECREF(__pyx_t_2);
5159   __Pyx_XDECREF(__pyx_t_3);
5160   __Pyx_AddTraceback("Cython.Compiler.Visitor.TreeVisitor.find_handler", __pyx_clineno, __pyx_lineno, __pyx_filename);
5161   __pyx_r = 0;
5162   __pyx_L0:;
5163   __Pyx_XDECREF(__pyx_v_cls);
5164   __Pyx_XDECREF(__pyx_v_pattern);
5165   __Pyx_XDECREF(__pyx_v_mro);
5166   __Pyx_XDECREF(__pyx_v_mro_cls);
5167   __Pyx_XDECREF(__pyx_v_handler_method);
5168   __Pyx_XGIVEREF(__pyx_r);
5169   __Pyx_RefNannyFinishContext();
5170   return __pyx_r;
5171 }
5172 
5173 /* "Cython/Compiler/Visitor.py":169
5174  *         raise RuntimeError("Visitor %r does not accept object: %s" % (self, obj))
5175  *
5176  *     def visit(self, obj):             # <<<<<<<<<<<<<<
5177  *         return self._visit(obj)
5178  *
5179  */
5180 
5181 static PyObject *__pyx_pw_6Cython_8Compiler_7Visitor_11TreeVisitor_7visit(PyObject *__pyx_v_self, PyObject *__pyx_v_obj); /*proto*/
__pyx_f_6Cython_8Compiler_7Visitor_11TreeVisitor_visit(struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor * __pyx_v_self,PyObject * __pyx_v_obj,int __pyx_skip_dispatch)5182 static PyObject *__pyx_f_6Cython_8Compiler_7Visitor_11TreeVisitor_visit(struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor *__pyx_v_self, PyObject *__pyx_v_obj, int __pyx_skip_dispatch) {
5183   PyObject *__pyx_r = NULL;
5184   __Pyx_RefNannyDeclarations
5185   PyObject *__pyx_t_1 = NULL;
5186   PyObject *__pyx_t_2 = NULL;
5187   PyObject *__pyx_t_3 = NULL;
5188   PyObject *__pyx_t_4 = NULL;
5189   int __pyx_lineno = 0;
5190   const char *__pyx_filename = NULL;
5191   int __pyx_clineno = 0;
5192   __Pyx_RefNannySetupContext("visit", 0);
5193   /* Check if called by wrapper */
5194   if (unlikely(__pyx_skip_dispatch)) ;
5195   /* Check if overridden in Python */
5196   else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || (Py_TYPE(((PyObject *)__pyx_v_self))->tp_flags & (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
5197     #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
5198     static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
5199     if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
5200       PY_UINT64_T __pyx_type_dict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
5201       #endif
5202       __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_visit); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 169, __pyx_L1_error)
5203       __Pyx_GOTREF(__pyx_t_1);
5204       if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_6Cython_8Compiler_7Visitor_11TreeVisitor_7visit)) {
5205         __Pyx_XDECREF(__pyx_r);
5206         __Pyx_INCREF(__pyx_t_1);
5207         __pyx_t_3 = __pyx_t_1; __pyx_t_4 = NULL;
5208         if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
5209           __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
5210           if (likely(__pyx_t_4)) {
5211             PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
5212             __Pyx_INCREF(__pyx_t_4);
5213             __Pyx_INCREF(function);
5214             __Pyx_DECREF_SET(__pyx_t_3, function);
5215           }
5216         }
5217         __pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, __pyx_v_obj) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_obj);
5218         __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
5219         if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 169, __pyx_L1_error)
5220         __Pyx_GOTREF(__pyx_t_2);
5221         __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
5222         __pyx_r = __pyx_t_2;
5223         __pyx_t_2 = 0;
5224         __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
5225         goto __pyx_L0;
5226       }
5227       #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
5228       __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
5229       __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
5230       if (unlikely(__pyx_type_dict_guard != __pyx_tp_dict_version)) {
5231         __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
5232       }
5233       #endif
5234       __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
5235       #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
5236     }
5237     #endif
5238   }
5239 
5240   /* "Cython/Compiler/Visitor.py":170
5241  *
5242  *     def visit(self, obj):
5243  *         return self._visit(obj)             # <<<<<<<<<<<<<<
5244  *
5245  *     @cython.final
5246  */
5247   __Pyx_XDECREF(__pyx_r);
5248   __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Visitor_11TreeVisitor__visit(__pyx_v_self, __pyx_v_obj); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 170, __pyx_L1_error)
5249   __Pyx_GOTREF(__pyx_t_1);
5250   __pyx_r = __pyx_t_1;
5251   __pyx_t_1 = 0;
5252   goto __pyx_L0;
5253 
5254   /* "Cython/Compiler/Visitor.py":169
5255  *         raise RuntimeError("Visitor %r does not accept object: %s" % (self, obj))
5256  *
5257  *     def visit(self, obj):             # <<<<<<<<<<<<<<
5258  *         return self._visit(obj)
5259  *
5260  */
5261 
5262   /* function exit code */
5263   __pyx_L1_error:;
5264   __Pyx_XDECREF(__pyx_t_1);
5265   __Pyx_XDECREF(__pyx_t_2);
5266   __Pyx_XDECREF(__pyx_t_3);
5267   __Pyx_XDECREF(__pyx_t_4);
5268   __Pyx_AddTraceback("Cython.Compiler.Visitor.TreeVisitor.visit", __pyx_clineno, __pyx_lineno, __pyx_filename);
5269   __pyx_r = 0;
5270   __pyx_L0:;
5271   __Pyx_XGIVEREF(__pyx_r);
5272   __Pyx_RefNannyFinishContext();
5273   return __pyx_r;
5274 }
5275 
5276 /* Python wrapper */
5277 static PyObject *__pyx_pw_6Cython_8Compiler_7Visitor_11TreeVisitor_7visit(PyObject *__pyx_v_self, PyObject *__pyx_v_obj); /*proto*/
5278 static PyMethodDef __pyx_mdef_6Cython_8Compiler_7Visitor_11TreeVisitor_7visit = {"visit", (PyCFunction)__pyx_pw_6Cython_8Compiler_7Visitor_11TreeVisitor_7visit, METH_O, 0};
__pyx_pw_6Cython_8Compiler_7Visitor_11TreeVisitor_7visit(PyObject * __pyx_v_self,PyObject * __pyx_v_obj)5279 static PyObject *__pyx_pw_6Cython_8Compiler_7Visitor_11TreeVisitor_7visit(PyObject *__pyx_v_self, PyObject *__pyx_v_obj) {
5280   PyObject *__pyx_r = 0;
5281   __Pyx_RefNannyDeclarations
5282   __Pyx_RefNannySetupContext("visit (wrapper)", 0);
5283   __pyx_r = __pyx_pf_6Cython_8Compiler_7Visitor_11TreeVisitor_6visit(((struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor *)__pyx_v_self), ((PyObject *)__pyx_v_obj));
5284 
5285   /* function exit code */
5286   __Pyx_RefNannyFinishContext();
5287   return __pyx_r;
5288 }
5289 
__pyx_pf_6Cython_8Compiler_7Visitor_11TreeVisitor_6visit(struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor * __pyx_v_self,PyObject * __pyx_v_obj)5290 static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_11TreeVisitor_6visit(struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor *__pyx_v_self, PyObject *__pyx_v_obj) {
5291   PyObject *__pyx_r = NULL;
5292   __Pyx_RefNannyDeclarations
5293   PyObject *__pyx_t_1 = NULL;
5294   int __pyx_lineno = 0;
5295   const char *__pyx_filename = NULL;
5296   int __pyx_clineno = 0;
5297   __Pyx_RefNannySetupContext("visit", 0);
5298   __Pyx_XDECREF(__pyx_r);
5299   __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Visitor_11TreeVisitor_visit(__pyx_v_self, __pyx_v_obj, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 169, __pyx_L1_error)
5300   __Pyx_GOTREF(__pyx_t_1);
5301   __pyx_r = __pyx_t_1;
5302   __pyx_t_1 = 0;
5303   goto __pyx_L0;
5304 
5305   /* function exit code */
5306   __pyx_L1_error:;
5307   __Pyx_XDECREF(__pyx_t_1);
5308   __Pyx_AddTraceback("Cython.Compiler.Visitor.TreeVisitor.visit", __pyx_clineno, __pyx_lineno, __pyx_filename);
5309   __pyx_r = NULL;
5310   __pyx_L0:;
5311   __Pyx_XGIVEREF(__pyx_r);
5312   __Pyx_RefNannyFinishContext();
5313   return __pyx_r;
5314 }
5315 
5316 /* "Cython/Compiler/Visitor.py":173
5317  *
5318  *     @cython.final
5319  *     def _visit(self, obj):             # <<<<<<<<<<<<<<
5320  *         try:
5321  *             try:
5322  */
5323 
__pyx_f_6Cython_8Compiler_7Visitor_11TreeVisitor__visit(struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor * __pyx_v_self,PyObject * __pyx_v_obj)5324 static PyObject *__pyx_f_6Cython_8Compiler_7Visitor_11TreeVisitor__visit(struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor *__pyx_v_self, PyObject *__pyx_v_obj) {
5325   PyObject *__pyx_v_handler_method = NULL;
5326   PyObject *__pyx_v_e = NULL;
5327   PyObject *__pyx_r = NULL;
5328   __Pyx_RefNannyDeclarations
5329   PyObject *__pyx_t_1 = NULL;
5330   PyObject *__pyx_t_2 = NULL;
5331   PyObject *__pyx_t_3 = NULL;
5332   PyObject *__pyx_t_4 = NULL;
5333   PyObject *__pyx_t_5 = NULL;
5334   PyObject *__pyx_t_6 = NULL;
5335   PyObject *__pyx_t_7 = NULL;
5336   int __pyx_t_8;
5337   PyObject *__pyx_t_9 = NULL;
5338   PyObject *__pyx_t_10 = NULL;
5339   PyObject *__pyx_t_11 = NULL;
5340   PyObject *__pyx_t_12 = NULL;
5341   int __pyx_t_13;
5342   int __pyx_t_14;
5343   char const *__pyx_t_15;
5344   PyObject *__pyx_t_16 = NULL;
5345   PyObject *__pyx_t_17 = NULL;
5346   PyObject *__pyx_t_18 = NULL;
5347   int __pyx_lineno = 0;
5348   const char *__pyx_filename = NULL;
5349   int __pyx_clineno = 0;
5350   __Pyx_RefNannySetupContext("_visit", 0);
5351 
5352   /* "Cython/Compiler/Visitor.py":174
5353  *     @cython.final
5354  *     def _visit(self, obj):
5355  *         try:             # <<<<<<<<<<<<<<
5356  *             try:
5357  *                 handler_method = self.dispatch_table[type(obj)]
5358  */
5359   {
5360     __Pyx_PyThreadState_declare
5361     __Pyx_PyThreadState_assign
5362     __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
5363     __Pyx_XGOTREF(__pyx_t_1);
5364     __Pyx_XGOTREF(__pyx_t_2);
5365     __Pyx_XGOTREF(__pyx_t_3);
5366     /*try:*/ {
5367 
5368       /* "Cython/Compiler/Visitor.py":175
5369  *     def _visit(self, obj):
5370  *         try:
5371  *             try:             # <<<<<<<<<<<<<<
5372  *                 handler_method = self.dispatch_table[type(obj)]
5373  *             except KeyError:
5374  */
5375       {
5376         __Pyx_PyThreadState_declare
5377         __Pyx_PyThreadState_assign
5378         __Pyx_ExceptionSave(&__pyx_t_4, &__pyx_t_5, &__pyx_t_6);
5379         __Pyx_XGOTREF(__pyx_t_4);
5380         __Pyx_XGOTREF(__pyx_t_5);
5381         __Pyx_XGOTREF(__pyx_t_6);
5382         /*try:*/ {
5383 
5384           /* "Cython/Compiler/Visitor.py":176
5385  *         try:
5386  *             try:
5387  *                 handler_method = self.dispatch_table[type(obj)]             # <<<<<<<<<<<<<<
5388  *             except KeyError:
5389  *                 handler_method = self.find_handler(obj)
5390  */
5391           if (unlikely(__pyx_v_self->dispatch_table == Py_None)) {
5392             PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
5393             __PYX_ERR(0, 176, __pyx_L9_error)
5394           }
5395           __pyx_t_7 = __Pyx_PyDict_GetItem(__pyx_v_self->dispatch_table, ((PyObject *)Py_TYPE(__pyx_v_obj))); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 176, __pyx_L9_error)
5396           __Pyx_GOTREF(__pyx_t_7);
5397           __pyx_v_handler_method = __pyx_t_7;
5398           __pyx_t_7 = 0;
5399 
5400           /* "Cython/Compiler/Visitor.py":175
5401  *     def _visit(self, obj):
5402  *         try:
5403  *             try:             # <<<<<<<<<<<<<<
5404  *                 handler_method = self.dispatch_table[type(obj)]
5405  *             except KeyError:
5406  */
5407         }
5408         __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
5409         __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
5410         __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
5411         goto __pyx_L14_try_end;
5412         __pyx_L9_error:;
5413         __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
5414 
5415         /* "Cython/Compiler/Visitor.py":177
5416  *             try:
5417  *                 handler_method = self.dispatch_table[type(obj)]
5418  *             except KeyError:             # <<<<<<<<<<<<<<
5419  *                 handler_method = self.find_handler(obj)
5420  *                 self.dispatch_table[type(obj)] = handler_method
5421  */
5422         __pyx_t_8 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_KeyError);
5423         if (__pyx_t_8) {
5424           __Pyx_AddTraceback("Cython.Compiler.Visitor.TreeVisitor._visit", __pyx_clineno, __pyx_lineno, __pyx_filename);
5425           if (__Pyx_GetException(&__pyx_t_7, &__pyx_t_9, &__pyx_t_10) < 0) __PYX_ERR(0, 177, __pyx_L11_except_error)
5426           __Pyx_GOTREF(__pyx_t_7);
5427           __Pyx_GOTREF(__pyx_t_9);
5428           __Pyx_GOTREF(__pyx_t_10);
5429 
5430           /* "Cython/Compiler/Visitor.py":178
5431  *                 handler_method = self.dispatch_table[type(obj)]
5432  *             except KeyError:
5433  *                 handler_method = self.find_handler(obj)             # <<<<<<<<<<<<<<
5434  *                 self.dispatch_table[type(obj)] = handler_method
5435  *             return handler_method(obj)
5436  */
5437           __pyx_t_11 = __pyx_f_6Cython_8Compiler_7Visitor_11TreeVisitor_find_handler(__pyx_v_self, __pyx_v_obj); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 178, __pyx_L11_except_error)
5438           __Pyx_GOTREF(__pyx_t_11);
5439           __Pyx_XDECREF_SET(__pyx_v_handler_method, __pyx_t_11);
5440           __pyx_t_11 = 0;
5441 
5442           /* "Cython/Compiler/Visitor.py":179
5443  *             except KeyError:
5444  *                 handler_method = self.find_handler(obj)
5445  *                 self.dispatch_table[type(obj)] = handler_method             # <<<<<<<<<<<<<<
5446  *             return handler_method(obj)
5447  *         except Errors.CompileError:
5448  */
5449           if (unlikely(__pyx_v_self->dispatch_table == Py_None)) {
5450             PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
5451             __PYX_ERR(0, 179, __pyx_L11_except_error)
5452           }
5453           if (unlikely(PyDict_SetItem(__pyx_v_self->dispatch_table, ((PyObject *)Py_TYPE(__pyx_v_obj)), __pyx_v_handler_method) < 0)) __PYX_ERR(0, 179, __pyx_L11_except_error)
5454           __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
5455           __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
5456           __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
5457           goto __pyx_L10_exception_handled;
5458         }
5459         goto __pyx_L11_except_error;
5460         __pyx_L11_except_error:;
5461 
5462         /* "Cython/Compiler/Visitor.py":175
5463  *     def _visit(self, obj):
5464  *         try:
5465  *             try:             # <<<<<<<<<<<<<<
5466  *                 handler_method = self.dispatch_table[type(obj)]
5467  *             except KeyError:
5468  */
5469         __Pyx_XGIVEREF(__pyx_t_4);
5470         __Pyx_XGIVEREF(__pyx_t_5);
5471         __Pyx_XGIVEREF(__pyx_t_6);
5472         __Pyx_ExceptionReset(__pyx_t_4, __pyx_t_5, __pyx_t_6);
5473         goto __pyx_L3_error;
5474         __pyx_L10_exception_handled:;
5475         __Pyx_XGIVEREF(__pyx_t_4);
5476         __Pyx_XGIVEREF(__pyx_t_5);
5477         __Pyx_XGIVEREF(__pyx_t_6);
5478         __Pyx_ExceptionReset(__pyx_t_4, __pyx_t_5, __pyx_t_6);
5479         __pyx_L14_try_end:;
5480       }
5481 
5482       /* "Cython/Compiler/Visitor.py":180
5483  *                 handler_method = self.find_handler(obj)
5484  *                 self.dispatch_table[type(obj)] = handler_method
5485  *             return handler_method(obj)             # <<<<<<<<<<<<<<
5486  *         except Errors.CompileError:
5487  *             raise
5488  */
5489       __Pyx_XDECREF(__pyx_r);
5490       __Pyx_INCREF(__pyx_v_handler_method);
5491       __pyx_t_9 = __pyx_v_handler_method; __pyx_t_7 = NULL;
5492       if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_9))) {
5493         __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_9);
5494         if (likely(__pyx_t_7)) {
5495           PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9);
5496           __Pyx_INCREF(__pyx_t_7);
5497           __Pyx_INCREF(function);
5498           __Pyx_DECREF_SET(__pyx_t_9, function);
5499         }
5500       }
5501       __pyx_t_10 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_9, __pyx_t_7, __pyx_v_obj) : __Pyx_PyObject_CallOneArg(__pyx_t_9, __pyx_v_obj);
5502       __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
5503       if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 180, __pyx_L3_error)
5504       __Pyx_GOTREF(__pyx_t_10);
5505       __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
5506       __pyx_r = __pyx_t_10;
5507       __pyx_t_10 = 0;
5508       goto __pyx_L7_try_return;
5509 
5510       /* "Cython/Compiler/Visitor.py":174
5511  *     @cython.final
5512  *     def _visit(self, obj):
5513  *         try:             # <<<<<<<<<<<<<<
5514  *             try:
5515  *                 handler_method = self.dispatch_table[type(obj)]
5516  */
5517     }
5518     __pyx_L3_error:;
5519     __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
5520     __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
5521     __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
5522     __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
5523 
5524     /* "Cython/Compiler/Visitor.py":181
5525  *                 self.dispatch_table[type(obj)] = handler_method
5526  *             return handler_method(obj)
5527  *         except Errors.CompileError:             # <<<<<<<<<<<<<<
5528  *             raise
5529  *         except Errors.AbortError:
5530  */
5531     __Pyx_ErrFetch(&__pyx_t_10, &__pyx_t_9, &__pyx_t_7);
5532     __Pyx_GetModuleGlobalName(__pyx_t_11, __pyx_n_s_Errors); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 181, __pyx_L5_except_error)
5533     __Pyx_GOTREF(__pyx_t_11);
5534     __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_11, __pyx_n_s_CompileError); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 181, __pyx_L5_except_error)
5535     __Pyx_GOTREF(__pyx_t_12);
5536     __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
5537     __pyx_t_8 = __Pyx_PyErr_GivenExceptionMatches(__pyx_t_10, __pyx_t_12);
5538     __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
5539     __Pyx_ErrRestore(__pyx_t_10, __pyx_t_9, __pyx_t_7);
5540     __pyx_t_10 = 0; __pyx_t_9 = 0; __pyx_t_7 = 0;
5541     if (__pyx_t_8) {
5542       __Pyx_AddTraceback("Cython.Compiler.Visitor.TreeVisitor._visit", __pyx_clineno, __pyx_lineno, __pyx_filename);
5543       if (__Pyx_GetException(&__pyx_t_7, &__pyx_t_9, &__pyx_t_10) < 0) __PYX_ERR(0, 181, __pyx_L5_except_error)
5544       __Pyx_GOTREF(__pyx_t_7);
5545       __Pyx_GOTREF(__pyx_t_9);
5546       __Pyx_GOTREF(__pyx_t_10);
5547 
5548       /* "Cython/Compiler/Visitor.py":182
5549  *             return handler_method(obj)
5550  *         except Errors.CompileError:
5551  *             raise             # <<<<<<<<<<<<<<
5552  *         except Errors.AbortError:
5553  *             raise
5554  */
5555       __Pyx_GIVEREF(__pyx_t_7);
5556       __Pyx_GIVEREF(__pyx_t_9);
5557       __Pyx_XGIVEREF(__pyx_t_10);
5558       __Pyx_ErrRestoreWithState(__pyx_t_7, __pyx_t_9, __pyx_t_10);
5559       __pyx_t_7 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0;
5560       __PYX_ERR(0, 182, __pyx_L5_except_error)
5561     }
5562 
5563     /* "Cython/Compiler/Visitor.py":183
5564  *         except Errors.CompileError:
5565  *             raise
5566  *         except Errors.AbortError:             # <<<<<<<<<<<<<<
5567  *             raise
5568  *         except Exception as e:
5569  */
5570     __Pyx_ErrFetch(&__pyx_t_10, &__pyx_t_9, &__pyx_t_7);
5571     __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_n_s_Errors); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 183, __pyx_L5_except_error)
5572     __Pyx_GOTREF(__pyx_t_12);
5573     __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_AbortError); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 183, __pyx_L5_except_error)
5574     __Pyx_GOTREF(__pyx_t_11);
5575     __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
5576     __pyx_t_8 = __Pyx_PyErr_GivenExceptionMatches(__pyx_t_10, __pyx_t_11);
5577     __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
5578     __Pyx_ErrRestore(__pyx_t_10, __pyx_t_9, __pyx_t_7);
5579     __pyx_t_10 = 0; __pyx_t_9 = 0; __pyx_t_7 = 0;
5580     if (__pyx_t_8) {
5581       __Pyx_AddTraceback("Cython.Compiler.Visitor.TreeVisitor._visit", __pyx_clineno, __pyx_lineno, __pyx_filename);
5582       if (__Pyx_GetException(&__pyx_t_7, &__pyx_t_9, &__pyx_t_10) < 0) __PYX_ERR(0, 183, __pyx_L5_except_error)
5583       __Pyx_GOTREF(__pyx_t_7);
5584       __Pyx_GOTREF(__pyx_t_9);
5585       __Pyx_GOTREF(__pyx_t_10);
5586 
5587       /* "Cython/Compiler/Visitor.py":184
5588  *             raise
5589  *         except Errors.AbortError:
5590  *             raise             # <<<<<<<<<<<<<<
5591  *         except Exception as e:
5592  *             if DebugFlags.debug_no_exception_intercept:
5593  */
5594       __Pyx_GIVEREF(__pyx_t_7);
5595       __Pyx_GIVEREF(__pyx_t_9);
5596       __Pyx_XGIVEREF(__pyx_t_10);
5597       __Pyx_ErrRestoreWithState(__pyx_t_7, __pyx_t_9, __pyx_t_10);
5598       __pyx_t_7 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0;
5599       __PYX_ERR(0, 184, __pyx_L5_except_error)
5600     }
5601 
5602     /* "Cython/Compiler/Visitor.py":185
5603  *         except Errors.AbortError:
5604  *             raise
5605  *         except Exception as e:             # <<<<<<<<<<<<<<
5606  *             if DebugFlags.debug_no_exception_intercept:
5607  *                 raise
5608  */
5609     __pyx_t_8 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0])));
5610     if (__pyx_t_8) {
5611       __Pyx_AddTraceback("Cython.Compiler.Visitor.TreeVisitor._visit", __pyx_clineno, __pyx_lineno, __pyx_filename);
5612       if (__Pyx_GetException(&__pyx_t_10, &__pyx_t_9, &__pyx_t_7) < 0) __PYX_ERR(0, 185, __pyx_L5_except_error)
5613       __Pyx_GOTREF(__pyx_t_10);
5614       __Pyx_GOTREF(__pyx_t_9);
5615       __Pyx_GOTREF(__pyx_t_7);
5616       __Pyx_INCREF(__pyx_t_9);
5617       __pyx_v_e = __pyx_t_9;
5618       /*try:*/ {
5619 
5620         /* "Cython/Compiler/Visitor.py":186
5621  *             raise
5622  *         except Exception as e:
5623  *             if DebugFlags.debug_no_exception_intercept:             # <<<<<<<<<<<<<<
5624  *                 raise
5625  *             self._raise_compiler_error(obj, e)
5626  */
5627         __Pyx_GetModuleGlobalName(__pyx_t_11, __pyx_n_s_DebugFlags); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 186, __pyx_L26_error)
5628         __Pyx_GOTREF(__pyx_t_11);
5629         __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_11, __pyx_n_s_debug_no_exception_intercept); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 186, __pyx_L26_error)
5630         __Pyx_GOTREF(__pyx_t_12);
5631         __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
5632         __pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_t_12); if (unlikely(__pyx_t_13 < 0)) __PYX_ERR(0, 186, __pyx_L26_error)
5633         __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
5634         if (unlikely(__pyx_t_13)) {
5635 
5636           /* "Cython/Compiler/Visitor.py":187
5637  *         except Exception as e:
5638  *             if DebugFlags.debug_no_exception_intercept:
5639  *                 raise             # <<<<<<<<<<<<<<
5640  *             self._raise_compiler_error(obj, e)
5641  *
5642  */
5643           __Pyx_GIVEREF(__pyx_t_10);
5644           __Pyx_GIVEREF(__pyx_t_9);
5645           __Pyx_XGIVEREF(__pyx_t_7);
5646           __Pyx_ErrRestoreWithState(__pyx_t_10, __pyx_t_9, __pyx_t_7);
5647           __pyx_t_10 = 0; __pyx_t_9 = 0; __pyx_t_7 = 0;
5648           __PYX_ERR(0, 187, __pyx_L26_error)
5649 
5650           /* "Cython/Compiler/Visitor.py":186
5651  *             raise
5652  *         except Exception as e:
5653  *             if DebugFlags.debug_no_exception_intercept:             # <<<<<<<<<<<<<<
5654  *                 raise
5655  *             self._raise_compiler_error(obj, e)
5656  */
5657         }
5658 
5659         /* "Cython/Compiler/Visitor.py":188
5660  *             if DebugFlags.debug_no_exception_intercept:
5661  *                 raise
5662  *             self._raise_compiler_error(obj, e)             # <<<<<<<<<<<<<<
5663  *
5664  *     @cython.final
5665  */
5666         __pyx_t_12 = ((struct __pyx_vtabstruct_6Cython_8Compiler_7Visitor_TreeVisitor *)__pyx_v_self->__pyx_vtab)->_raise_compiler_error(__pyx_v_self, __pyx_v_obj, __pyx_v_e); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 188, __pyx_L26_error)
5667         __Pyx_GOTREF(__pyx_t_12);
5668         __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
5669       }
5670 
5671       /* "Cython/Compiler/Visitor.py":185
5672  *         except Errors.AbortError:
5673  *             raise
5674  *         except Exception as e:             # <<<<<<<<<<<<<<
5675  *             if DebugFlags.debug_no_exception_intercept:
5676  *                 raise
5677  */
5678       /*finally:*/ {
5679         /*normal exit:*/{
5680           __Pyx_DECREF(__pyx_v_e);
5681           __pyx_v_e = NULL;
5682           goto __pyx_L27;
5683         }
5684         __pyx_L26_error:;
5685         /*exception exit:*/{
5686           __Pyx_PyThreadState_declare
5687           __Pyx_PyThreadState_assign
5688           __pyx_t_6 = 0; __pyx_t_5 = 0; __pyx_t_4 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0;
5689           __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
5690           __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
5691           if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_16, &__pyx_t_17, &__pyx_t_18);
5692           if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_6, &__pyx_t_5, &__pyx_t_4) < 0)) __Pyx_ErrFetch(&__pyx_t_6, &__pyx_t_5, &__pyx_t_4);
5693           __Pyx_XGOTREF(__pyx_t_6);
5694           __Pyx_XGOTREF(__pyx_t_5);
5695           __Pyx_XGOTREF(__pyx_t_4);
5696           __Pyx_XGOTREF(__pyx_t_16);
5697           __Pyx_XGOTREF(__pyx_t_17);
5698           __Pyx_XGOTREF(__pyx_t_18);
5699           __pyx_t_8 = __pyx_lineno; __pyx_t_14 = __pyx_clineno; __pyx_t_15 = __pyx_filename;
5700           {
5701             __Pyx_DECREF(__pyx_v_e);
5702             __pyx_v_e = NULL;
5703           }
5704           if (PY_MAJOR_VERSION >= 3) {
5705             __Pyx_XGIVEREF(__pyx_t_16);
5706             __Pyx_XGIVEREF(__pyx_t_17);
5707             __Pyx_XGIVEREF(__pyx_t_18);
5708             __Pyx_ExceptionReset(__pyx_t_16, __pyx_t_17, __pyx_t_18);
5709           }
5710           __Pyx_XGIVEREF(__pyx_t_6);
5711           __Pyx_XGIVEREF(__pyx_t_5);
5712           __Pyx_XGIVEREF(__pyx_t_4);
5713           __Pyx_ErrRestore(__pyx_t_6, __pyx_t_5, __pyx_t_4);
5714           __pyx_t_6 = 0; __pyx_t_5 = 0; __pyx_t_4 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0;
5715           __pyx_lineno = __pyx_t_8; __pyx_clineno = __pyx_t_14; __pyx_filename = __pyx_t_15;
5716           goto __pyx_L5_except_error;
5717         }
5718         __pyx_L27:;
5719       }
5720       __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
5721       __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
5722       __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
5723       goto __pyx_L4_exception_handled;
5724     }
5725     goto __pyx_L5_except_error;
5726     __pyx_L5_except_error:;
5727 
5728     /* "Cython/Compiler/Visitor.py":174
5729  *     @cython.final
5730  *     def _visit(self, obj):
5731  *         try:             # <<<<<<<<<<<<<<
5732  *             try:
5733  *                 handler_method = self.dispatch_table[type(obj)]
5734  */
5735     __Pyx_XGIVEREF(__pyx_t_1);
5736     __Pyx_XGIVEREF(__pyx_t_2);
5737     __Pyx_XGIVEREF(__pyx_t_3);
5738     __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
5739     goto __pyx_L1_error;
5740     __pyx_L7_try_return:;
5741     __Pyx_XGIVEREF(__pyx_t_1);
5742     __Pyx_XGIVEREF(__pyx_t_2);
5743     __Pyx_XGIVEREF(__pyx_t_3);
5744     __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
5745     goto __pyx_L0;
5746     __pyx_L4_exception_handled:;
5747     __Pyx_XGIVEREF(__pyx_t_1);
5748     __Pyx_XGIVEREF(__pyx_t_2);
5749     __Pyx_XGIVEREF(__pyx_t_3);
5750     __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
5751   }
5752 
5753   /* "Cython/Compiler/Visitor.py":173
5754  *
5755  *     @cython.final
5756  *     def _visit(self, obj):             # <<<<<<<<<<<<<<
5757  *         try:
5758  *             try:
5759  */
5760 
5761   /* function exit code */
5762   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
5763   goto __pyx_L0;
5764   __pyx_L1_error:;
5765   __Pyx_XDECREF(__pyx_t_7);
5766   __Pyx_XDECREF(__pyx_t_9);
5767   __Pyx_XDECREF(__pyx_t_10);
5768   __Pyx_XDECREF(__pyx_t_11);
5769   __Pyx_XDECREF(__pyx_t_12);
5770   __Pyx_AddTraceback("Cython.Compiler.Visitor.TreeVisitor._visit", __pyx_clineno, __pyx_lineno, __pyx_filename);
5771   __pyx_r = 0;
5772   __pyx_L0:;
5773   __Pyx_XDECREF(__pyx_v_handler_method);
5774   __Pyx_XDECREF(__pyx_v_e);
5775   __Pyx_XGIVEREF(__pyx_r);
5776   __Pyx_RefNannyFinishContext();
5777   return __pyx_r;
5778 }
5779 
5780 /* "Cython/Compiler/Visitor.py":191
5781  *
5782  *     @cython.final
5783  *     def _visitchild(self, child, parent, attrname, idx):             # <<<<<<<<<<<<<<
5784  *         self.access_path.append((parent, attrname, idx))
5785  *         result = self._visit(child)
5786  */
5787 
__pyx_f_6Cython_8Compiler_7Visitor_11TreeVisitor__visitchild(struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor * __pyx_v_self,PyObject * __pyx_v_child,PyObject * __pyx_v_parent,PyObject * __pyx_v_attrname,PyObject * __pyx_v_idx)5788 static PyObject *__pyx_f_6Cython_8Compiler_7Visitor_11TreeVisitor__visitchild(struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor *__pyx_v_self, PyObject *__pyx_v_child, PyObject *__pyx_v_parent, PyObject *__pyx_v_attrname, PyObject *__pyx_v_idx) {
5789   PyObject *__pyx_v_result = NULL;
5790   PyObject *__pyx_r = NULL;
5791   __Pyx_RefNannyDeclarations
5792   PyObject *__pyx_t_1 = NULL;
5793   int __pyx_t_2;
5794   int __pyx_lineno = 0;
5795   const char *__pyx_filename = NULL;
5796   int __pyx_clineno = 0;
5797   __Pyx_RefNannySetupContext("_visitchild", 0);
5798 
5799   /* "Cython/Compiler/Visitor.py":192
5800  *     @cython.final
5801  *     def _visitchild(self, child, parent, attrname, idx):
5802  *         self.access_path.append((parent, attrname, idx))             # <<<<<<<<<<<<<<
5803  *         result = self._visit(child)
5804  *         self.access_path.pop()
5805  */
5806   if (unlikely(__pyx_v_self->access_path == Py_None)) {
5807     PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "append");
5808     __PYX_ERR(0, 192, __pyx_L1_error)
5809   }
5810   __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 192, __pyx_L1_error)
5811   __Pyx_GOTREF(__pyx_t_1);
5812   __Pyx_INCREF(__pyx_v_parent);
5813   __Pyx_GIVEREF(__pyx_v_parent);
5814   PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_parent);
5815   __Pyx_INCREF(__pyx_v_attrname);
5816   __Pyx_GIVEREF(__pyx_v_attrname);
5817   PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_attrname);
5818   __Pyx_INCREF(__pyx_v_idx);
5819   __Pyx_GIVEREF(__pyx_v_idx);
5820   PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_idx);
5821   __pyx_t_2 = __Pyx_PyList_Append(__pyx_v_self->access_path, __pyx_t_1); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 192, __pyx_L1_error)
5822   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
5823 
5824   /* "Cython/Compiler/Visitor.py":193
5825  *     def _visitchild(self, child, parent, attrname, idx):
5826  *         self.access_path.append((parent, attrname, idx))
5827  *         result = self._visit(child)             # <<<<<<<<<<<<<<
5828  *         self.access_path.pop()
5829  *         return result
5830  */
5831   __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Visitor_11TreeVisitor__visit(__pyx_v_self, __pyx_v_child); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 193, __pyx_L1_error)
5832   __Pyx_GOTREF(__pyx_t_1);
5833   __pyx_v_result = __pyx_t_1;
5834   __pyx_t_1 = 0;
5835 
5836   /* "Cython/Compiler/Visitor.py":194
5837  *         self.access_path.append((parent, attrname, idx))
5838  *         result = self._visit(child)
5839  *         self.access_path.pop()             # <<<<<<<<<<<<<<
5840  *         return result
5841  *
5842  */
5843   if (unlikely(__pyx_v_self->access_path == Py_None)) {
5844     PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "pop");
5845     __PYX_ERR(0, 194, __pyx_L1_error)
5846   }
5847   __pyx_t_1 = __Pyx_PyList_Pop(__pyx_v_self->access_path); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 194, __pyx_L1_error)
5848   __Pyx_GOTREF(__pyx_t_1);
5849   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
5850 
5851   /* "Cython/Compiler/Visitor.py":195
5852  *         result = self._visit(child)
5853  *         self.access_path.pop()
5854  *         return result             # <<<<<<<<<<<<<<
5855  *
5856  *     def visitchildren(self, parent, attrs=None):
5857  */
5858   __Pyx_XDECREF(__pyx_r);
5859   __Pyx_INCREF(__pyx_v_result);
5860   __pyx_r = __pyx_v_result;
5861   goto __pyx_L0;
5862 
5863   /* "Cython/Compiler/Visitor.py":191
5864  *
5865  *     @cython.final
5866  *     def _visitchild(self, child, parent, attrname, idx):             # <<<<<<<<<<<<<<
5867  *         self.access_path.append((parent, attrname, idx))
5868  *         result = self._visit(child)
5869  */
5870 
5871   /* function exit code */
5872   __pyx_L1_error:;
5873   __Pyx_XDECREF(__pyx_t_1);
5874   __Pyx_AddTraceback("Cython.Compiler.Visitor.TreeVisitor._visitchild", __pyx_clineno, __pyx_lineno, __pyx_filename);
5875   __pyx_r = 0;
5876   __pyx_L0:;
5877   __Pyx_XDECREF(__pyx_v_result);
5878   __Pyx_XGIVEREF(__pyx_r);
5879   __Pyx_RefNannyFinishContext();
5880   return __pyx_r;
5881 }
5882 
5883 /* "Cython/Compiler/Visitor.py":197
5884  *         return result
5885  *
5886  *     def visitchildren(self, parent, attrs=None):             # <<<<<<<<<<<<<<
5887  *         return self._visitchildren(parent, attrs)
5888  *
5889  */
5890 
5891 static PyObject *__pyx_pw_6Cython_8Compiler_7Visitor_11TreeVisitor_9visitchildren(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
__pyx_f_6Cython_8Compiler_7Visitor_11TreeVisitor_visitchildren(struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor * __pyx_v_self,PyObject * __pyx_v_parent,int __pyx_skip_dispatch,struct __pyx_opt_args_6Cython_8Compiler_7Visitor_11TreeVisitor_visitchildren * __pyx_optional_args)5892 static PyObject *__pyx_f_6Cython_8Compiler_7Visitor_11TreeVisitor_visitchildren(struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor *__pyx_v_self, PyObject *__pyx_v_parent, int __pyx_skip_dispatch, struct __pyx_opt_args_6Cython_8Compiler_7Visitor_11TreeVisitor_visitchildren *__pyx_optional_args) {
5893   PyObject *__pyx_v_attrs = ((PyObject *)Py_None);
5894   PyObject *__pyx_r = NULL;
5895   __Pyx_RefNannyDeclarations
5896   PyObject *__pyx_t_1 = NULL;
5897   PyObject *__pyx_t_2 = NULL;
5898   PyObject *__pyx_t_3 = NULL;
5899   PyObject *__pyx_t_4 = NULL;
5900   int __pyx_t_5;
5901   PyObject *__pyx_t_6 = NULL;
5902   int __pyx_lineno = 0;
5903   const char *__pyx_filename = NULL;
5904   int __pyx_clineno = 0;
5905   __Pyx_RefNannySetupContext("visitchildren", 0);
5906   if (__pyx_optional_args) {
5907     if (__pyx_optional_args->__pyx_n > 0) {
5908       __pyx_v_attrs = __pyx_optional_args->attrs;
5909     }
5910   }
5911   /* Check if called by wrapper */
5912   if (unlikely(__pyx_skip_dispatch)) ;
5913   /* Check if overridden in Python */
5914   else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || (Py_TYPE(((PyObject *)__pyx_v_self))->tp_flags & (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
5915     #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
5916     static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
5917     if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
5918       PY_UINT64_T __pyx_type_dict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
5919       #endif
5920       __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_visitchildren); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 197, __pyx_L1_error)
5921       __Pyx_GOTREF(__pyx_t_1);
5922       if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_6Cython_8Compiler_7Visitor_11TreeVisitor_9visitchildren)) {
5923         __Pyx_XDECREF(__pyx_r);
5924         __Pyx_INCREF(__pyx_t_1);
5925         __pyx_t_3 = __pyx_t_1; __pyx_t_4 = NULL;
5926         __pyx_t_5 = 0;
5927         if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
5928           __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
5929           if (likely(__pyx_t_4)) {
5930             PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
5931             __Pyx_INCREF(__pyx_t_4);
5932             __Pyx_INCREF(function);
5933             __Pyx_DECREF_SET(__pyx_t_3, function);
5934             __pyx_t_5 = 1;
5935           }
5936         }
5937         #if CYTHON_FAST_PYCALL
5938         if (PyFunction_Check(__pyx_t_3)) {
5939           PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_v_parent, __pyx_v_attrs};
5940           __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 197, __pyx_L1_error)
5941           __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
5942           __Pyx_GOTREF(__pyx_t_2);
5943         } else
5944         #endif
5945         #if CYTHON_FAST_PYCCALL
5946         if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
5947           PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_v_parent, __pyx_v_attrs};
5948           __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 197, __pyx_L1_error)
5949           __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
5950           __Pyx_GOTREF(__pyx_t_2);
5951         } else
5952         #endif
5953         {
5954           __pyx_t_6 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 197, __pyx_L1_error)
5955           __Pyx_GOTREF(__pyx_t_6);
5956           if (__pyx_t_4) {
5957             __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4); __pyx_t_4 = NULL;
5958           }
5959           __Pyx_INCREF(__pyx_v_parent);
5960           __Pyx_GIVEREF(__pyx_v_parent);
5961           PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_5, __pyx_v_parent);
5962           __Pyx_INCREF(__pyx_v_attrs);
5963           __Pyx_GIVEREF(__pyx_v_attrs);
5964           PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_5, __pyx_v_attrs);
5965           __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 197, __pyx_L1_error)
5966           __Pyx_GOTREF(__pyx_t_2);
5967           __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
5968         }
5969         __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
5970         __pyx_r = __pyx_t_2;
5971         __pyx_t_2 = 0;
5972         __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
5973         goto __pyx_L0;
5974       }
5975       #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
5976       __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
5977       __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
5978       if (unlikely(__pyx_type_dict_guard != __pyx_tp_dict_version)) {
5979         __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
5980       }
5981       #endif
5982       __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
5983       #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
5984     }
5985     #endif
5986   }
5987 
5988   /* "Cython/Compiler/Visitor.py":198
5989  *
5990  *     def visitchildren(self, parent, attrs=None):
5991  *         return self._visitchildren(parent, attrs)             # <<<<<<<<<<<<<<
5992  *
5993  *     @cython.final
5994  */
5995   __Pyx_XDECREF(__pyx_r);
5996   __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Visitor_11TreeVisitor__visitchildren(__pyx_v_self, __pyx_v_parent, __pyx_v_attrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 198, __pyx_L1_error)
5997   __Pyx_GOTREF(__pyx_t_1);
5998   __pyx_r = __pyx_t_1;
5999   __pyx_t_1 = 0;
6000   goto __pyx_L0;
6001 
6002   /* "Cython/Compiler/Visitor.py":197
6003  *         return result
6004  *
6005  *     def visitchildren(self, parent, attrs=None):             # <<<<<<<<<<<<<<
6006  *         return self._visitchildren(parent, attrs)
6007  *
6008  */
6009 
6010   /* function exit code */
6011   __pyx_L1_error:;
6012   __Pyx_XDECREF(__pyx_t_1);
6013   __Pyx_XDECREF(__pyx_t_2);
6014   __Pyx_XDECREF(__pyx_t_3);
6015   __Pyx_XDECREF(__pyx_t_4);
6016   __Pyx_XDECREF(__pyx_t_6);
6017   __Pyx_AddTraceback("Cython.Compiler.Visitor.TreeVisitor.visitchildren", __pyx_clineno, __pyx_lineno, __pyx_filename);
6018   __pyx_r = 0;
6019   __pyx_L0:;
6020   __Pyx_XGIVEREF(__pyx_r);
6021   __Pyx_RefNannyFinishContext();
6022   return __pyx_r;
6023 }
6024 
6025 /* Python wrapper */
6026 static PyObject *__pyx_pw_6Cython_8Compiler_7Visitor_11TreeVisitor_9visitchildren(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
6027 static PyMethodDef __pyx_mdef_6Cython_8Compiler_7Visitor_11TreeVisitor_9visitchildren = {"visitchildren", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6Cython_8Compiler_7Visitor_11TreeVisitor_9visitchildren, METH_VARARGS|METH_KEYWORDS, 0};
__pyx_pw_6Cython_8Compiler_7Visitor_11TreeVisitor_9visitchildren(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)6028 static PyObject *__pyx_pw_6Cython_8Compiler_7Visitor_11TreeVisitor_9visitchildren(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
6029   PyObject *__pyx_v_parent = 0;
6030   PyObject *__pyx_v_attrs = 0;
6031   int __pyx_lineno = 0;
6032   const char *__pyx_filename = NULL;
6033   int __pyx_clineno = 0;
6034   PyObject *__pyx_r = 0;
6035   __Pyx_RefNannyDeclarations
6036   __Pyx_RefNannySetupContext("visitchildren (wrapper)", 0);
6037   {
6038     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_parent,&__pyx_n_s_attrs,0};
6039     PyObject* values[2] = {0,0};
6040     values[1] = ((PyObject *)Py_None);
6041     if (unlikely(__pyx_kwds)) {
6042       Py_ssize_t kw_args;
6043       const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
6044       switch (pos_args) {
6045         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
6046         CYTHON_FALLTHROUGH;
6047         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
6048         CYTHON_FALLTHROUGH;
6049         case  0: break;
6050         default: goto __pyx_L5_argtuple_error;
6051       }
6052       kw_args = PyDict_Size(__pyx_kwds);
6053       switch (pos_args) {
6054         case  0:
6055         if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_parent)) != 0)) kw_args--;
6056         else goto __pyx_L5_argtuple_error;
6057         CYTHON_FALLTHROUGH;
6058         case  1:
6059         if (kw_args > 0) {
6060           PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_attrs);
6061           if (value) { values[1] = value; kw_args--; }
6062         }
6063       }
6064       if (unlikely(kw_args > 0)) {
6065         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "visitchildren") < 0)) __PYX_ERR(0, 197, __pyx_L3_error)
6066       }
6067     } else {
6068       switch (PyTuple_GET_SIZE(__pyx_args)) {
6069         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
6070         CYTHON_FALLTHROUGH;
6071         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
6072         break;
6073         default: goto __pyx_L5_argtuple_error;
6074       }
6075     }
6076     __pyx_v_parent = values[0];
6077     __pyx_v_attrs = values[1];
6078   }
6079   goto __pyx_L4_argument_unpacking_done;
6080   __pyx_L5_argtuple_error:;
6081   __Pyx_RaiseArgtupleInvalid("visitchildren", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 197, __pyx_L3_error)
6082   __pyx_L3_error:;
6083   __Pyx_AddTraceback("Cython.Compiler.Visitor.TreeVisitor.visitchildren", __pyx_clineno, __pyx_lineno, __pyx_filename);
6084   __Pyx_RefNannyFinishContext();
6085   return NULL;
6086   __pyx_L4_argument_unpacking_done:;
6087   __pyx_r = __pyx_pf_6Cython_8Compiler_7Visitor_11TreeVisitor_8visitchildren(((struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor *)__pyx_v_self), __pyx_v_parent, __pyx_v_attrs);
6088 
6089   /* function exit code */
6090   __Pyx_RefNannyFinishContext();
6091   return __pyx_r;
6092 }
6093 
__pyx_pf_6Cython_8Compiler_7Visitor_11TreeVisitor_8visitchildren(struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor * __pyx_v_self,PyObject * __pyx_v_parent,PyObject * __pyx_v_attrs)6094 static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_11TreeVisitor_8visitchildren(struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor *__pyx_v_self, PyObject *__pyx_v_parent, PyObject *__pyx_v_attrs) {
6095   PyObject *__pyx_r = NULL;
6096   __Pyx_RefNannyDeclarations
6097   PyObject *__pyx_t_1 = NULL;
6098   struct __pyx_opt_args_6Cython_8Compiler_7Visitor_11TreeVisitor_visitchildren __pyx_t_2;
6099   int __pyx_lineno = 0;
6100   const char *__pyx_filename = NULL;
6101   int __pyx_clineno = 0;
6102   __Pyx_RefNannySetupContext("visitchildren", 0);
6103   __Pyx_XDECREF(__pyx_r);
6104   __pyx_t_2.__pyx_n = 1;
6105   __pyx_t_2.attrs = __pyx_v_attrs;
6106   __pyx_t_1 = __pyx_vtabptr_6Cython_8Compiler_7Visitor_TreeVisitor->visitchildren(__pyx_v_self, __pyx_v_parent, 1, &__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 197, __pyx_L1_error)
6107   __Pyx_GOTREF(__pyx_t_1);
6108   __pyx_r = __pyx_t_1;
6109   __pyx_t_1 = 0;
6110   goto __pyx_L0;
6111 
6112   /* function exit code */
6113   __pyx_L1_error:;
6114   __Pyx_XDECREF(__pyx_t_1);
6115   __Pyx_AddTraceback("Cython.Compiler.Visitor.TreeVisitor.visitchildren", __pyx_clineno, __pyx_lineno, __pyx_filename);
6116   __pyx_r = NULL;
6117   __pyx_L0:;
6118   __Pyx_XGIVEREF(__pyx_r);
6119   __Pyx_RefNannyFinishContext();
6120   return __pyx_r;
6121 }
6122 
6123 /* "Cython/Compiler/Visitor.py":202
6124  *     @cython.final
6125  *     @cython.locals(idx=int)
6126  *     def _visitchildren(self, parent, attrs):             # <<<<<<<<<<<<<<
6127  *         """
6128  *         Visits the children of the given parent. If parent is None, returns
6129  */
6130 
__pyx_f_6Cython_8Compiler_7Visitor_11TreeVisitor__visitchildren(struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor * __pyx_v_self,PyObject * __pyx_v_parent,PyObject * __pyx_v_attrs)6131 static PyObject *__pyx_f_6Cython_8Compiler_7Visitor_11TreeVisitor__visitchildren(struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor *__pyx_v_self, PyObject *__pyx_v_parent, PyObject *__pyx_v_attrs) {
6132   PyObject *__pyx_v_result = NULL;
6133   PyObject *__pyx_v_attr = NULL;
6134   PyObject *__pyx_v_child = NULL;
6135   PyObject *__pyx_v_childretval = NULL;
6136   int __pyx_7genexpr__pyx_v_idx;
6137   PyObject *__pyx_7genexpr__pyx_v_x = NULL;
6138   PyObject *__pyx_r = NULL;
6139   __Pyx_RefNannyDeclarations
6140   int __pyx_t_1;
6141   int __pyx_t_2;
6142   PyObject *__pyx_t_3 = NULL;
6143   PyObject *__pyx_t_4 = NULL;
6144   Py_ssize_t __pyx_t_5;
6145   PyObject *(*__pyx_t_6)(PyObject *);
6146   int __pyx_t_7;
6147   int __pyx_t_8;
6148   PyObject *__pyx_t_9 = NULL;
6149   Py_ssize_t __pyx_t_10;
6150   PyObject *(*__pyx_t_11)(PyObject *);
6151   PyObject *__pyx_t_12 = NULL;
6152   PyObject *__pyx_t_13 = NULL;
6153   Py_UCS4 __pyx_t_14;
6154   int __pyx_lineno = 0;
6155   const char *__pyx_filename = NULL;
6156   int __pyx_clineno = 0;
6157   __Pyx_RefNannySetupContext("_visitchildren", 0);
6158 
6159   /* "Cython/Compiler/Visitor.py":212
6160  *         in an attribute)).
6161  *         """
6162  *         if parent is None: return None             # <<<<<<<<<<<<<<
6163  *         result = {}
6164  *         for attr in parent.child_attrs:
6165  */
6166   __pyx_t_1 = (__pyx_v_parent == Py_None);
6167   __pyx_t_2 = (__pyx_t_1 != 0);
6168   if (__pyx_t_2) {
6169     __Pyx_XDECREF(__pyx_r);
6170     __pyx_r = ((PyObject*)Py_None); __Pyx_INCREF(Py_None);
6171     goto __pyx_L0;
6172   }
6173 
6174   /* "Cython/Compiler/Visitor.py":213
6175  *         """
6176  *         if parent is None: return None
6177  *         result = {}             # <<<<<<<<<<<<<<
6178  *         for attr in parent.child_attrs:
6179  *             if attrs is not None and attr not in attrs: continue
6180  */
6181   __pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 213, __pyx_L1_error)
6182   __Pyx_GOTREF(__pyx_t_3);
6183   __pyx_v_result = ((PyObject*)__pyx_t_3);
6184   __pyx_t_3 = 0;
6185 
6186   /* "Cython/Compiler/Visitor.py":214
6187  *         if parent is None: return None
6188  *         result = {}
6189  *         for attr in parent.child_attrs:             # <<<<<<<<<<<<<<
6190  *             if attrs is not None and attr not in attrs: continue
6191  *             child = getattr(parent, attr)
6192  */
6193   __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_parent, __pyx_n_s_child_attrs); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 214, __pyx_L1_error)
6194   __Pyx_GOTREF(__pyx_t_3);
6195   if (likely(PyList_CheckExact(__pyx_t_3)) || PyTuple_CheckExact(__pyx_t_3)) {
6196     __pyx_t_4 = __pyx_t_3; __Pyx_INCREF(__pyx_t_4); __pyx_t_5 = 0;
6197     __pyx_t_6 = NULL;
6198   } else {
6199     __pyx_t_5 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 214, __pyx_L1_error)
6200     __Pyx_GOTREF(__pyx_t_4);
6201     __pyx_t_6 = Py_TYPE(__pyx_t_4)->tp_iternext; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 214, __pyx_L1_error)
6202   }
6203   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
6204   for (;;) {
6205     if (likely(!__pyx_t_6)) {
6206       if (likely(PyList_CheckExact(__pyx_t_4))) {
6207         if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_4)) break;
6208         #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
6209         __pyx_t_3 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_5); __Pyx_INCREF(__pyx_t_3); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 214, __pyx_L1_error)
6210         #else
6211         __pyx_t_3 = PySequence_ITEM(__pyx_t_4, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 214, __pyx_L1_error)
6212         __Pyx_GOTREF(__pyx_t_3);
6213         #endif
6214       } else {
6215         if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_4)) break;
6216         #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
6217         __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_5); __Pyx_INCREF(__pyx_t_3); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 214, __pyx_L1_error)
6218         #else
6219         __pyx_t_3 = PySequence_ITEM(__pyx_t_4, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 214, __pyx_L1_error)
6220         __Pyx_GOTREF(__pyx_t_3);
6221         #endif
6222       }
6223     } else {
6224       __pyx_t_3 = __pyx_t_6(__pyx_t_4);
6225       if (unlikely(!__pyx_t_3)) {
6226         PyObject* exc_type = PyErr_Occurred();
6227         if (exc_type) {
6228           if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
6229           else __PYX_ERR(0, 214, __pyx_L1_error)
6230         }
6231         break;
6232       }
6233       __Pyx_GOTREF(__pyx_t_3);
6234     }
6235     __Pyx_XDECREF_SET(__pyx_v_attr, __pyx_t_3);
6236     __pyx_t_3 = 0;
6237 
6238     /* "Cython/Compiler/Visitor.py":215
6239  *         result = {}
6240  *         for attr in parent.child_attrs:
6241  *             if attrs is not None and attr not in attrs: continue             # <<<<<<<<<<<<<<
6242  *             child = getattr(parent, attr)
6243  *             if child is not None:
6244  */
6245     __pyx_t_1 = (__pyx_v_attrs != Py_None);
6246     __pyx_t_7 = (__pyx_t_1 != 0);
6247     if (__pyx_t_7) {
6248     } else {
6249       __pyx_t_2 = __pyx_t_7;
6250       goto __pyx_L7_bool_binop_done;
6251     }
6252     __pyx_t_7 = (__Pyx_PySequence_ContainsTF(__pyx_v_attr, __pyx_v_attrs, Py_NE)); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 215, __pyx_L1_error)
6253     __pyx_t_1 = (__pyx_t_7 != 0);
6254     __pyx_t_2 = __pyx_t_1;
6255     __pyx_L7_bool_binop_done:;
6256     if (__pyx_t_2) {
6257       goto __pyx_L4_continue;
6258     }
6259 
6260     /* "Cython/Compiler/Visitor.py":216
6261  *         for attr in parent.child_attrs:
6262  *             if attrs is not None and attr not in attrs: continue
6263  *             child = getattr(parent, attr)             # <<<<<<<<<<<<<<
6264  *             if child is not None:
6265  *                 if type(child) is list:
6266  */
6267     __pyx_t_3 = __Pyx_GetAttr(__pyx_v_parent, __pyx_v_attr); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 216, __pyx_L1_error)
6268     __Pyx_GOTREF(__pyx_t_3);
6269     __Pyx_XDECREF_SET(__pyx_v_child, __pyx_t_3);
6270     __pyx_t_3 = 0;
6271 
6272     /* "Cython/Compiler/Visitor.py":217
6273  *             if attrs is not None and attr not in attrs: continue
6274  *             child = getattr(parent, attr)
6275  *             if child is not None:             # <<<<<<<<<<<<<<
6276  *                 if type(child) is list:
6277  *                     childretval = [self._visitchild(x, parent, attr, idx) for idx, x in enumerate(child)]
6278  */
6279     __pyx_t_2 = (__pyx_v_child != Py_None);
6280     __pyx_t_1 = (__pyx_t_2 != 0);
6281     if (__pyx_t_1) {
6282 
6283       /* "Cython/Compiler/Visitor.py":218
6284  *             child = getattr(parent, attr)
6285  *             if child is not None:
6286  *                 if type(child) is list:             # <<<<<<<<<<<<<<
6287  *                     childretval = [self._visitchild(x, parent, attr, idx) for idx, x in enumerate(child)]
6288  *                 else:
6289  */
6290       __pyx_t_1 = (((PyObject *)Py_TYPE(__pyx_v_child)) == ((PyObject *)(&PyList_Type)));
6291       __pyx_t_2 = (__pyx_t_1 != 0);
6292       if (__pyx_t_2) {
6293 
6294         /* "Cython/Compiler/Visitor.py":219
6295  *             if child is not None:
6296  *                 if type(child) is list:
6297  *                     childretval = [self._visitchild(x, parent, attr, idx) for idx, x in enumerate(child)]             # <<<<<<<<<<<<<<
6298  *                 else:
6299  *                     childretval = self._visitchild(child, parent, attr, None)
6300  */
6301         { /* enter inner scope */
6302           __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 219, __pyx_L13_error)
6303           __Pyx_GOTREF(__pyx_t_3);
6304           __pyx_t_8 = 0;
6305           if (likely(PyList_CheckExact(__pyx_v_child)) || PyTuple_CheckExact(__pyx_v_child)) {
6306             __pyx_t_9 = __pyx_v_child; __Pyx_INCREF(__pyx_t_9); __pyx_t_10 = 0;
6307             __pyx_t_11 = NULL;
6308           } else {
6309             __pyx_t_10 = -1; __pyx_t_9 = PyObject_GetIter(__pyx_v_child); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 219, __pyx_L13_error)
6310             __Pyx_GOTREF(__pyx_t_9);
6311             __pyx_t_11 = Py_TYPE(__pyx_t_9)->tp_iternext; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 219, __pyx_L13_error)
6312           }
6313           for (;;) {
6314             if (likely(!__pyx_t_11)) {
6315               if (likely(PyList_CheckExact(__pyx_t_9))) {
6316                 if (__pyx_t_10 >= PyList_GET_SIZE(__pyx_t_9)) break;
6317                 #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
6318                 __pyx_t_12 = PyList_GET_ITEM(__pyx_t_9, __pyx_t_10); __Pyx_INCREF(__pyx_t_12); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 219, __pyx_L13_error)
6319                 #else
6320                 __pyx_t_12 = PySequence_ITEM(__pyx_t_9, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 219, __pyx_L13_error)
6321                 __Pyx_GOTREF(__pyx_t_12);
6322                 #endif
6323               } else {
6324                 if (__pyx_t_10 >= PyTuple_GET_SIZE(__pyx_t_9)) break;
6325                 #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
6326                 __pyx_t_12 = PyTuple_GET_ITEM(__pyx_t_9, __pyx_t_10); __Pyx_INCREF(__pyx_t_12); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 219, __pyx_L13_error)
6327                 #else
6328                 __pyx_t_12 = PySequence_ITEM(__pyx_t_9, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 219, __pyx_L13_error)
6329                 __Pyx_GOTREF(__pyx_t_12);
6330                 #endif
6331               }
6332             } else {
6333               __pyx_t_12 = __pyx_t_11(__pyx_t_9);
6334               if (unlikely(!__pyx_t_12)) {
6335                 PyObject* exc_type = PyErr_Occurred();
6336                 if (exc_type) {
6337                   if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
6338                   else __PYX_ERR(0, 219, __pyx_L13_error)
6339                 }
6340                 break;
6341               }
6342               __Pyx_GOTREF(__pyx_t_12);
6343             }
6344             __Pyx_XDECREF_SET(__pyx_7genexpr__pyx_v_x, __pyx_t_12);
6345             __pyx_t_12 = 0;
6346             __pyx_7genexpr__pyx_v_idx = __pyx_t_8;
6347             __pyx_t_8 = (__pyx_t_8 + 1);
6348             __pyx_t_12 = __Pyx_PyInt_From_int(__pyx_7genexpr__pyx_v_idx); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 219, __pyx_L13_error)
6349             __Pyx_GOTREF(__pyx_t_12);
6350             __pyx_t_13 = __pyx_f_6Cython_8Compiler_7Visitor_11TreeVisitor__visitchild(__pyx_v_self, __pyx_7genexpr__pyx_v_x, __pyx_v_parent, __pyx_v_attr, __pyx_t_12); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 219, __pyx_L13_error)
6351             __Pyx_GOTREF(__pyx_t_13);
6352             __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
6353             if (unlikely(__Pyx_ListComp_Append(__pyx_t_3, (PyObject*)__pyx_t_13))) __PYX_ERR(0, 219, __pyx_L13_error)
6354             __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
6355           }
6356           __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
6357           __Pyx_XDECREF(__pyx_7genexpr__pyx_v_x); __pyx_7genexpr__pyx_v_x = 0;
6358           goto __pyx_L16_exit_scope;
6359           __pyx_L13_error:;
6360           __Pyx_XDECREF(__pyx_7genexpr__pyx_v_x); __pyx_7genexpr__pyx_v_x = 0;
6361           goto __pyx_L1_error;
6362           __pyx_L16_exit_scope:;
6363         } /* exit inner scope */
6364         __Pyx_XDECREF_SET(__pyx_v_childretval, __pyx_t_3);
6365         __pyx_t_3 = 0;
6366 
6367         /* "Cython/Compiler/Visitor.py":218
6368  *             child = getattr(parent, attr)
6369  *             if child is not None:
6370  *                 if type(child) is list:             # <<<<<<<<<<<<<<
6371  *                     childretval = [self._visitchild(x, parent, attr, idx) for idx, x in enumerate(child)]
6372  *                 else:
6373  */
6374         goto __pyx_L10;
6375       }
6376 
6377       /* "Cython/Compiler/Visitor.py":221
6378  *                     childretval = [self._visitchild(x, parent, attr, idx) for idx, x in enumerate(child)]
6379  *                 else:
6380  *                     childretval = self._visitchild(child, parent, attr, None)             # <<<<<<<<<<<<<<
6381  *                     assert not isinstance(childretval, list), 'Cannot insert list here: %s in %r' % (attr, parent)
6382  *                 result[attr] = childretval
6383  */
6384       /*else*/ {
6385         __pyx_t_3 = __pyx_f_6Cython_8Compiler_7Visitor_11TreeVisitor__visitchild(__pyx_v_self, __pyx_v_child, __pyx_v_parent, __pyx_v_attr, Py_None); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 221, __pyx_L1_error)
6386         __Pyx_GOTREF(__pyx_t_3);
6387         __Pyx_XDECREF_SET(__pyx_v_childretval, __pyx_t_3);
6388         __pyx_t_3 = 0;
6389 
6390         /* "Cython/Compiler/Visitor.py":222
6391  *                 else:
6392  *                     childretval = self._visitchild(child, parent, attr, None)
6393  *                     assert not isinstance(childretval, list), 'Cannot insert list here: %s in %r' % (attr, parent)             # <<<<<<<<<<<<<<
6394  *                 result[attr] = childretval
6395  *         return result
6396  */
6397         #ifndef CYTHON_WITHOUT_ASSERTIONS
6398         if (unlikely(!Py_OptimizeFlag)) {
6399           __pyx_t_2 = PyList_Check(__pyx_v_childretval);
6400           if (unlikely(!((!(__pyx_t_2 != 0)) != 0))) {
6401             __pyx_t_3 = PyTuple_New(4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 222, __pyx_L1_error)
6402             __Pyx_GOTREF(__pyx_t_3);
6403             __pyx_t_10 = 0;
6404             __pyx_t_14 = 127;
6405             __Pyx_INCREF(__pyx_kp_u_Cannot_insert_list_here);
6406             __pyx_t_10 += 25;
6407             __Pyx_GIVEREF(__pyx_kp_u_Cannot_insert_list_here);
6408             PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_kp_u_Cannot_insert_list_here);
6409             __pyx_t_9 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Unicode(__pyx_v_attr), __pyx_empty_unicode); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 222, __pyx_L1_error)
6410             __Pyx_GOTREF(__pyx_t_9);
6411             __pyx_t_14 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_9) > __pyx_t_14) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_9) : __pyx_t_14;
6412             __pyx_t_10 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_9);
6413             __Pyx_GIVEREF(__pyx_t_9);
6414             PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_9);
6415             __pyx_t_9 = 0;
6416             __Pyx_INCREF(__pyx_kp_u_in_2);
6417             __pyx_t_10 += 4;
6418             __Pyx_GIVEREF(__pyx_kp_u_in_2);
6419             PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_kp_u_in_2);
6420             __pyx_t_9 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Repr(__pyx_v_parent), __pyx_empty_unicode); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 222, __pyx_L1_error)
6421             __Pyx_GOTREF(__pyx_t_9);
6422             __pyx_t_14 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_9) > __pyx_t_14) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_9) : __pyx_t_14;
6423             __pyx_t_10 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_9);
6424             __Pyx_GIVEREF(__pyx_t_9);
6425             PyTuple_SET_ITEM(__pyx_t_3, 3, __pyx_t_9);
6426             __pyx_t_9 = 0;
6427             __pyx_t_9 = __Pyx_PyUnicode_Join(__pyx_t_3, 4, __pyx_t_10, __pyx_t_14); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 222, __pyx_L1_error)
6428             __Pyx_GOTREF(__pyx_t_9);
6429             __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
6430             PyErr_SetObject(PyExc_AssertionError, __pyx_t_9);
6431             __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
6432             __PYX_ERR(0, 222, __pyx_L1_error)
6433           }
6434         }
6435         #endif
6436       }
6437       __pyx_L10:;
6438 
6439       /* "Cython/Compiler/Visitor.py":223
6440  *                     childretval = self._visitchild(child, parent, attr, None)
6441  *                     assert not isinstance(childretval, list), 'Cannot insert list here: %s in %r' % (attr, parent)
6442  *                 result[attr] = childretval             # <<<<<<<<<<<<<<
6443  *         return result
6444  *
6445  */
6446       if (unlikely(PyDict_SetItem(__pyx_v_result, __pyx_v_attr, __pyx_v_childretval) < 0)) __PYX_ERR(0, 223, __pyx_L1_error)
6447 
6448       /* "Cython/Compiler/Visitor.py":217
6449  *             if attrs is not None and attr not in attrs: continue
6450  *             child = getattr(parent, attr)
6451  *             if child is not None:             # <<<<<<<<<<<<<<
6452  *                 if type(child) is list:
6453  *                     childretval = [self._visitchild(x, parent, attr, idx) for idx, x in enumerate(child)]
6454  */
6455     }
6456 
6457     /* "Cython/Compiler/Visitor.py":214
6458  *         if parent is None: return None
6459  *         result = {}
6460  *         for attr in parent.child_attrs:             # <<<<<<<<<<<<<<
6461  *             if attrs is not None and attr not in attrs: continue
6462  *             child = getattr(parent, attr)
6463  */
6464     __pyx_L4_continue:;
6465   }
6466   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
6467 
6468   /* "Cython/Compiler/Visitor.py":224
6469  *                     assert not isinstance(childretval, list), 'Cannot insert list here: %s in %r' % (attr, parent)
6470  *                 result[attr] = childretval
6471  *         return result             # <<<<<<<<<<<<<<
6472  *
6473  *
6474  */
6475   __Pyx_XDECREF(__pyx_r);
6476   __Pyx_INCREF(__pyx_v_result);
6477   __pyx_r = __pyx_v_result;
6478   goto __pyx_L0;
6479 
6480   /* "Cython/Compiler/Visitor.py":202
6481  *     @cython.final
6482  *     @cython.locals(idx=int)
6483  *     def _visitchildren(self, parent, attrs):             # <<<<<<<<<<<<<<
6484  *         """
6485  *         Visits the children of the given parent. If parent is None, returns
6486  */
6487 
6488   /* function exit code */
6489   __pyx_L1_error:;
6490   __Pyx_XDECREF(__pyx_t_3);
6491   __Pyx_XDECREF(__pyx_t_4);
6492   __Pyx_XDECREF(__pyx_t_9);
6493   __Pyx_XDECREF(__pyx_t_12);
6494   __Pyx_XDECREF(__pyx_t_13);
6495   __Pyx_AddTraceback("Cython.Compiler.Visitor.TreeVisitor._visitchildren", __pyx_clineno, __pyx_lineno, __pyx_filename);
6496   __pyx_r = 0;
6497   __pyx_L0:;
6498   __Pyx_XDECREF(__pyx_v_result);
6499   __Pyx_XDECREF(__pyx_v_attr);
6500   __Pyx_XDECREF(__pyx_v_child);
6501   __Pyx_XDECREF(__pyx_v_childretval);
6502   __Pyx_XDECREF(__pyx_7genexpr__pyx_v_x);
6503   __Pyx_XGIVEREF(__pyx_r);
6504   __Pyx_RefNannyFinishContext();
6505   return __pyx_r;
6506 }
6507 
6508 /* "Cython/Compiler/Visitor.pxd":6
6509  *
6510  * cdef class TreeVisitor:
6511  *     cdef public list access_path             # <<<<<<<<<<<<<<
6512  *     cdef dict dispatch_table
6513  *
6514  */
6515 
6516 /* Python wrapper */
6517 static PyObject *__pyx_pw_6Cython_8Compiler_7Visitor_11TreeVisitor_11access_path_1__get__(PyObject *__pyx_v_self); /*proto*/
__pyx_pw_6Cython_8Compiler_7Visitor_11TreeVisitor_11access_path_1__get__(PyObject * __pyx_v_self)6518 static PyObject *__pyx_pw_6Cython_8Compiler_7Visitor_11TreeVisitor_11access_path_1__get__(PyObject *__pyx_v_self) {
6519   PyObject *__pyx_r = 0;
6520   __Pyx_RefNannyDeclarations
6521   __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
6522   __pyx_r = __pyx_pf_6Cython_8Compiler_7Visitor_11TreeVisitor_11access_path___get__(((struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor *)__pyx_v_self));
6523 
6524   /* function exit code */
6525   __Pyx_RefNannyFinishContext();
6526   return __pyx_r;
6527 }
6528 
__pyx_pf_6Cython_8Compiler_7Visitor_11TreeVisitor_11access_path___get__(struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor * __pyx_v_self)6529 static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_11TreeVisitor_11access_path___get__(struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor *__pyx_v_self) {
6530   PyObject *__pyx_r = NULL;
6531   __Pyx_RefNannyDeclarations
6532   __Pyx_RefNannySetupContext("__get__", 0);
6533   __Pyx_XDECREF(__pyx_r);
6534   __Pyx_INCREF(__pyx_v_self->access_path);
6535   __pyx_r = __pyx_v_self->access_path;
6536   goto __pyx_L0;
6537 
6538   /* function exit code */
6539   __pyx_L0:;
6540   __Pyx_XGIVEREF(__pyx_r);
6541   __Pyx_RefNannyFinishContext();
6542   return __pyx_r;
6543 }
6544 
6545 /* Python wrapper */
6546 static int __pyx_pw_6Cython_8Compiler_7Visitor_11TreeVisitor_11access_path_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
__pyx_pw_6Cython_8Compiler_7Visitor_11TreeVisitor_11access_path_3__set__(PyObject * __pyx_v_self,PyObject * __pyx_v_value)6547 static int __pyx_pw_6Cython_8Compiler_7Visitor_11TreeVisitor_11access_path_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
6548   int __pyx_r;
6549   __Pyx_RefNannyDeclarations
6550   __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
6551   __pyx_r = __pyx_pf_6Cython_8Compiler_7Visitor_11TreeVisitor_11access_path_2__set__(((struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor *)__pyx_v_self), ((PyObject *)__pyx_v_value));
6552 
6553   /* function exit code */
6554   __Pyx_RefNannyFinishContext();
6555   return __pyx_r;
6556 }
6557 
__pyx_pf_6Cython_8Compiler_7Visitor_11TreeVisitor_11access_path_2__set__(struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor * __pyx_v_self,PyObject * __pyx_v_value)6558 static int __pyx_pf_6Cython_8Compiler_7Visitor_11TreeVisitor_11access_path_2__set__(struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor *__pyx_v_self, PyObject *__pyx_v_value) {
6559   int __pyx_r;
6560   __Pyx_RefNannyDeclarations
6561   PyObject *__pyx_t_1 = NULL;
6562   int __pyx_lineno = 0;
6563   const char *__pyx_filename = NULL;
6564   int __pyx_clineno = 0;
6565   __Pyx_RefNannySetupContext("__set__", 0);
6566   if (!(likely(PyList_CheckExact(__pyx_v_value))||((__pyx_v_value) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "list", Py_TYPE(__pyx_v_value)->tp_name), 0))) __PYX_ERR(1, 6, __pyx_L1_error)
6567   __pyx_t_1 = __pyx_v_value;
6568   __Pyx_INCREF(__pyx_t_1);
6569   __Pyx_GIVEREF(__pyx_t_1);
6570   __Pyx_GOTREF(__pyx_v_self->access_path);
6571   __Pyx_DECREF(__pyx_v_self->access_path);
6572   __pyx_v_self->access_path = ((PyObject*)__pyx_t_1);
6573   __pyx_t_1 = 0;
6574 
6575   /* function exit code */
6576   __pyx_r = 0;
6577   goto __pyx_L0;
6578   __pyx_L1_error:;
6579   __Pyx_XDECREF(__pyx_t_1);
6580   __Pyx_AddTraceback("Cython.Compiler.Visitor.TreeVisitor.access_path.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
6581   __pyx_r = -1;
6582   __pyx_L0:;
6583   __Pyx_RefNannyFinishContext();
6584   return __pyx_r;
6585 }
6586 
6587 /* Python wrapper */
6588 static int __pyx_pw_6Cython_8Compiler_7Visitor_11TreeVisitor_11access_path_5__del__(PyObject *__pyx_v_self); /*proto*/
__pyx_pw_6Cython_8Compiler_7Visitor_11TreeVisitor_11access_path_5__del__(PyObject * __pyx_v_self)6589 static int __pyx_pw_6Cython_8Compiler_7Visitor_11TreeVisitor_11access_path_5__del__(PyObject *__pyx_v_self) {
6590   int __pyx_r;
6591   __Pyx_RefNannyDeclarations
6592   __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
6593   __pyx_r = __pyx_pf_6Cython_8Compiler_7Visitor_11TreeVisitor_11access_path_4__del__(((struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor *)__pyx_v_self));
6594 
6595   /* function exit code */
6596   __Pyx_RefNannyFinishContext();
6597   return __pyx_r;
6598 }
6599 
__pyx_pf_6Cython_8Compiler_7Visitor_11TreeVisitor_11access_path_4__del__(struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor * __pyx_v_self)6600 static int __pyx_pf_6Cython_8Compiler_7Visitor_11TreeVisitor_11access_path_4__del__(struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor *__pyx_v_self) {
6601   int __pyx_r;
6602   __Pyx_RefNannyDeclarations
6603   __Pyx_RefNannySetupContext("__del__", 0);
6604   __Pyx_INCREF(Py_None);
6605   __Pyx_GIVEREF(Py_None);
6606   __Pyx_GOTREF(__pyx_v_self->access_path);
6607   __Pyx_DECREF(__pyx_v_self->access_path);
6608   __pyx_v_self->access_path = ((PyObject*)Py_None);
6609 
6610   /* function exit code */
6611   __pyx_r = 0;
6612   __Pyx_RefNannyFinishContext();
6613   return __pyx_r;
6614 }
6615 
6616 /* "Cython/Compiler/Visitor.py":247
6617  *     are within a StatListNode or similar before doing this.)
6618  *     """
6619  *     def visitchildren(self, parent, attrs=None, exclude=None):             # <<<<<<<<<<<<<<
6620  *         # generic def entry point for calls from Python subclasses
6621  *         if exclude is not None:
6622  */
6623 
6624 static PyObject *__pyx_pw_6Cython_8Compiler_7Visitor_16VisitorTransform_1visitchildren(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
__pyx_f_6Cython_8Compiler_7Visitor_16VisitorTransform_visitchildren(struct __pyx_obj_6Cython_8Compiler_7Visitor_VisitorTransform * __pyx_v_self,PyObject * __pyx_v_parent,int __pyx_skip_dispatch,struct __pyx_opt_args_6Cython_8Compiler_7Visitor_16VisitorTransform_visitchildren * __pyx_optional_args)6625 PyObject *__pyx_f_6Cython_8Compiler_7Visitor_16VisitorTransform_visitchildren(struct __pyx_obj_6Cython_8Compiler_7Visitor_VisitorTransform *__pyx_v_self, PyObject *__pyx_v_parent, int __pyx_skip_dispatch, struct __pyx_opt_args_6Cython_8Compiler_7Visitor_16VisitorTransform_visitchildren *__pyx_optional_args) {
6626   PyObject *__pyx_v_attrs = ((PyObject *)Py_None);
6627   PyObject *__pyx_v_exclude = ((PyObject *)Py_None);
6628   PyObject *__pyx_r = NULL;
6629   __Pyx_RefNannyDeclarations
6630   PyObject *__pyx_t_1 = NULL;
6631   PyObject *__pyx_t_2 = NULL;
6632   PyObject *__pyx_t_3 = NULL;
6633   PyObject *__pyx_t_4 = NULL;
6634   int __pyx_t_5;
6635   PyObject *__pyx_t_6 = NULL;
6636   int __pyx_t_7;
6637   int __pyx_t_8;
6638   struct __pyx_opt_args_6Cython_8Compiler_7Visitor_16VisitorTransform__process_children __pyx_t_9;
6639   int __pyx_lineno = 0;
6640   const char *__pyx_filename = NULL;
6641   int __pyx_clineno = 0;
6642   __Pyx_RefNannySetupContext("visitchildren", 0);
6643   if (__pyx_optional_args) {
6644     if (__pyx_optional_args->__pyx_n > 0) {
6645       __pyx_v_attrs = __pyx_optional_args->attrs;
6646       if (__pyx_optional_args->__pyx_n > 1) {
6647         __pyx_v_exclude = __pyx_optional_args->exclude;
6648       }
6649     }
6650   }
6651   __Pyx_INCREF(__pyx_v_attrs);
6652   /* Check if called by wrapper */
6653   if (unlikely(__pyx_skip_dispatch)) ;
6654   /* Check if overridden in Python */
6655   else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || (Py_TYPE(((PyObject *)__pyx_v_self))->tp_flags & (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
6656     #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
6657     static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
6658     if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
6659       PY_UINT64_T __pyx_type_dict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
6660       #endif
6661       __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_visitchildren); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 247, __pyx_L1_error)
6662       __Pyx_GOTREF(__pyx_t_1);
6663       if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_6Cython_8Compiler_7Visitor_16VisitorTransform_1visitchildren)) {
6664         __Pyx_XDECREF(__pyx_r);
6665         __Pyx_INCREF(__pyx_t_1);
6666         __pyx_t_3 = __pyx_t_1; __pyx_t_4 = NULL;
6667         __pyx_t_5 = 0;
6668         if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
6669           __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
6670           if (likely(__pyx_t_4)) {
6671             PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
6672             __Pyx_INCREF(__pyx_t_4);
6673             __Pyx_INCREF(function);
6674             __Pyx_DECREF_SET(__pyx_t_3, function);
6675             __pyx_t_5 = 1;
6676           }
6677         }
6678         #if CYTHON_FAST_PYCALL
6679         if (PyFunction_Check(__pyx_t_3)) {
6680           PyObject *__pyx_temp[4] = {__pyx_t_4, __pyx_v_parent, __pyx_v_attrs, __pyx_v_exclude};
6681           __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 3+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 247, __pyx_L1_error)
6682           __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
6683           __Pyx_GOTREF(__pyx_t_2);
6684         } else
6685         #endif
6686         #if CYTHON_FAST_PYCCALL
6687         if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
6688           PyObject *__pyx_temp[4] = {__pyx_t_4, __pyx_v_parent, __pyx_v_attrs, __pyx_v_exclude};
6689           __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 3+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 247, __pyx_L1_error)
6690           __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
6691           __Pyx_GOTREF(__pyx_t_2);
6692         } else
6693         #endif
6694         {
6695           __pyx_t_6 = PyTuple_New(3+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 247, __pyx_L1_error)
6696           __Pyx_GOTREF(__pyx_t_6);
6697           if (__pyx_t_4) {
6698             __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4); __pyx_t_4 = NULL;
6699           }
6700           __Pyx_INCREF(__pyx_v_parent);
6701           __Pyx_GIVEREF(__pyx_v_parent);
6702           PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_5, __pyx_v_parent);
6703           __Pyx_INCREF(__pyx_v_attrs);
6704           __Pyx_GIVEREF(__pyx_v_attrs);
6705           PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_5, __pyx_v_attrs);
6706           __Pyx_INCREF(__pyx_v_exclude);
6707           __Pyx_GIVEREF(__pyx_v_exclude);
6708           PyTuple_SET_ITEM(__pyx_t_6, 2+__pyx_t_5, __pyx_v_exclude);
6709           __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 247, __pyx_L1_error)
6710           __Pyx_GOTREF(__pyx_t_2);
6711           __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
6712         }
6713         __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
6714         __pyx_r = __pyx_t_2;
6715         __pyx_t_2 = 0;
6716         __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
6717         goto __pyx_L0;
6718       }
6719       #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
6720       __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
6721       __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
6722       if (unlikely(__pyx_type_dict_guard != __pyx_tp_dict_version)) {
6723         __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
6724       }
6725       #endif
6726       __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
6727       #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
6728     }
6729     #endif
6730   }
6731 
6732   /* "Cython/Compiler/Visitor.py":249
6733  *     def visitchildren(self, parent, attrs=None, exclude=None):
6734  *         # generic def entry point for calls from Python subclasses
6735  *         if exclude is not None:             # <<<<<<<<<<<<<<
6736  *             attrs = self._select_attrs(parent.child_attrs if attrs is None else attrs, exclude)
6737  *         return self._process_children(parent, attrs)
6738  */
6739   __pyx_t_7 = (__pyx_v_exclude != Py_None);
6740   __pyx_t_8 = (__pyx_t_7 != 0);
6741   if (__pyx_t_8) {
6742 
6743     /* "Cython/Compiler/Visitor.py":250
6744  *         # generic def entry point for calls from Python subclasses
6745  *         if exclude is not None:
6746  *             attrs = self._select_attrs(parent.child_attrs if attrs is None else attrs, exclude)             # <<<<<<<<<<<<<<
6747  *         return self._process_children(parent, attrs)
6748  *
6749  */
6750     __pyx_t_8 = (__pyx_v_attrs == Py_None);
6751     if ((__pyx_t_8 != 0)) {
6752       __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_parent, __pyx_n_s_child_attrs); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 250, __pyx_L1_error)
6753       __Pyx_GOTREF(__pyx_t_2);
6754       __pyx_t_1 = __pyx_t_2;
6755       __pyx_t_2 = 0;
6756     } else {
6757       __Pyx_INCREF(__pyx_v_attrs);
6758       __pyx_t_1 = __pyx_v_attrs;
6759     }
6760     __pyx_t_2 = __pyx_f_6Cython_8Compiler_7Visitor_16VisitorTransform__select_attrs(__pyx_v_self, __pyx_t_1, __pyx_v_exclude); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 250, __pyx_L1_error)
6761     __Pyx_GOTREF(__pyx_t_2);
6762     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
6763     __Pyx_DECREF_SET(__pyx_v_attrs, __pyx_t_2);
6764     __pyx_t_2 = 0;
6765 
6766     /* "Cython/Compiler/Visitor.py":249
6767  *     def visitchildren(self, parent, attrs=None, exclude=None):
6768  *         # generic def entry point for calls from Python subclasses
6769  *         if exclude is not None:             # <<<<<<<<<<<<<<
6770  *             attrs = self._select_attrs(parent.child_attrs if attrs is None else attrs, exclude)
6771  *         return self._process_children(parent, attrs)
6772  */
6773   }
6774 
6775   /* "Cython/Compiler/Visitor.py":251
6776  *         if exclude is not None:
6777  *             attrs = self._select_attrs(parent.child_attrs if attrs is None else attrs, exclude)
6778  *         return self._process_children(parent, attrs)             # <<<<<<<<<<<<<<
6779  *
6780  *     @cython.final
6781  */
6782   __Pyx_XDECREF(__pyx_r);
6783   __pyx_t_9.__pyx_n = 1;
6784   __pyx_t_9.attrs = __pyx_v_attrs;
6785   __pyx_t_2 = __pyx_f_6Cython_8Compiler_7Visitor_16VisitorTransform__process_children(__pyx_v_self, __pyx_v_parent, &__pyx_t_9); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 251, __pyx_L1_error)
6786   __Pyx_GOTREF(__pyx_t_2);
6787   __pyx_r = __pyx_t_2;
6788   __pyx_t_2 = 0;
6789   goto __pyx_L0;
6790 
6791   /* "Cython/Compiler/Visitor.py":247
6792  *     are within a StatListNode or similar before doing this.)
6793  *     """
6794  *     def visitchildren(self, parent, attrs=None, exclude=None):             # <<<<<<<<<<<<<<
6795  *         # generic def entry point for calls from Python subclasses
6796  *         if exclude is not None:
6797  */
6798 
6799   /* function exit code */
6800   __pyx_L1_error:;
6801   __Pyx_XDECREF(__pyx_t_1);
6802   __Pyx_XDECREF(__pyx_t_2);
6803   __Pyx_XDECREF(__pyx_t_3);
6804   __Pyx_XDECREF(__pyx_t_4);
6805   __Pyx_XDECREF(__pyx_t_6);
6806   __Pyx_AddTraceback("Cython.Compiler.Visitor.VisitorTransform.visitchildren", __pyx_clineno, __pyx_lineno, __pyx_filename);
6807   __pyx_r = 0;
6808   __pyx_L0:;
6809   __Pyx_XDECREF(__pyx_v_attrs);
6810   __Pyx_XGIVEREF(__pyx_r);
6811   __Pyx_RefNannyFinishContext();
6812   return __pyx_r;
6813 }
6814 
6815 /* Python wrapper */
6816 static PyObject *__pyx_pw_6Cython_8Compiler_7Visitor_16VisitorTransform_1visitchildren(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
6817 static PyMethodDef __pyx_mdef_6Cython_8Compiler_7Visitor_16VisitorTransform_1visitchildren = {"visitchildren", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6Cython_8Compiler_7Visitor_16VisitorTransform_1visitchildren, METH_VARARGS|METH_KEYWORDS, 0};
__pyx_pw_6Cython_8Compiler_7Visitor_16VisitorTransform_1visitchildren(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)6818 static PyObject *__pyx_pw_6Cython_8Compiler_7Visitor_16VisitorTransform_1visitchildren(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
6819   PyObject *__pyx_v_parent = 0;
6820   PyObject *__pyx_v_attrs = 0;
6821   PyObject *__pyx_v_exclude = 0;
6822   int __pyx_lineno = 0;
6823   const char *__pyx_filename = NULL;
6824   int __pyx_clineno = 0;
6825   PyObject *__pyx_r = 0;
6826   __Pyx_RefNannyDeclarations
6827   __Pyx_RefNannySetupContext("visitchildren (wrapper)", 0);
6828   {
6829     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_parent,&__pyx_n_s_attrs,&__pyx_n_s_exclude,0};
6830     PyObject* values[3] = {0,0,0};
6831     values[1] = ((PyObject *)Py_None);
6832     values[2] = ((PyObject *)Py_None);
6833     if (unlikely(__pyx_kwds)) {
6834       Py_ssize_t kw_args;
6835       const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
6836       switch (pos_args) {
6837         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
6838         CYTHON_FALLTHROUGH;
6839         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
6840         CYTHON_FALLTHROUGH;
6841         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
6842         CYTHON_FALLTHROUGH;
6843         case  0: break;
6844         default: goto __pyx_L5_argtuple_error;
6845       }
6846       kw_args = PyDict_Size(__pyx_kwds);
6847       switch (pos_args) {
6848         case  0:
6849         if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_parent)) != 0)) kw_args--;
6850         else goto __pyx_L5_argtuple_error;
6851         CYTHON_FALLTHROUGH;
6852         case  1:
6853         if (kw_args > 0) {
6854           PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_attrs);
6855           if (value) { values[1] = value; kw_args--; }
6856         }
6857         CYTHON_FALLTHROUGH;
6858         case  2:
6859         if (kw_args > 0) {
6860           PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_exclude);
6861           if (value) { values[2] = value; kw_args--; }
6862         }
6863       }
6864       if (unlikely(kw_args > 0)) {
6865         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "visitchildren") < 0)) __PYX_ERR(0, 247, __pyx_L3_error)
6866       }
6867     } else {
6868       switch (PyTuple_GET_SIZE(__pyx_args)) {
6869         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
6870         CYTHON_FALLTHROUGH;
6871         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
6872         CYTHON_FALLTHROUGH;
6873         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
6874         break;
6875         default: goto __pyx_L5_argtuple_error;
6876       }
6877     }
6878     __pyx_v_parent = values[0];
6879     __pyx_v_attrs = values[1];
6880     __pyx_v_exclude = values[2];
6881   }
6882   goto __pyx_L4_argument_unpacking_done;
6883   __pyx_L5_argtuple_error:;
6884   __Pyx_RaiseArgtupleInvalid("visitchildren", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 247, __pyx_L3_error)
6885   __pyx_L3_error:;
6886   __Pyx_AddTraceback("Cython.Compiler.Visitor.VisitorTransform.visitchildren", __pyx_clineno, __pyx_lineno, __pyx_filename);
6887   __Pyx_RefNannyFinishContext();
6888   return NULL;
6889   __pyx_L4_argument_unpacking_done:;
6890   __pyx_r = __pyx_pf_6Cython_8Compiler_7Visitor_16VisitorTransform_visitchildren(((struct __pyx_obj_6Cython_8Compiler_7Visitor_VisitorTransform *)__pyx_v_self), __pyx_v_parent, __pyx_v_attrs, __pyx_v_exclude);
6891 
6892   /* function exit code */
6893   __Pyx_RefNannyFinishContext();
6894   return __pyx_r;
6895 }
6896 
__pyx_pf_6Cython_8Compiler_7Visitor_16VisitorTransform_visitchildren(struct __pyx_obj_6Cython_8Compiler_7Visitor_VisitorTransform * __pyx_v_self,PyObject * __pyx_v_parent,PyObject * __pyx_v_attrs,PyObject * __pyx_v_exclude)6897 static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_16VisitorTransform_visitchildren(struct __pyx_obj_6Cython_8Compiler_7Visitor_VisitorTransform *__pyx_v_self, PyObject *__pyx_v_parent, PyObject *__pyx_v_attrs, PyObject *__pyx_v_exclude) {
6898   PyObject *__pyx_r = NULL;
6899   __Pyx_RefNannyDeclarations
6900   PyObject *__pyx_t_1 = NULL;
6901   struct __pyx_opt_args_6Cython_8Compiler_7Visitor_16VisitorTransform_visitchildren __pyx_t_2;
6902   int __pyx_lineno = 0;
6903   const char *__pyx_filename = NULL;
6904   int __pyx_clineno = 0;
6905   __Pyx_RefNannySetupContext("visitchildren", 0);
6906   __Pyx_XDECREF(__pyx_r);
6907   __pyx_t_2.__pyx_n = 2;
6908   __pyx_t_2.attrs = __pyx_v_attrs;
6909   __pyx_t_2.exclude = __pyx_v_exclude;
6910   __pyx_t_1 = __pyx_vtabptr_6Cython_8Compiler_7Visitor_VisitorTransform->visitchildren(__pyx_v_self, __pyx_v_parent, 1, &__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 247, __pyx_L1_error)
6911   __Pyx_GOTREF(__pyx_t_1);
6912   __pyx_r = __pyx_t_1;
6913   __pyx_t_1 = 0;
6914   goto __pyx_L0;
6915 
6916   /* function exit code */
6917   __pyx_L1_error:;
6918   __Pyx_XDECREF(__pyx_t_1);
6919   __Pyx_AddTraceback("Cython.Compiler.Visitor.VisitorTransform.visitchildren", __pyx_clineno, __pyx_lineno, __pyx_filename);
6920   __pyx_r = NULL;
6921   __pyx_L0:;
6922   __Pyx_XGIVEREF(__pyx_r);
6923   __Pyx_RefNannyFinishContext();
6924   return __pyx_r;
6925 }
6926 
__pyx_f_6Cython_8Compiler_7Visitor_16VisitorTransform_visitchildren__pyx_wrap_1(struct __pyx_obj_6Cython_8Compiler_7Visitor_VisitorTransform * __pyx_v_self,PyObject * __pyx_v_parent,int __pyx_skip_dispatch,struct __pyx_opt_args_6Cython_8Compiler_7Visitor_16VisitorTransform_visitchildren * __pyx_optional_args)6927 PyObject *__pyx_f_6Cython_8Compiler_7Visitor_16VisitorTransform_visitchildren__pyx_wrap_1(struct __pyx_obj_6Cython_8Compiler_7Visitor_VisitorTransform *__pyx_v_self, PyObject *__pyx_v_parent, int __pyx_skip_dispatch, struct __pyx_opt_args_6Cython_8Compiler_7Visitor_16VisitorTransform_visitchildren *__pyx_optional_args) {
6928   return __pyx_f_6Cython_8Compiler_7Visitor_16VisitorTransform_visitchildren(__pyx_v_self, __pyx_v_parent, __pyx_skip_dispatch, __pyx_optional_args);
6929 }
6930 
6931 /* "Cython/Compiler/Visitor.py":254
6932  *
6933  *     @cython.final
6934  *     def _select_attrs(self, attrs, exclude):             # <<<<<<<<<<<<<<
6935  *         return [name for name in attrs if name not in exclude]
6936  *
6937  */
6938 
__pyx_f_6Cython_8Compiler_7Visitor_16VisitorTransform__select_attrs(CYTHON_UNUSED struct __pyx_obj_6Cython_8Compiler_7Visitor_VisitorTransform * __pyx_v_self,PyObject * __pyx_v_attrs,PyObject * __pyx_v_exclude)6939 static PyObject *__pyx_f_6Cython_8Compiler_7Visitor_16VisitorTransform__select_attrs(CYTHON_UNUSED struct __pyx_obj_6Cython_8Compiler_7Visitor_VisitorTransform *__pyx_v_self, PyObject *__pyx_v_attrs, PyObject *__pyx_v_exclude) {
6940   PyObject *__pyx_8genexpr1__pyx_v_name = NULL;
6941   PyObject *__pyx_r = NULL;
6942   __Pyx_RefNannyDeclarations
6943   PyObject *__pyx_t_1 = NULL;
6944   PyObject *__pyx_t_2 = NULL;
6945   Py_ssize_t __pyx_t_3;
6946   PyObject *(*__pyx_t_4)(PyObject *);
6947   PyObject *__pyx_t_5 = NULL;
6948   int __pyx_t_6;
6949   int __pyx_t_7;
6950   int __pyx_lineno = 0;
6951   const char *__pyx_filename = NULL;
6952   int __pyx_clineno = 0;
6953   __Pyx_RefNannySetupContext("_select_attrs", 0);
6954 
6955   /* "Cython/Compiler/Visitor.py":255
6956  *     @cython.final
6957  *     def _select_attrs(self, attrs, exclude):
6958  *         return [name for name in attrs if name not in exclude]             # <<<<<<<<<<<<<<
6959  *
6960  *     @cython.final
6961  */
6962   __Pyx_XDECREF(__pyx_r);
6963   { /* enter inner scope */
6964     __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 255, __pyx_L5_error)
6965     __Pyx_GOTREF(__pyx_t_1);
6966     if (likely(PyList_CheckExact(__pyx_v_attrs)) || PyTuple_CheckExact(__pyx_v_attrs)) {
6967       __pyx_t_2 = __pyx_v_attrs; __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0;
6968       __pyx_t_4 = NULL;
6969     } else {
6970       __pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_v_attrs); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 255, __pyx_L5_error)
6971       __Pyx_GOTREF(__pyx_t_2);
6972       __pyx_t_4 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 255, __pyx_L5_error)
6973     }
6974     for (;;) {
6975       if (likely(!__pyx_t_4)) {
6976         if (likely(PyList_CheckExact(__pyx_t_2))) {
6977           if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break;
6978           #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
6979           __pyx_t_5 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_5); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 255, __pyx_L5_error)
6980           #else
6981           __pyx_t_5 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 255, __pyx_L5_error)
6982           __Pyx_GOTREF(__pyx_t_5);
6983           #endif
6984         } else {
6985           if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
6986           #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
6987           __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_5); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 255, __pyx_L5_error)
6988           #else
6989           __pyx_t_5 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 255, __pyx_L5_error)
6990           __Pyx_GOTREF(__pyx_t_5);
6991           #endif
6992         }
6993       } else {
6994         __pyx_t_5 = __pyx_t_4(__pyx_t_2);
6995         if (unlikely(!__pyx_t_5)) {
6996           PyObject* exc_type = PyErr_Occurred();
6997           if (exc_type) {
6998             if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
6999             else __PYX_ERR(0, 255, __pyx_L5_error)
7000           }
7001           break;
7002         }
7003         __Pyx_GOTREF(__pyx_t_5);
7004       }
7005       __Pyx_XDECREF_SET(__pyx_8genexpr1__pyx_v_name, __pyx_t_5);
7006       __pyx_t_5 = 0;
7007       __pyx_t_6 = (__Pyx_PySequence_ContainsTF(__pyx_8genexpr1__pyx_v_name, __pyx_v_exclude, Py_NE)); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 255, __pyx_L5_error)
7008       __pyx_t_7 = (__pyx_t_6 != 0);
7009       if (__pyx_t_7) {
7010         if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_8genexpr1__pyx_v_name))) __PYX_ERR(0, 255, __pyx_L5_error)
7011       }
7012     }
7013     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
7014     __Pyx_XDECREF(__pyx_8genexpr1__pyx_v_name); __pyx_8genexpr1__pyx_v_name = 0;
7015     goto __pyx_L9_exit_scope;
7016     __pyx_L5_error:;
7017     __Pyx_XDECREF(__pyx_8genexpr1__pyx_v_name); __pyx_8genexpr1__pyx_v_name = 0;
7018     goto __pyx_L1_error;
7019     __pyx_L9_exit_scope:;
7020   } /* exit inner scope */
7021   __pyx_r = ((PyObject*)__pyx_t_1);
7022   __pyx_t_1 = 0;
7023   goto __pyx_L0;
7024 
7025   /* "Cython/Compiler/Visitor.py":254
7026  *
7027  *     @cython.final
7028  *     def _select_attrs(self, attrs, exclude):             # <<<<<<<<<<<<<<
7029  *         return [name for name in attrs if name not in exclude]
7030  *
7031  */
7032 
7033   /* function exit code */
7034   __pyx_L1_error:;
7035   __Pyx_XDECREF(__pyx_t_1);
7036   __Pyx_XDECREF(__pyx_t_2);
7037   __Pyx_XDECREF(__pyx_t_5);
7038   __Pyx_AddTraceback("Cython.Compiler.Visitor.VisitorTransform._select_attrs", __pyx_clineno, __pyx_lineno, __pyx_filename);
7039   __pyx_r = 0;
7040   __pyx_L0:;
7041   __Pyx_XDECREF(__pyx_8genexpr1__pyx_v_name);
7042   __Pyx_XGIVEREF(__pyx_r);
7043   __Pyx_RefNannyFinishContext();
7044   return __pyx_r;
7045 }
7046 
7047 /* "Cython/Compiler/Visitor.py":258
7048  *
7049  *     @cython.final
7050  *     def _process_children(self, parent, attrs=None):             # <<<<<<<<<<<<<<
7051  *         # fast cdef entry point for calls from Cython subclasses
7052  *         result = self._visitchildren(parent, attrs)
7053  */
7054 
__pyx_f_6Cython_8Compiler_7Visitor_16VisitorTransform__process_children(struct __pyx_obj_6Cython_8Compiler_7Visitor_VisitorTransform * __pyx_v_self,PyObject * __pyx_v_parent,struct __pyx_opt_args_6Cython_8Compiler_7Visitor_16VisitorTransform__process_children * __pyx_optional_args)7055 static PyObject *__pyx_f_6Cython_8Compiler_7Visitor_16VisitorTransform__process_children(struct __pyx_obj_6Cython_8Compiler_7Visitor_VisitorTransform *__pyx_v_self, PyObject *__pyx_v_parent, struct __pyx_opt_args_6Cython_8Compiler_7Visitor_16VisitorTransform__process_children *__pyx_optional_args) {
7056   PyObject *__pyx_v_attrs = ((PyObject *)Py_None);
7057   PyObject *__pyx_v_result = NULL;
7058   PyObject *__pyx_v_attr = NULL;
7059   PyObject *__pyx_v_newnode = NULL;
7060   PyObject *__pyx_r = NULL;
7061   __Pyx_RefNannyDeclarations
7062   PyObject *__pyx_t_1 = NULL;
7063   Py_ssize_t __pyx_t_2;
7064   Py_ssize_t __pyx_t_3;
7065   int __pyx_t_4;
7066   PyObject *__pyx_t_5 = NULL;
7067   PyObject *__pyx_t_6 = NULL;
7068   int __pyx_t_7;
7069   int __pyx_t_8;
7070   int __pyx_t_9;
7071   int __pyx_t_10;
7072   int __pyx_lineno = 0;
7073   const char *__pyx_filename = NULL;
7074   int __pyx_clineno = 0;
7075   __Pyx_RefNannySetupContext("_process_children", 0);
7076   if (__pyx_optional_args) {
7077     if (__pyx_optional_args->__pyx_n > 0) {
7078       __pyx_v_attrs = __pyx_optional_args->attrs;
7079     }
7080   }
7081 
7082   /* "Cython/Compiler/Visitor.py":260
7083  *     def _process_children(self, parent, attrs=None):
7084  *         # fast cdef entry point for calls from Cython subclasses
7085  *         result = self._visitchildren(parent, attrs)             # <<<<<<<<<<<<<<
7086  *         for attr, newnode in result.items():
7087  *             if type(newnode) is list:
7088  */
7089   __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_7Visitor_VisitorTransform *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base._visitchildren(((struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor *)__pyx_v_self), __pyx_v_parent, __pyx_v_attrs); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 260, __pyx_L1_error)
7090   __Pyx_GOTREF(__pyx_t_1);
7091   __pyx_v_result = ((PyObject*)__pyx_t_1);
7092   __pyx_t_1 = 0;
7093 
7094   /* "Cython/Compiler/Visitor.py":261
7095  *         # fast cdef entry point for calls from Cython subclasses
7096  *         result = self._visitchildren(parent, attrs)
7097  *         for attr, newnode in result.items():             # <<<<<<<<<<<<<<
7098  *             if type(newnode) is list:
7099  *                 newnode = self._flatten_list(newnode)
7100  */
7101   __pyx_t_2 = 0;
7102   if (unlikely(__pyx_v_result == Py_None)) {
7103     PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "items");
7104     __PYX_ERR(0, 261, __pyx_L1_error)
7105   }
7106   __pyx_t_5 = __Pyx_dict_iterator(__pyx_v_result, 1, __pyx_n_s_items, (&__pyx_t_3), (&__pyx_t_4)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 261, __pyx_L1_error)
7107   __Pyx_GOTREF(__pyx_t_5);
7108   __Pyx_XDECREF(__pyx_t_1);
7109   __pyx_t_1 = __pyx_t_5;
7110   __pyx_t_5 = 0;
7111   while (1) {
7112     __pyx_t_7 = __Pyx_dict_iter_next(__pyx_t_1, __pyx_t_3, &__pyx_t_2, &__pyx_t_5, &__pyx_t_6, NULL, __pyx_t_4);
7113     if (unlikely(__pyx_t_7 == 0)) break;
7114     if (unlikely(__pyx_t_7 == -1)) __PYX_ERR(0, 261, __pyx_L1_error)
7115     __Pyx_GOTREF(__pyx_t_5);
7116     __Pyx_GOTREF(__pyx_t_6);
7117     __Pyx_XDECREF_SET(__pyx_v_attr, __pyx_t_5);
7118     __pyx_t_5 = 0;
7119     __Pyx_XDECREF_SET(__pyx_v_newnode, __pyx_t_6);
7120     __pyx_t_6 = 0;
7121 
7122     /* "Cython/Compiler/Visitor.py":262
7123  *         result = self._visitchildren(parent, attrs)
7124  *         for attr, newnode in result.items():
7125  *             if type(newnode) is list:             # <<<<<<<<<<<<<<
7126  *                 newnode = self._flatten_list(newnode)
7127  *             setattr(parent, attr, newnode)
7128  */
7129     __pyx_t_8 = (((PyObject *)Py_TYPE(__pyx_v_newnode)) == ((PyObject *)(&PyList_Type)));
7130     __pyx_t_9 = (__pyx_t_8 != 0);
7131     if (__pyx_t_9) {
7132 
7133       /* "Cython/Compiler/Visitor.py":263
7134  *         for attr, newnode in result.items():
7135  *             if type(newnode) is list:
7136  *                 newnode = self._flatten_list(newnode)             # <<<<<<<<<<<<<<
7137  *             setattr(parent, attr, newnode)
7138  *         return result
7139  */
7140       if (!(likely(PyList_CheckExact(__pyx_v_newnode))||((__pyx_v_newnode) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "list", Py_TYPE(__pyx_v_newnode)->tp_name), 0))) __PYX_ERR(0, 263, __pyx_L1_error)
7141       __pyx_t_6 = __pyx_f_6Cython_8Compiler_7Visitor_16VisitorTransform__flatten_list(__pyx_v_self, ((PyObject*)__pyx_v_newnode)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 263, __pyx_L1_error)
7142       __Pyx_GOTREF(__pyx_t_6);
7143       __Pyx_DECREF_SET(__pyx_v_newnode, __pyx_t_6);
7144       __pyx_t_6 = 0;
7145 
7146       /* "Cython/Compiler/Visitor.py":262
7147  *         result = self._visitchildren(parent, attrs)
7148  *         for attr, newnode in result.items():
7149  *             if type(newnode) is list:             # <<<<<<<<<<<<<<
7150  *                 newnode = self._flatten_list(newnode)
7151  *             setattr(parent, attr, newnode)
7152  */
7153     }
7154 
7155     /* "Cython/Compiler/Visitor.py":264
7156  *             if type(newnode) is list:
7157  *                 newnode = self._flatten_list(newnode)
7158  *             setattr(parent, attr, newnode)             # <<<<<<<<<<<<<<
7159  *         return result
7160  *
7161  */
7162     __pyx_t_10 = PyObject_SetAttr(__pyx_v_parent, __pyx_v_attr, __pyx_v_newnode); if (unlikely(__pyx_t_10 == ((int)-1))) __PYX_ERR(0, 264, __pyx_L1_error)
7163   }
7164   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
7165 
7166   /* "Cython/Compiler/Visitor.py":265
7167  *                 newnode = self._flatten_list(newnode)
7168  *             setattr(parent, attr, newnode)
7169  *         return result             # <<<<<<<<<<<<<<
7170  *
7171  *     @cython.final
7172  */
7173   __Pyx_XDECREF(__pyx_r);
7174   __Pyx_INCREF(__pyx_v_result);
7175   __pyx_r = __pyx_v_result;
7176   goto __pyx_L0;
7177 
7178   /* "Cython/Compiler/Visitor.py":258
7179  *
7180  *     @cython.final
7181  *     def _process_children(self, parent, attrs=None):             # <<<<<<<<<<<<<<
7182  *         # fast cdef entry point for calls from Cython subclasses
7183  *         result = self._visitchildren(parent, attrs)
7184  */
7185 
7186   /* function exit code */
7187   __pyx_L1_error:;
7188   __Pyx_XDECREF(__pyx_t_1);
7189   __Pyx_XDECREF(__pyx_t_5);
7190   __Pyx_XDECREF(__pyx_t_6);
7191   __Pyx_AddTraceback("Cython.Compiler.Visitor.VisitorTransform._process_children", __pyx_clineno, __pyx_lineno, __pyx_filename);
7192   __pyx_r = 0;
7193   __pyx_L0:;
7194   __Pyx_XDECREF(__pyx_v_result);
7195   __Pyx_XDECREF(__pyx_v_attr);
7196   __Pyx_XDECREF(__pyx_v_newnode);
7197   __Pyx_XGIVEREF(__pyx_r);
7198   __Pyx_RefNannyFinishContext();
7199   return __pyx_r;
7200 }
7201 
7202 /* "Cython/Compiler/Visitor.py":268
7203  *
7204  *     @cython.final
7205  *     def _flatten_list(self, orig_list):             # <<<<<<<<<<<<<<
7206  *         # Flatten the list one level and remove any None
7207  *         newlist = []
7208  */
7209 
__pyx_f_6Cython_8Compiler_7Visitor_16VisitorTransform__flatten_list(CYTHON_UNUSED struct __pyx_obj_6Cython_8Compiler_7Visitor_VisitorTransform * __pyx_v_self,PyObject * __pyx_v_orig_list)7210 static PyObject *__pyx_f_6Cython_8Compiler_7Visitor_16VisitorTransform__flatten_list(CYTHON_UNUSED struct __pyx_obj_6Cython_8Compiler_7Visitor_VisitorTransform *__pyx_v_self, PyObject *__pyx_v_orig_list) {
7211   PyObject *__pyx_v_newlist = NULL;
7212   PyObject *__pyx_v_x = NULL;
7213   PyObject *__pyx_r = NULL;
7214   __Pyx_RefNannyDeclarations
7215   PyObject *__pyx_t_1 = NULL;
7216   Py_ssize_t __pyx_t_2;
7217   PyObject *__pyx_t_3 = NULL;
7218   int __pyx_t_4;
7219   int __pyx_t_5;
7220   int __pyx_t_6;
7221   int __pyx_lineno = 0;
7222   const char *__pyx_filename = NULL;
7223   int __pyx_clineno = 0;
7224   __Pyx_RefNannySetupContext("_flatten_list", 0);
7225 
7226   /* "Cython/Compiler/Visitor.py":270
7227  *     def _flatten_list(self, orig_list):
7228  *         # Flatten the list one level and remove any None
7229  *         newlist = []             # <<<<<<<<<<<<<<
7230  *         for x in orig_list:
7231  *             if x is not None:
7232  */
7233   __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 270, __pyx_L1_error)
7234   __Pyx_GOTREF(__pyx_t_1);
7235   __pyx_v_newlist = ((PyObject*)__pyx_t_1);
7236   __pyx_t_1 = 0;
7237 
7238   /* "Cython/Compiler/Visitor.py":271
7239  *         # Flatten the list one level and remove any None
7240  *         newlist = []
7241  *         for x in orig_list:             # <<<<<<<<<<<<<<
7242  *             if x is not None:
7243  *                 if type(x) is list:
7244  */
7245   if (unlikely(__pyx_v_orig_list == Py_None)) {
7246     PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
7247     __PYX_ERR(0, 271, __pyx_L1_error)
7248   }
7249   __pyx_t_1 = __pyx_v_orig_list; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0;
7250   for (;;) {
7251     if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break;
7252     #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
7253     __pyx_t_3 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_3); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 271, __pyx_L1_error)
7254     #else
7255     __pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 271, __pyx_L1_error)
7256     __Pyx_GOTREF(__pyx_t_3);
7257     #endif
7258     __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_3);
7259     __pyx_t_3 = 0;
7260 
7261     /* "Cython/Compiler/Visitor.py":272
7262  *         newlist = []
7263  *         for x in orig_list:
7264  *             if x is not None:             # <<<<<<<<<<<<<<
7265  *                 if type(x) is list:
7266  *                     newlist.extend(x)
7267  */
7268     __pyx_t_4 = (__pyx_v_x != Py_None);
7269     __pyx_t_5 = (__pyx_t_4 != 0);
7270     if (__pyx_t_5) {
7271 
7272       /* "Cython/Compiler/Visitor.py":273
7273  *         for x in orig_list:
7274  *             if x is not None:
7275  *                 if type(x) is list:             # <<<<<<<<<<<<<<
7276  *                     newlist.extend(x)
7277  *                 else:
7278  */
7279       __pyx_t_5 = (((PyObject *)Py_TYPE(__pyx_v_x)) == ((PyObject *)(&PyList_Type)));
7280       __pyx_t_4 = (__pyx_t_5 != 0);
7281       if (__pyx_t_4) {
7282 
7283         /* "Cython/Compiler/Visitor.py":274
7284  *             if x is not None:
7285  *                 if type(x) is list:
7286  *                     newlist.extend(x)             # <<<<<<<<<<<<<<
7287  *                 else:
7288  *                     newlist.append(x)
7289  */
7290         __pyx_t_6 = __Pyx_PyList_Extend(__pyx_v_newlist, __pyx_v_x); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(0, 274, __pyx_L1_error)
7291 
7292         /* "Cython/Compiler/Visitor.py":273
7293  *         for x in orig_list:
7294  *             if x is not None:
7295  *                 if type(x) is list:             # <<<<<<<<<<<<<<
7296  *                     newlist.extend(x)
7297  *                 else:
7298  */
7299         goto __pyx_L6;
7300       }
7301 
7302       /* "Cython/Compiler/Visitor.py":276
7303  *                     newlist.extend(x)
7304  *                 else:
7305  *                     newlist.append(x)             # <<<<<<<<<<<<<<
7306  *         return newlist
7307  *
7308  */
7309       /*else*/ {
7310         __pyx_t_6 = __Pyx_PyList_Append(__pyx_v_newlist, __pyx_v_x); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(0, 276, __pyx_L1_error)
7311       }
7312       __pyx_L6:;
7313 
7314       /* "Cython/Compiler/Visitor.py":272
7315  *         newlist = []
7316  *         for x in orig_list:
7317  *             if x is not None:             # <<<<<<<<<<<<<<
7318  *                 if type(x) is list:
7319  *                     newlist.extend(x)
7320  */
7321     }
7322 
7323     /* "Cython/Compiler/Visitor.py":271
7324  *         # Flatten the list one level and remove any None
7325  *         newlist = []
7326  *         for x in orig_list:             # <<<<<<<<<<<<<<
7327  *             if x is not None:
7328  *                 if type(x) is list:
7329  */
7330   }
7331   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
7332 
7333   /* "Cython/Compiler/Visitor.py":277
7334  *                 else:
7335  *                     newlist.append(x)
7336  *         return newlist             # <<<<<<<<<<<<<<
7337  *
7338  *     def recurse_to_children(self, node):
7339  */
7340   __Pyx_XDECREF(__pyx_r);
7341   __Pyx_INCREF(__pyx_v_newlist);
7342   __pyx_r = __pyx_v_newlist;
7343   goto __pyx_L0;
7344 
7345   /* "Cython/Compiler/Visitor.py":268
7346  *
7347  *     @cython.final
7348  *     def _flatten_list(self, orig_list):             # <<<<<<<<<<<<<<
7349  *         # Flatten the list one level and remove any None
7350  *         newlist = []
7351  */
7352 
7353   /* function exit code */
7354   __pyx_L1_error:;
7355   __Pyx_XDECREF(__pyx_t_1);
7356   __Pyx_XDECREF(__pyx_t_3);
7357   __Pyx_AddTraceback("Cython.Compiler.Visitor.VisitorTransform._flatten_list", __pyx_clineno, __pyx_lineno, __pyx_filename);
7358   __pyx_r = 0;
7359   __pyx_L0:;
7360   __Pyx_XDECREF(__pyx_v_newlist);
7361   __Pyx_XDECREF(__pyx_v_x);
7362   __Pyx_XGIVEREF(__pyx_r);
7363   __Pyx_RefNannyFinishContext();
7364   return __pyx_r;
7365 }
7366 
7367 /* "Cython/Compiler/Visitor.py":279
7368  *         return newlist
7369  *
7370  *     def recurse_to_children(self, node):             # <<<<<<<<<<<<<<
7371  *         self._process_children(node)
7372  *         return node
7373  */
7374 
7375 /* Python wrapper */
7376 static PyObject *__pyx_pw_6Cython_8Compiler_7Visitor_16VisitorTransform_3recurse_to_children(PyObject *__pyx_v_self, PyObject *__pyx_v_node); /*proto*/
7377 static PyMethodDef __pyx_mdef_6Cython_8Compiler_7Visitor_16VisitorTransform_3recurse_to_children = {"recurse_to_children", (PyCFunction)__pyx_pw_6Cython_8Compiler_7Visitor_16VisitorTransform_3recurse_to_children, METH_O, 0};
__pyx_pw_6Cython_8Compiler_7Visitor_16VisitorTransform_3recurse_to_children(PyObject * __pyx_v_self,PyObject * __pyx_v_node)7378 static PyObject *__pyx_pw_6Cython_8Compiler_7Visitor_16VisitorTransform_3recurse_to_children(PyObject *__pyx_v_self, PyObject *__pyx_v_node) {
7379   PyObject *__pyx_r = 0;
7380   __Pyx_RefNannyDeclarations
7381   __Pyx_RefNannySetupContext("recurse_to_children (wrapper)", 0);
7382   __pyx_r = __pyx_pf_6Cython_8Compiler_7Visitor_16VisitorTransform_2recurse_to_children(((struct __pyx_obj_6Cython_8Compiler_7Visitor_VisitorTransform *)__pyx_v_self), ((PyObject *)__pyx_v_node));
7383 
7384   /* function exit code */
7385   __Pyx_RefNannyFinishContext();
7386   return __pyx_r;
7387 }
7388 
__pyx_pf_6Cython_8Compiler_7Visitor_16VisitorTransform_2recurse_to_children(struct __pyx_obj_6Cython_8Compiler_7Visitor_VisitorTransform * __pyx_v_self,PyObject * __pyx_v_node)7389 static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_16VisitorTransform_2recurse_to_children(struct __pyx_obj_6Cython_8Compiler_7Visitor_VisitorTransform *__pyx_v_self, PyObject *__pyx_v_node) {
7390   PyObject *__pyx_r = NULL;
7391   __Pyx_RefNannyDeclarations
7392   PyObject *__pyx_t_1 = NULL;
7393   int __pyx_lineno = 0;
7394   const char *__pyx_filename = NULL;
7395   int __pyx_clineno = 0;
7396   __Pyx_RefNannySetupContext("recurse_to_children", 0);
7397 
7398   /* "Cython/Compiler/Visitor.py":280
7399  *
7400  *     def recurse_to_children(self, node):
7401  *         self._process_children(node)             # <<<<<<<<<<<<<<
7402  *         return node
7403  *
7404  */
7405   __pyx_t_1 = __pyx_f_6Cython_8Compiler_7Visitor_16VisitorTransform__process_children(__pyx_v_self, __pyx_v_node, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 280, __pyx_L1_error)
7406   __Pyx_GOTREF(__pyx_t_1);
7407   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
7408 
7409   /* "Cython/Compiler/Visitor.py":281
7410  *     def recurse_to_children(self, node):
7411  *         self._process_children(node)
7412  *         return node             # <<<<<<<<<<<<<<
7413  *
7414  *     def __call__(self, root):
7415  */
7416   __Pyx_XDECREF(__pyx_r);
7417   __Pyx_INCREF(__pyx_v_node);
7418   __pyx_r = __pyx_v_node;
7419   goto __pyx_L0;
7420 
7421   /* "Cython/Compiler/Visitor.py":279
7422  *         return newlist
7423  *
7424  *     def recurse_to_children(self, node):             # <<<<<<<<<<<<<<
7425  *         self._process_children(node)
7426  *         return node
7427  */
7428 
7429   /* function exit code */
7430   __pyx_L1_error:;
7431   __Pyx_XDECREF(__pyx_t_1);
7432   __Pyx_AddTraceback("Cython.Compiler.Visitor.VisitorTransform.recurse_to_children", __pyx_clineno, __pyx_lineno, __pyx_filename);
7433   __pyx_r = NULL;
7434   __pyx_L0:;
7435   __Pyx_XGIVEREF(__pyx_r);
7436   __Pyx_RefNannyFinishContext();
7437   return __pyx_r;
7438 }
7439 
7440 /* "Cython/Compiler/Visitor.py":283
7441  *         return node
7442  *
7443  *     def __call__(self, root):             # <<<<<<<<<<<<<<
7444  *         return self._visit(root)
7445  *
7446  */
7447 
7448 /* Python wrapper */
7449 static PyObject *__pyx_pw_6Cython_8Compiler_7Visitor_16VisitorTransform_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
__pyx_pw_6Cython_8Compiler_7Visitor_16VisitorTransform_5__call__(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)7450 static PyObject *__pyx_pw_6Cython_8Compiler_7Visitor_16VisitorTransform_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
7451   PyObject *__pyx_v_root = 0;
7452   int __pyx_lineno = 0;
7453   const char *__pyx_filename = NULL;
7454   int __pyx_clineno = 0;
7455   PyObject *__pyx_r = 0;
7456   __Pyx_RefNannyDeclarations
7457   __Pyx_RefNannySetupContext("__call__ (wrapper)", 0);
7458   {
7459     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_root,0};
7460     PyObject* values[1] = {0};
7461     if (unlikely(__pyx_kwds)) {
7462       Py_ssize_t kw_args;
7463       const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
7464       switch (pos_args) {
7465         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
7466         CYTHON_FALLTHROUGH;
7467         case  0: break;
7468         default: goto __pyx_L5_argtuple_error;
7469       }
7470       kw_args = PyDict_Size(__pyx_kwds);
7471       switch (pos_args) {
7472         case  0:
7473         if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_root)) != 0)) kw_args--;
7474         else goto __pyx_L5_argtuple_error;
7475       }
7476       if (unlikely(kw_args > 0)) {
7477         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__call__") < 0)) __PYX_ERR(0, 283, __pyx_L3_error)
7478       }
7479     } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
7480       goto __pyx_L5_argtuple_error;
7481     } else {
7482       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
7483     }
7484     __pyx_v_root = values[0];
7485   }
7486   goto __pyx_L4_argument_unpacking_done;
7487   __pyx_L5_argtuple_error:;
7488   __Pyx_RaiseArgtupleInvalid("__call__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 283, __pyx_L3_error)
7489   __pyx_L3_error:;
7490   __Pyx_AddTraceback("Cython.Compiler.Visitor.VisitorTransform.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
7491   __Pyx_RefNannyFinishContext();
7492   return NULL;
7493   __pyx_L4_argument_unpacking_done:;
7494   __pyx_r = __pyx_pf_6Cython_8Compiler_7Visitor_16VisitorTransform_4__call__(((struct __pyx_obj_6Cython_8Compiler_7Visitor_VisitorTransform *)__pyx_v_self), __pyx_v_root);
7495 
7496   /* function exit code */
7497   __Pyx_RefNannyFinishContext();
7498   return __pyx_r;
7499 }
7500 
__pyx_pf_6Cython_8Compiler_7Visitor_16VisitorTransform_4__call__(struct __pyx_obj_6Cython_8Compiler_7Visitor_VisitorTransform * __pyx_v_self,PyObject * __pyx_v_root)7501 static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_16VisitorTransform_4__call__(struct __pyx_obj_6Cython_8Compiler_7Visitor_VisitorTransform *__pyx_v_self, PyObject *__pyx_v_root) {
7502   PyObject *__pyx_r = NULL;
7503   __Pyx_RefNannyDeclarations
7504   PyObject *__pyx_t_1 = NULL;
7505   int __pyx_lineno = 0;
7506   const char *__pyx_filename = NULL;
7507   int __pyx_clineno = 0;
7508   __Pyx_RefNannySetupContext("__call__", 0);
7509 
7510   /* "Cython/Compiler/Visitor.py":284
7511  *
7512  *     def __call__(self, root):
7513  *         return self._visit(root)             # <<<<<<<<<<<<<<
7514  *
7515  *
7516  */
7517   __Pyx_XDECREF(__pyx_r);
7518   __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_7Visitor_VisitorTransform *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base._visit(((struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor *)__pyx_v_self), __pyx_v_root); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 284, __pyx_L1_error)
7519   __Pyx_GOTREF(__pyx_t_1);
7520   __pyx_r = __pyx_t_1;
7521   __pyx_t_1 = 0;
7522   goto __pyx_L0;
7523 
7524   /* "Cython/Compiler/Visitor.py":283
7525  *         return node
7526  *
7527  *     def __call__(self, root):             # <<<<<<<<<<<<<<
7528  *         return self._visit(root)
7529  *
7530  */
7531 
7532   /* function exit code */
7533   __pyx_L1_error:;
7534   __Pyx_XDECREF(__pyx_t_1);
7535   __Pyx_AddTraceback("Cython.Compiler.Visitor.VisitorTransform.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
7536   __pyx_r = NULL;
7537   __pyx_L0:;
7538   __Pyx_XGIVEREF(__pyx_r);
7539   __Pyx_RefNannyFinishContext();
7540   return __pyx_r;
7541 }
7542 
7543 /* "Cython/Compiler/Visitor.py":294
7544  *      - Tracks directives in effect in self.current_directives
7545  *     """
7546  *     def __init__(self, context):             # <<<<<<<<<<<<<<
7547  *         super(CythonTransform, self).__init__()
7548  *         self.context = context
7549  */
7550 
7551 /* Python wrapper */
7552 static int __pyx_pw_6Cython_8Compiler_7Visitor_15CythonTransform_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
__pyx_pw_6Cython_8Compiler_7Visitor_15CythonTransform_1__init__(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)7553 static int __pyx_pw_6Cython_8Compiler_7Visitor_15CythonTransform_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
7554   PyObject *__pyx_v_context = 0;
7555   int __pyx_lineno = 0;
7556   const char *__pyx_filename = NULL;
7557   int __pyx_clineno = 0;
7558   int __pyx_r;
7559   __Pyx_RefNannyDeclarations
7560   __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
7561   {
7562     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_context,0};
7563     PyObject* values[1] = {0};
7564     if (unlikely(__pyx_kwds)) {
7565       Py_ssize_t kw_args;
7566       const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
7567       switch (pos_args) {
7568         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
7569         CYTHON_FALLTHROUGH;
7570         case  0: break;
7571         default: goto __pyx_L5_argtuple_error;
7572       }
7573       kw_args = PyDict_Size(__pyx_kwds);
7574       switch (pos_args) {
7575         case  0:
7576         if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_context)) != 0)) kw_args--;
7577         else goto __pyx_L5_argtuple_error;
7578       }
7579       if (unlikely(kw_args > 0)) {
7580         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 294, __pyx_L3_error)
7581       }
7582     } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
7583       goto __pyx_L5_argtuple_error;
7584     } else {
7585       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
7586     }
7587     __pyx_v_context = values[0];
7588   }
7589   goto __pyx_L4_argument_unpacking_done;
7590   __pyx_L5_argtuple_error:;
7591   __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 294, __pyx_L3_error)
7592   __pyx_L3_error:;
7593   __Pyx_AddTraceback("Cython.Compiler.Visitor.CythonTransform.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
7594   __Pyx_RefNannyFinishContext();
7595   return -1;
7596   __pyx_L4_argument_unpacking_done:;
7597   __pyx_r = __pyx_pf_6Cython_8Compiler_7Visitor_15CythonTransform___init__(((struct __pyx_obj_6Cython_8Compiler_7Visitor_CythonTransform *)__pyx_v_self), __pyx_v_context);
7598 
7599   /* function exit code */
7600   __Pyx_RefNannyFinishContext();
7601   return __pyx_r;
7602 }
7603 
__pyx_pf_6Cython_8Compiler_7Visitor_15CythonTransform___init__(struct __pyx_obj_6Cython_8Compiler_7Visitor_CythonTransform * __pyx_v_self,PyObject * __pyx_v_context)7604 static int __pyx_pf_6Cython_8Compiler_7Visitor_15CythonTransform___init__(struct __pyx_obj_6Cython_8Compiler_7Visitor_CythonTransform *__pyx_v_self, PyObject *__pyx_v_context) {
7605   int __pyx_r;
7606   __Pyx_RefNannyDeclarations
7607   PyObject *__pyx_t_1 = NULL;
7608   PyObject *__pyx_t_2 = NULL;
7609   PyObject *__pyx_t_3 = NULL;
7610   int __pyx_lineno = 0;
7611   const char *__pyx_filename = NULL;
7612   int __pyx_clineno = 0;
7613   __Pyx_RefNannySetupContext("__init__", 0);
7614 
7615   /* "Cython/Compiler/Visitor.py":295
7616  *     """
7617  *     def __init__(self, context):
7618  *         super(CythonTransform, self).__init__()             # <<<<<<<<<<<<<<
7619  *         self.context = context
7620  *
7621  */
7622   __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 295, __pyx_L1_error)
7623   __Pyx_GOTREF(__pyx_t_2);
7624   __Pyx_INCREF(((PyObject *)__pyx_ptype_6Cython_8Compiler_7Visitor_CythonTransform));
7625   __Pyx_GIVEREF(((PyObject *)__pyx_ptype_6Cython_8Compiler_7Visitor_CythonTransform));
7626   PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_ptype_6Cython_8Compiler_7Visitor_CythonTransform));
7627   __Pyx_INCREF(((PyObject *)__pyx_v_self));
7628   __Pyx_GIVEREF(((PyObject *)__pyx_v_self));
7629   PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_v_self));
7630   __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 295, __pyx_L1_error)
7631   __Pyx_GOTREF(__pyx_t_3);
7632   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
7633   __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_init); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 295, __pyx_L1_error)
7634   __Pyx_GOTREF(__pyx_t_2);
7635   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
7636   __pyx_t_3 = NULL;
7637   if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
7638     __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
7639     if (likely(__pyx_t_3)) {
7640       PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
7641       __Pyx_INCREF(__pyx_t_3);
7642       __Pyx_INCREF(function);
7643       __Pyx_DECREF_SET(__pyx_t_2, function);
7644     }
7645   }
7646   __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
7647   __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
7648   if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 295, __pyx_L1_error)
7649   __Pyx_GOTREF(__pyx_t_1);
7650   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
7651   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
7652 
7653   /* "Cython/Compiler/Visitor.py":296
7654  *     def __init__(self, context):
7655  *         super(CythonTransform, self).__init__()
7656  *         self.context = context             # <<<<<<<<<<<<<<
7657  *
7658  *     def __call__(self, node):
7659  */
7660   __Pyx_INCREF(__pyx_v_context);
7661   __Pyx_GIVEREF(__pyx_v_context);
7662   __Pyx_GOTREF(__pyx_v_self->context);
7663   __Pyx_DECREF(__pyx_v_self->context);
7664   __pyx_v_self->context = __pyx_v_context;
7665 
7666   /* "Cython/Compiler/Visitor.py":294
7667  *      - Tracks directives in effect in self.current_directives
7668  *     """
7669  *     def __init__(self, context):             # <<<<<<<<<<<<<<
7670  *         super(CythonTransform, self).__init__()
7671  *         self.context = context
7672  */
7673 
7674   /* function exit code */
7675   __pyx_r = 0;
7676   goto __pyx_L0;
7677   __pyx_L1_error:;
7678   __Pyx_XDECREF(__pyx_t_1);
7679   __Pyx_XDECREF(__pyx_t_2);
7680   __Pyx_XDECREF(__pyx_t_3);
7681   __Pyx_AddTraceback("Cython.Compiler.Visitor.CythonTransform.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
7682   __pyx_r = -1;
7683   __pyx_L0:;
7684   __Pyx_RefNannyFinishContext();
7685   return __pyx_r;
7686 }
7687 
7688 /* "Cython/Compiler/Visitor.py":298
7689  *         self.context = context
7690  *
7691  *     def __call__(self, node):             # <<<<<<<<<<<<<<
7692  *         from . import ModuleNode
7693  *         if isinstance(node, ModuleNode.ModuleNode):
7694  */
7695 
7696 /* Python wrapper */
7697 static PyObject *__pyx_pw_6Cython_8Compiler_7Visitor_15CythonTransform_3__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
__pyx_pw_6Cython_8Compiler_7Visitor_15CythonTransform_3__call__(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)7698 static PyObject *__pyx_pw_6Cython_8Compiler_7Visitor_15CythonTransform_3__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
7699   PyObject *__pyx_v_node = 0;
7700   int __pyx_lineno = 0;
7701   const char *__pyx_filename = NULL;
7702   int __pyx_clineno = 0;
7703   PyObject *__pyx_r = 0;
7704   __Pyx_RefNannyDeclarations
7705   __Pyx_RefNannySetupContext("__call__ (wrapper)", 0);
7706   {
7707     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_node,0};
7708     PyObject* values[1] = {0};
7709     if (unlikely(__pyx_kwds)) {
7710       Py_ssize_t kw_args;
7711       const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
7712       switch (pos_args) {
7713         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
7714         CYTHON_FALLTHROUGH;
7715         case  0: break;
7716         default: goto __pyx_L5_argtuple_error;
7717       }
7718       kw_args = PyDict_Size(__pyx_kwds);
7719       switch (pos_args) {
7720         case  0:
7721         if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_node)) != 0)) kw_args--;
7722         else goto __pyx_L5_argtuple_error;
7723       }
7724       if (unlikely(kw_args > 0)) {
7725         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__call__") < 0)) __PYX_ERR(0, 298, __pyx_L3_error)
7726       }
7727     } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
7728       goto __pyx_L5_argtuple_error;
7729     } else {
7730       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
7731     }
7732     __pyx_v_node = values[0];
7733   }
7734   goto __pyx_L4_argument_unpacking_done;
7735   __pyx_L5_argtuple_error:;
7736   __Pyx_RaiseArgtupleInvalid("__call__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 298, __pyx_L3_error)
7737   __pyx_L3_error:;
7738   __Pyx_AddTraceback("Cython.Compiler.Visitor.CythonTransform.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
7739   __Pyx_RefNannyFinishContext();
7740   return NULL;
7741   __pyx_L4_argument_unpacking_done:;
7742   __pyx_r = __pyx_pf_6Cython_8Compiler_7Visitor_15CythonTransform_2__call__(((struct __pyx_obj_6Cython_8Compiler_7Visitor_CythonTransform *)__pyx_v_self), __pyx_v_node);
7743 
7744   /* function exit code */
7745   __Pyx_RefNannyFinishContext();
7746   return __pyx_r;
7747 }
7748 
__pyx_pf_6Cython_8Compiler_7Visitor_15CythonTransform_2__call__(struct __pyx_obj_6Cython_8Compiler_7Visitor_CythonTransform * __pyx_v_self,PyObject * __pyx_v_node)7749 static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_15CythonTransform_2__call__(struct __pyx_obj_6Cython_8Compiler_7Visitor_CythonTransform *__pyx_v_self, PyObject *__pyx_v_node) {
7750   PyObject *__pyx_v_ModuleNode = NULL;
7751   PyObject *__pyx_r = NULL;
7752   __Pyx_RefNannyDeclarations
7753   PyObject *__pyx_t_1 = NULL;
7754   PyObject *__pyx_t_2 = NULL;
7755   int __pyx_t_3;
7756   int __pyx_t_4;
7757   PyObject *__pyx_t_5 = NULL;
7758   int __pyx_lineno = 0;
7759   const char *__pyx_filename = NULL;
7760   int __pyx_clineno = 0;
7761   __Pyx_RefNannySetupContext("__call__", 0);
7762 
7763   /* "Cython/Compiler/Visitor.py":299
7764  *
7765  *     def __call__(self, node):
7766  *         from . import ModuleNode             # <<<<<<<<<<<<<<
7767  *         if isinstance(node, ModuleNode.ModuleNode):
7768  *             self.current_directives = node.directives
7769  */
7770   __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 299, __pyx_L1_error)
7771   __Pyx_GOTREF(__pyx_t_1);
7772   __Pyx_INCREF(__pyx_n_s_ModuleNode);
7773   __Pyx_GIVEREF(__pyx_n_s_ModuleNode);
7774   PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_ModuleNode);
7775   __pyx_t_2 = __Pyx_Import(__pyx_n_s__7, __pyx_t_1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 299, __pyx_L1_error)
7776   __Pyx_GOTREF(__pyx_t_2);
7777   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
7778   __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_ModuleNode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 299, __pyx_L1_error)
7779   __Pyx_GOTREF(__pyx_t_1);
7780   __Pyx_INCREF(__pyx_t_1);
7781   __pyx_v_ModuleNode = __pyx_t_1;
7782   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
7783   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
7784 
7785   /* "Cython/Compiler/Visitor.py":300
7786  *     def __call__(self, node):
7787  *         from . import ModuleNode
7788  *         if isinstance(node, ModuleNode.ModuleNode):             # <<<<<<<<<<<<<<
7789  *             self.current_directives = node.directives
7790  *         return super(CythonTransform, self).__call__(node)
7791  */
7792   __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_ModuleNode, __pyx_n_s_ModuleNode); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 300, __pyx_L1_error)
7793   __Pyx_GOTREF(__pyx_t_2);
7794   __pyx_t_3 = PyObject_IsInstance(__pyx_v_node, __pyx_t_2); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(0, 300, __pyx_L1_error)
7795   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
7796   __pyx_t_4 = (__pyx_t_3 != 0);
7797   if (__pyx_t_4) {
7798 
7799     /* "Cython/Compiler/Visitor.py":301
7800  *         from . import ModuleNode
7801  *         if isinstance(node, ModuleNode.ModuleNode):
7802  *             self.current_directives = node.directives             # <<<<<<<<<<<<<<
7803  *         return super(CythonTransform, self).__call__(node)
7804  *
7805  */
7806     __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_directives); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 301, __pyx_L1_error)
7807     __Pyx_GOTREF(__pyx_t_2);
7808     __Pyx_GIVEREF(__pyx_t_2);
7809     __Pyx_GOTREF(__pyx_v_self->current_directives);
7810     __Pyx_DECREF(__pyx_v_self->current_directives);
7811     __pyx_v_self->current_directives = __pyx_t_2;
7812     __pyx_t_2 = 0;
7813 
7814     /* "Cython/Compiler/Visitor.py":300
7815  *     def __call__(self, node):
7816  *         from . import ModuleNode
7817  *         if isinstance(node, ModuleNode.ModuleNode):             # <<<<<<<<<<<<<<
7818  *             self.current_directives = node.directives
7819  *         return super(CythonTransform, self).__call__(node)
7820  */
7821   }
7822 
7823   /* "Cython/Compiler/Visitor.py":302
7824  *         if isinstance(node, ModuleNode.ModuleNode):
7825  *             self.current_directives = node.directives
7826  *         return super(CythonTransform, self).__call__(node)             # <<<<<<<<<<<<<<
7827  *
7828  *     def visit_CompilerDirectivesNode(self, node):
7829  */
7830   __Pyx_XDECREF(__pyx_r);
7831   __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 302, __pyx_L1_error)
7832   __Pyx_GOTREF(__pyx_t_1);
7833   __Pyx_INCREF(((PyObject *)__pyx_ptype_6Cython_8Compiler_7Visitor_CythonTransform));
7834   __Pyx_GIVEREF(((PyObject *)__pyx_ptype_6Cython_8Compiler_7Visitor_CythonTransform));
7835   PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_ptype_6Cython_8Compiler_7Visitor_CythonTransform));
7836   __Pyx_INCREF(((PyObject *)__pyx_v_self));
7837   __Pyx_GIVEREF(((PyObject *)__pyx_v_self));
7838   PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_self));
7839   __pyx_t_5 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_1, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 302, __pyx_L1_error)
7840   __Pyx_GOTREF(__pyx_t_5);
7841   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
7842   __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_call); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 302, __pyx_L1_error)
7843   __Pyx_GOTREF(__pyx_t_1);
7844   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
7845   __pyx_t_5 = NULL;
7846   if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) {
7847     __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_1);
7848     if (likely(__pyx_t_5)) {
7849       PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
7850       __Pyx_INCREF(__pyx_t_5);
7851       __Pyx_INCREF(function);
7852       __Pyx_DECREF_SET(__pyx_t_1, function);
7853     }
7854   }
7855   __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_5, __pyx_v_node) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_v_node);
7856   __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
7857   if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 302, __pyx_L1_error)
7858   __Pyx_GOTREF(__pyx_t_2);
7859   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
7860   __pyx_r = __pyx_t_2;
7861   __pyx_t_2 = 0;
7862   goto __pyx_L0;
7863 
7864   /* "Cython/Compiler/Visitor.py":298
7865  *         self.context = context
7866  *
7867  *     def __call__(self, node):             # <<<<<<<<<<<<<<
7868  *         from . import ModuleNode
7869  *         if isinstance(node, ModuleNode.ModuleNode):
7870  */
7871 
7872   /* function exit code */
7873   __pyx_L1_error:;
7874   __Pyx_XDECREF(__pyx_t_1);
7875   __Pyx_XDECREF(__pyx_t_2);
7876   __Pyx_XDECREF(__pyx_t_5);
7877   __Pyx_AddTraceback("Cython.Compiler.Visitor.CythonTransform.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
7878   __pyx_r = NULL;
7879   __pyx_L0:;
7880   __Pyx_XDECREF(__pyx_v_ModuleNode);
7881   __Pyx_XGIVEREF(__pyx_r);
7882   __Pyx_RefNannyFinishContext();
7883   return __pyx_r;
7884 }
7885 
7886 /* "Cython/Compiler/Visitor.py":304
7887  *         return super(CythonTransform, self).__call__(node)
7888  *
7889  *     def visit_CompilerDirectivesNode(self, node):             # <<<<<<<<<<<<<<
7890  *         old = self.current_directives
7891  *         self.current_directives = node.directives
7892  */
7893 
7894 /* Python wrapper */
7895 static PyObject *__pyx_pw_6Cython_8Compiler_7Visitor_15CythonTransform_5visit_CompilerDirectivesNode(PyObject *__pyx_v_self, PyObject *__pyx_v_node); /*proto*/
7896 static PyMethodDef __pyx_mdef_6Cython_8Compiler_7Visitor_15CythonTransform_5visit_CompilerDirectivesNode = {"visit_CompilerDirectivesNode", (PyCFunction)__pyx_pw_6Cython_8Compiler_7Visitor_15CythonTransform_5visit_CompilerDirectivesNode, METH_O, 0};
__pyx_pw_6Cython_8Compiler_7Visitor_15CythonTransform_5visit_CompilerDirectivesNode(PyObject * __pyx_v_self,PyObject * __pyx_v_node)7897 static PyObject *__pyx_pw_6Cython_8Compiler_7Visitor_15CythonTransform_5visit_CompilerDirectivesNode(PyObject *__pyx_v_self, PyObject *__pyx_v_node) {
7898   PyObject *__pyx_r = 0;
7899   __Pyx_RefNannyDeclarations
7900   __Pyx_RefNannySetupContext("visit_CompilerDirectivesNode (wrapper)", 0);
7901   __pyx_r = __pyx_pf_6Cython_8Compiler_7Visitor_15CythonTransform_4visit_CompilerDirectivesNode(((struct __pyx_obj_6Cython_8Compiler_7Visitor_CythonTransform *)__pyx_v_self), ((PyObject *)__pyx_v_node));
7902 
7903   /* function exit code */
7904   __Pyx_RefNannyFinishContext();
7905   return __pyx_r;
7906 }
7907 
__pyx_pf_6Cython_8Compiler_7Visitor_15CythonTransform_4visit_CompilerDirectivesNode(struct __pyx_obj_6Cython_8Compiler_7Visitor_CythonTransform * __pyx_v_self,PyObject * __pyx_v_node)7908 static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_15CythonTransform_4visit_CompilerDirectivesNode(struct __pyx_obj_6Cython_8Compiler_7Visitor_CythonTransform *__pyx_v_self, PyObject *__pyx_v_node) {
7909   PyObject *__pyx_v_old = NULL;
7910   PyObject *__pyx_r = NULL;
7911   __Pyx_RefNannyDeclarations
7912   PyObject *__pyx_t_1 = NULL;
7913   int __pyx_lineno = 0;
7914   const char *__pyx_filename = NULL;
7915   int __pyx_clineno = 0;
7916   __Pyx_RefNannySetupContext("visit_CompilerDirectivesNode", 0);
7917 
7918   /* "Cython/Compiler/Visitor.py":305
7919  *
7920  *     def visit_CompilerDirectivesNode(self, node):
7921  *         old = self.current_directives             # <<<<<<<<<<<<<<
7922  *         self.current_directives = node.directives
7923  *         self._process_children(node)
7924  */
7925   __pyx_t_1 = __pyx_v_self->current_directives;
7926   __Pyx_INCREF(__pyx_t_1);
7927   __pyx_v_old = __pyx_t_1;
7928   __pyx_t_1 = 0;
7929 
7930   /* "Cython/Compiler/Visitor.py":306
7931  *     def visit_CompilerDirectivesNode(self, node):
7932  *         old = self.current_directives
7933  *         self.current_directives = node.directives             # <<<<<<<<<<<<<<
7934  *         self._process_children(node)
7935  *         self.current_directives = old
7936  */
7937   __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_directives); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 306, __pyx_L1_error)
7938   __Pyx_GOTREF(__pyx_t_1);
7939   __Pyx_GIVEREF(__pyx_t_1);
7940   __Pyx_GOTREF(__pyx_v_self->current_directives);
7941   __Pyx_DECREF(__pyx_v_self->current_directives);
7942   __pyx_v_self->current_directives = __pyx_t_1;
7943   __pyx_t_1 = 0;
7944 
7945   /* "Cython/Compiler/Visitor.py":307
7946  *         old = self.current_directives
7947  *         self.current_directives = node.directives
7948  *         self._process_children(node)             # <<<<<<<<<<<<<<
7949  *         self.current_directives = old
7950  *         return node
7951  */
7952   __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_7Visitor_CythonTransform *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_vtab)->__pyx_base._process_children(((struct __pyx_obj_6Cython_8Compiler_7Visitor_VisitorTransform *)__pyx_v_self), __pyx_v_node, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 307, __pyx_L1_error)
7953   __Pyx_GOTREF(__pyx_t_1);
7954   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
7955 
7956   /* "Cython/Compiler/Visitor.py":308
7957  *         self.current_directives = node.directives
7958  *         self._process_children(node)
7959  *         self.current_directives = old             # <<<<<<<<<<<<<<
7960  *         return node
7961  *
7962  */
7963   __Pyx_INCREF(__pyx_v_old);
7964   __Pyx_GIVEREF(__pyx_v_old);
7965   __Pyx_GOTREF(__pyx_v_self->current_directives);
7966   __Pyx_DECREF(__pyx_v_self->current_directives);
7967   __pyx_v_self->current_directives = __pyx_v_old;
7968 
7969   /* "Cython/Compiler/Visitor.py":309
7970  *         self._process_children(node)
7971  *         self.current_directives = old
7972  *         return node             # <<<<<<<<<<<<<<
7973  *
7974  *     def visit_Node(self, node):
7975  */
7976   __Pyx_XDECREF(__pyx_r);
7977   __Pyx_INCREF(__pyx_v_node);
7978   __pyx_r = __pyx_v_node;
7979   goto __pyx_L0;
7980 
7981   /* "Cython/Compiler/Visitor.py":304
7982  *         return super(CythonTransform, self).__call__(node)
7983  *
7984  *     def visit_CompilerDirectivesNode(self, node):             # <<<<<<<<<<<<<<
7985  *         old = self.current_directives
7986  *         self.current_directives = node.directives
7987  */
7988 
7989   /* function exit code */
7990   __pyx_L1_error:;
7991   __Pyx_XDECREF(__pyx_t_1);
7992   __Pyx_AddTraceback("Cython.Compiler.Visitor.CythonTransform.visit_CompilerDirectivesNode", __pyx_clineno, __pyx_lineno, __pyx_filename);
7993   __pyx_r = NULL;
7994   __pyx_L0:;
7995   __Pyx_XDECREF(__pyx_v_old);
7996   __Pyx_XGIVEREF(__pyx_r);
7997   __Pyx_RefNannyFinishContext();
7998   return __pyx_r;
7999 }
8000 
8001 /* "Cython/Compiler/Visitor.py":311
8002  *         return node
8003  *
8004  *     def visit_Node(self, node):             # <<<<<<<<<<<<<<
8005  *         self._process_children(node)
8006  *         return node
8007  */
8008 
8009 /* Python wrapper */
8010 static PyObject *__pyx_pw_6Cython_8Compiler_7Visitor_15CythonTransform_7visit_Node(PyObject *__pyx_v_self, PyObject *__pyx_v_node); /*proto*/
8011 static PyMethodDef __pyx_mdef_6Cython_8Compiler_7Visitor_15CythonTransform_7visit_Node = {"visit_Node", (PyCFunction)__pyx_pw_6Cython_8Compiler_7Visitor_15CythonTransform_7visit_Node, METH_O, 0};
__pyx_pw_6Cython_8Compiler_7Visitor_15CythonTransform_7visit_Node(PyObject * __pyx_v_self,PyObject * __pyx_v_node)8012 static PyObject *__pyx_pw_6Cython_8Compiler_7Visitor_15CythonTransform_7visit_Node(PyObject *__pyx_v_self, PyObject *__pyx_v_node) {
8013   PyObject *__pyx_r = 0;
8014   __Pyx_RefNannyDeclarations
8015   __Pyx_RefNannySetupContext("visit_Node (wrapper)", 0);
8016   __pyx_r = __pyx_pf_6Cython_8Compiler_7Visitor_15CythonTransform_6visit_Node(((struct __pyx_obj_6Cython_8Compiler_7Visitor_CythonTransform *)__pyx_v_self), ((PyObject *)__pyx_v_node));
8017 
8018   /* function exit code */
8019   __Pyx_RefNannyFinishContext();
8020   return __pyx_r;
8021 }
8022 
__pyx_pf_6Cython_8Compiler_7Visitor_15CythonTransform_6visit_Node(struct __pyx_obj_6Cython_8Compiler_7Visitor_CythonTransform * __pyx_v_self,PyObject * __pyx_v_node)8023 static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_15CythonTransform_6visit_Node(struct __pyx_obj_6Cython_8Compiler_7Visitor_CythonTransform *__pyx_v_self, PyObject *__pyx_v_node) {
8024   PyObject *__pyx_r = NULL;
8025   __Pyx_RefNannyDeclarations
8026   PyObject *__pyx_t_1 = NULL;
8027   int __pyx_lineno = 0;
8028   const char *__pyx_filename = NULL;
8029   int __pyx_clineno = 0;
8030   __Pyx_RefNannySetupContext("visit_Node", 0);
8031 
8032   /* "Cython/Compiler/Visitor.py":312
8033  *
8034  *     def visit_Node(self, node):
8035  *         self._process_children(node)             # <<<<<<<<<<<<<<
8036  *         return node
8037  *
8038  */
8039   __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_7Visitor_CythonTransform *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_vtab)->__pyx_base._process_children(((struct __pyx_obj_6Cython_8Compiler_7Visitor_VisitorTransform *)__pyx_v_self), __pyx_v_node, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 312, __pyx_L1_error)
8040   __Pyx_GOTREF(__pyx_t_1);
8041   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
8042 
8043   /* "Cython/Compiler/Visitor.py":313
8044  *     def visit_Node(self, node):
8045  *         self._process_children(node)
8046  *         return node             # <<<<<<<<<<<<<<
8047  *
8048  *
8049  */
8050   __Pyx_XDECREF(__pyx_r);
8051   __Pyx_INCREF(__pyx_v_node);
8052   __pyx_r = __pyx_v_node;
8053   goto __pyx_L0;
8054 
8055   /* "Cython/Compiler/Visitor.py":311
8056  *         return node
8057  *
8058  *     def visit_Node(self, node):             # <<<<<<<<<<<<<<
8059  *         self._process_children(node)
8060  *         return node
8061  */
8062 
8063   /* function exit code */
8064   __pyx_L1_error:;
8065   __Pyx_XDECREF(__pyx_t_1);
8066   __Pyx_AddTraceback("Cython.Compiler.Visitor.CythonTransform.visit_Node", __pyx_clineno, __pyx_lineno, __pyx_filename);
8067   __pyx_r = NULL;
8068   __pyx_L0:;
8069   __Pyx_XGIVEREF(__pyx_r);
8070   __Pyx_RefNannyFinishContext();
8071   return __pyx_r;
8072 }
8073 
8074 /* "Cython/Compiler/Visitor.pxd":24
8075  *
8076  * cdef class CythonTransform(VisitorTransform):
8077  *     cdef public context             # <<<<<<<<<<<<<<
8078  *     cdef public current_directives
8079  *
8080  */
8081 
8082 /* Python wrapper */
8083 static PyObject *__pyx_pw_6Cython_8Compiler_7Visitor_15CythonTransform_7context_1__get__(PyObject *__pyx_v_self); /*proto*/
__pyx_pw_6Cython_8Compiler_7Visitor_15CythonTransform_7context_1__get__(PyObject * __pyx_v_self)8084 static PyObject *__pyx_pw_6Cython_8Compiler_7Visitor_15CythonTransform_7context_1__get__(PyObject *__pyx_v_self) {
8085   PyObject *__pyx_r = 0;
8086   __Pyx_RefNannyDeclarations
8087   __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
8088   __pyx_r = __pyx_pf_6Cython_8Compiler_7Visitor_15CythonTransform_7context___get__(((struct __pyx_obj_6Cython_8Compiler_7Visitor_CythonTransform *)__pyx_v_self));
8089 
8090   /* function exit code */
8091   __Pyx_RefNannyFinishContext();
8092   return __pyx_r;
8093 }
8094 
__pyx_pf_6Cython_8Compiler_7Visitor_15CythonTransform_7context___get__(struct __pyx_obj_6Cython_8Compiler_7Visitor_CythonTransform * __pyx_v_self)8095 static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_15CythonTransform_7context___get__(struct __pyx_obj_6Cython_8Compiler_7Visitor_CythonTransform *__pyx_v_self) {
8096   PyObject *__pyx_r = NULL;
8097   __Pyx_RefNannyDeclarations
8098   __Pyx_RefNannySetupContext("__get__", 0);
8099   __Pyx_XDECREF(__pyx_r);
8100   __Pyx_INCREF(__pyx_v_self->context);
8101   __pyx_r = __pyx_v_self->context;
8102   goto __pyx_L0;
8103 
8104   /* function exit code */
8105   __pyx_L0:;
8106   __Pyx_XGIVEREF(__pyx_r);
8107   __Pyx_RefNannyFinishContext();
8108   return __pyx_r;
8109 }
8110 
8111 /* Python wrapper */
8112 static int __pyx_pw_6Cython_8Compiler_7Visitor_15CythonTransform_7context_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
__pyx_pw_6Cython_8Compiler_7Visitor_15CythonTransform_7context_3__set__(PyObject * __pyx_v_self,PyObject * __pyx_v_value)8113 static int __pyx_pw_6Cython_8Compiler_7Visitor_15CythonTransform_7context_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
8114   int __pyx_r;
8115   __Pyx_RefNannyDeclarations
8116   __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
8117   __pyx_r = __pyx_pf_6Cython_8Compiler_7Visitor_15CythonTransform_7context_2__set__(((struct __pyx_obj_6Cython_8Compiler_7Visitor_CythonTransform *)__pyx_v_self), ((PyObject *)__pyx_v_value));
8118 
8119   /* function exit code */
8120   __Pyx_RefNannyFinishContext();
8121   return __pyx_r;
8122 }
8123 
__pyx_pf_6Cython_8Compiler_7Visitor_15CythonTransform_7context_2__set__(struct __pyx_obj_6Cython_8Compiler_7Visitor_CythonTransform * __pyx_v_self,PyObject * __pyx_v_value)8124 static int __pyx_pf_6Cython_8Compiler_7Visitor_15CythonTransform_7context_2__set__(struct __pyx_obj_6Cython_8Compiler_7Visitor_CythonTransform *__pyx_v_self, PyObject *__pyx_v_value) {
8125   int __pyx_r;
8126   __Pyx_RefNannyDeclarations
8127   __Pyx_RefNannySetupContext("__set__", 0);
8128   __Pyx_INCREF(__pyx_v_value);
8129   __Pyx_GIVEREF(__pyx_v_value);
8130   __Pyx_GOTREF(__pyx_v_self->context);
8131   __Pyx_DECREF(__pyx_v_self->context);
8132   __pyx_v_self->context = __pyx_v_value;
8133 
8134   /* function exit code */
8135   __pyx_r = 0;
8136   __Pyx_RefNannyFinishContext();
8137   return __pyx_r;
8138 }
8139 
8140 /* Python wrapper */
8141 static int __pyx_pw_6Cython_8Compiler_7Visitor_15CythonTransform_7context_5__del__(PyObject *__pyx_v_self); /*proto*/
__pyx_pw_6Cython_8Compiler_7Visitor_15CythonTransform_7context_5__del__(PyObject * __pyx_v_self)8142 static int __pyx_pw_6Cython_8Compiler_7Visitor_15CythonTransform_7context_5__del__(PyObject *__pyx_v_self) {
8143   int __pyx_r;
8144   __Pyx_RefNannyDeclarations
8145   __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
8146   __pyx_r = __pyx_pf_6Cython_8Compiler_7Visitor_15CythonTransform_7context_4__del__(((struct __pyx_obj_6Cython_8Compiler_7Visitor_CythonTransform *)__pyx_v_self));
8147 
8148   /* function exit code */
8149   __Pyx_RefNannyFinishContext();
8150   return __pyx_r;
8151 }
8152 
__pyx_pf_6Cython_8Compiler_7Visitor_15CythonTransform_7context_4__del__(struct __pyx_obj_6Cython_8Compiler_7Visitor_CythonTransform * __pyx_v_self)8153 static int __pyx_pf_6Cython_8Compiler_7Visitor_15CythonTransform_7context_4__del__(struct __pyx_obj_6Cython_8Compiler_7Visitor_CythonTransform *__pyx_v_self) {
8154   int __pyx_r;
8155   __Pyx_RefNannyDeclarations
8156   __Pyx_RefNannySetupContext("__del__", 0);
8157   __Pyx_INCREF(Py_None);
8158   __Pyx_GIVEREF(Py_None);
8159   __Pyx_GOTREF(__pyx_v_self->context);
8160   __Pyx_DECREF(__pyx_v_self->context);
8161   __pyx_v_self->context = Py_None;
8162 
8163   /* function exit code */
8164   __pyx_r = 0;
8165   __Pyx_RefNannyFinishContext();
8166   return __pyx_r;
8167 }
8168 
8169 /* "Cython/Compiler/Visitor.pxd":25
8170  * cdef class CythonTransform(VisitorTransform):
8171  *     cdef public context
8172  *     cdef public current_directives             # <<<<<<<<<<<<<<
8173  *
8174  * cdef class ScopeTrackingTransform(CythonTransform):
8175  */
8176 
8177 /* Python wrapper */
8178 static PyObject *__pyx_pw_6Cython_8Compiler_7Visitor_15CythonTransform_18current_directives_1__get__(PyObject *__pyx_v_self); /*proto*/
__pyx_pw_6Cython_8Compiler_7Visitor_15CythonTransform_18current_directives_1__get__(PyObject * __pyx_v_self)8179 static PyObject *__pyx_pw_6Cython_8Compiler_7Visitor_15CythonTransform_18current_directives_1__get__(PyObject *__pyx_v_self) {
8180   PyObject *__pyx_r = 0;
8181   __Pyx_RefNannyDeclarations
8182   __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
8183   __pyx_r = __pyx_pf_6Cython_8Compiler_7Visitor_15CythonTransform_18current_directives___get__(((struct __pyx_obj_6Cython_8Compiler_7Visitor_CythonTransform *)__pyx_v_self));
8184 
8185   /* function exit code */
8186   __Pyx_RefNannyFinishContext();
8187   return __pyx_r;
8188 }
8189 
__pyx_pf_6Cython_8Compiler_7Visitor_15CythonTransform_18current_directives___get__(struct __pyx_obj_6Cython_8Compiler_7Visitor_CythonTransform * __pyx_v_self)8190 static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_15CythonTransform_18current_directives___get__(struct __pyx_obj_6Cython_8Compiler_7Visitor_CythonTransform *__pyx_v_self) {
8191   PyObject *__pyx_r = NULL;
8192   __Pyx_RefNannyDeclarations
8193   __Pyx_RefNannySetupContext("__get__", 0);
8194   __Pyx_XDECREF(__pyx_r);
8195   __Pyx_INCREF(__pyx_v_self->current_directives);
8196   __pyx_r = __pyx_v_self->current_directives;
8197   goto __pyx_L0;
8198 
8199   /* function exit code */
8200   __pyx_L0:;
8201   __Pyx_XGIVEREF(__pyx_r);
8202   __Pyx_RefNannyFinishContext();
8203   return __pyx_r;
8204 }
8205 
8206 /* Python wrapper */
8207 static int __pyx_pw_6Cython_8Compiler_7Visitor_15CythonTransform_18current_directives_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
__pyx_pw_6Cython_8Compiler_7Visitor_15CythonTransform_18current_directives_3__set__(PyObject * __pyx_v_self,PyObject * __pyx_v_value)8208 static int __pyx_pw_6Cython_8Compiler_7Visitor_15CythonTransform_18current_directives_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
8209   int __pyx_r;
8210   __Pyx_RefNannyDeclarations
8211   __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
8212   __pyx_r = __pyx_pf_6Cython_8Compiler_7Visitor_15CythonTransform_18current_directives_2__set__(((struct __pyx_obj_6Cython_8Compiler_7Visitor_CythonTransform *)__pyx_v_self), ((PyObject *)__pyx_v_value));
8213 
8214   /* function exit code */
8215   __Pyx_RefNannyFinishContext();
8216   return __pyx_r;
8217 }
8218 
__pyx_pf_6Cython_8Compiler_7Visitor_15CythonTransform_18current_directives_2__set__(struct __pyx_obj_6Cython_8Compiler_7Visitor_CythonTransform * __pyx_v_self,PyObject * __pyx_v_value)8219 static int __pyx_pf_6Cython_8Compiler_7Visitor_15CythonTransform_18current_directives_2__set__(struct __pyx_obj_6Cython_8Compiler_7Visitor_CythonTransform *__pyx_v_self, PyObject *__pyx_v_value) {
8220   int __pyx_r;
8221   __Pyx_RefNannyDeclarations
8222   __Pyx_RefNannySetupContext("__set__", 0);
8223   __Pyx_INCREF(__pyx_v_value);
8224   __Pyx_GIVEREF(__pyx_v_value);
8225   __Pyx_GOTREF(__pyx_v_self->current_directives);
8226   __Pyx_DECREF(__pyx_v_self->current_directives);
8227   __pyx_v_self->current_directives = __pyx_v_value;
8228 
8229   /* function exit code */
8230   __pyx_r = 0;
8231   __Pyx_RefNannyFinishContext();
8232   return __pyx_r;
8233 }
8234 
8235 /* Python wrapper */
8236 static int __pyx_pw_6Cython_8Compiler_7Visitor_15CythonTransform_18current_directives_5__del__(PyObject *__pyx_v_self); /*proto*/
__pyx_pw_6Cython_8Compiler_7Visitor_15CythonTransform_18current_directives_5__del__(PyObject * __pyx_v_self)8237 static int __pyx_pw_6Cython_8Compiler_7Visitor_15CythonTransform_18current_directives_5__del__(PyObject *__pyx_v_self) {
8238   int __pyx_r;
8239   __Pyx_RefNannyDeclarations
8240   __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
8241   __pyx_r = __pyx_pf_6Cython_8Compiler_7Visitor_15CythonTransform_18current_directives_4__del__(((struct __pyx_obj_6Cython_8Compiler_7Visitor_CythonTransform *)__pyx_v_self));
8242 
8243   /* function exit code */
8244   __Pyx_RefNannyFinishContext();
8245   return __pyx_r;
8246 }
8247 
__pyx_pf_6Cython_8Compiler_7Visitor_15CythonTransform_18current_directives_4__del__(struct __pyx_obj_6Cython_8Compiler_7Visitor_CythonTransform * __pyx_v_self)8248 static int __pyx_pf_6Cython_8Compiler_7Visitor_15CythonTransform_18current_directives_4__del__(struct __pyx_obj_6Cython_8Compiler_7Visitor_CythonTransform *__pyx_v_self) {
8249   int __pyx_r;
8250   __Pyx_RefNannyDeclarations
8251   __Pyx_RefNannySetupContext("__del__", 0);
8252   __Pyx_INCREF(Py_None);
8253   __Pyx_GIVEREF(Py_None);
8254   __Pyx_GOTREF(__pyx_v_self->current_directives);
8255   __Pyx_DECREF(__pyx_v_self->current_directives);
8256   __pyx_v_self->current_directives = Py_None;
8257 
8258   /* function exit code */
8259   __pyx_r = 0;
8260   __Pyx_RefNannyFinishContext();
8261   return __pyx_r;
8262 }
8263 
8264 /* "Cython/Compiler/Visitor.py":321
8265  *     #scope_node: the node that owns the current scope
8266  *
8267  *     def visit_ModuleNode(self, node):             # <<<<<<<<<<<<<<
8268  *         self.scope_type = 'module'
8269  *         self.scope_node = node
8270  */
8271 
8272 /* Python wrapper */
8273 static PyObject *__pyx_pw_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_1visit_ModuleNode(PyObject *__pyx_v_self, PyObject *__pyx_v_node); /*proto*/
8274 static PyMethodDef __pyx_mdef_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_1visit_ModuleNode = {"visit_ModuleNode", (PyCFunction)__pyx_pw_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_1visit_ModuleNode, METH_O, 0};
__pyx_pw_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_1visit_ModuleNode(PyObject * __pyx_v_self,PyObject * __pyx_v_node)8275 static PyObject *__pyx_pw_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_1visit_ModuleNode(PyObject *__pyx_v_self, PyObject *__pyx_v_node) {
8276   PyObject *__pyx_r = 0;
8277   __Pyx_RefNannyDeclarations
8278   __Pyx_RefNannySetupContext("visit_ModuleNode (wrapper)", 0);
8279   __pyx_r = __pyx_pf_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_visit_ModuleNode(((struct __pyx_obj_6Cython_8Compiler_7Visitor_ScopeTrackingTransform *)__pyx_v_self), ((PyObject *)__pyx_v_node));
8280 
8281   /* function exit code */
8282   __Pyx_RefNannyFinishContext();
8283   return __pyx_r;
8284 }
8285 
__pyx_pf_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_visit_ModuleNode(struct __pyx_obj_6Cython_8Compiler_7Visitor_ScopeTrackingTransform * __pyx_v_self,PyObject * __pyx_v_node)8286 static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_visit_ModuleNode(struct __pyx_obj_6Cython_8Compiler_7Visitor_ScopeTrackingTransform *__pyx_v_self, PyObject *__pyx_v_node) {
8287   PyObject *__pyx_r = NULL;
8288   __Pyx_RefNannyDeclarations
8289   PyObject *__pyx_t_1 = NULL;
8290   int __pyx_lineno = 0;
8291   const char *__pyx_filename = NULL;
8292   int __pyx_clineno = 0;
8293   __Pyx_RefNannySetupContext("visit_ModuleNode", 0);
8294 
8295   /* "Cython/Compiler/Visitor.py":322
8296  *
8297  *     def visit_ModuleNode(self, node):
8298  *         self.scope_type = 'module'             # <<<<<<<<<<<<<<
8299  *         self.scope_node = node
8300  *         self._process_children(node)
8301  */
8302   __Pyx_INCREF(__pyx_n_u_module);
8303   __Pyx_GIVEREF(__pyx_n_u_module);
8304   __Pyx_GOTREF(__pyx_v_self->scope_type);
8305   __Pyx_DECREF(__pyx_v_self->scope_type);
8306   __pyx_v_self->scope_type = __pyx_n_u_module;
8307 
8308   /* "Cython/Compiler/Visitor.py":323
8309  *     def visit_ModuleNode(self, node):
8310  *         self.scope_type = 'module'
8311  *         self.scope_node = node             # <<<<<<<<<<<<<<
8312  *         self._process_children(node)
8313  *         return node
8314  */
8315   __Pyx_INCREF(__pyx_v_node);
8316   __Pyx_GIVEREF(__pyx_v_node);
8317   __Pyx_GOTREF(__pyx_v_self->scope_node);
8318   __Pyx_DECREF(__pyx_v_self->scope_node);
8319   __pyx_v_self->scope_node = __pyx_v_node;
8320 
8321   /* "Cython/Compiler/Visitor.py":324
8322  *         self.scope_type = 'module'
8323  *         self.scope_node = node
8324  *         self._process_children(node)             # <<<<<<<<<<<<<<
8325  *         return node
8326  *
8327  */
8328   __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_7Visitor_ScopeTrackingTransform *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.__pyx_vtab)->__pyx_base.__pyx_base._process_children(((struct __pyx_obj_6Cython_8Compiler_7Visitor_VisitorTransform *)__pyx_v_self), __pyx_v_node, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 324, __pyx_L1_error)
8329   __Pyx_GOTREF(__pyx_t_1);
8330   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
8331 
8332   /* "Cython/Compiler/Visitor.py":325
8333  *         self.scope_node = node
8334  *         self._process_children(node)
8335  *         return node             # <<<<<<<<<<<<<<
8336  *
8337  *     def visit_scope(self, node, scope_type):
8338  */
8339   __Pyx_XDECREF(__pyx_r);
8340   __Pyx_INCREF(__pyx_v_node);
8341   __pyx_r = __pyx_v_node;
8342   goto __pyx_L0;
8343 
8344   /* "Cython/Compiler/Visitor.py":321
8345  *     #scope_node: the node that owns the current scope
8346  *
8347  *     def visit_ModuleNode(self, node):             # <<<<<<<<<<<<<<
8348  *         self.scope_type = 'module'
8349  *         self.scope_node = node
8350  */
8351 
8352   /* function exit code */
8353   __pyx_L1_error:;
8354   __Pyx_XDECREF(__pyx_t_1);
8355   __Pyx_AddTraceback("Cython.Compiler.Visitor.ScopeTrackingTransform.visit_ModuleNode", __pyx_clineno, __pyx_lineno, __pyx_filename);
8356   __pyx_r = NULL;
8357   __pyx_L0:;
8358   __Pyx_XGIVEREF(__pyx_r);
8359   __Pyx_RefNannyFinishContext();
8360   return __pyx_r;
8361 }
8362 
8363 /* "Cython/Compiler/Visitor.py":327
8364  *         return node
8365  *
8366  *     def visit_scope(self, node, scope_type):             # <<<<<<<<<<<<<<
8367  *         prev = self.scope_type, self.scope_node
8368  *         self.scope_type = scope_type
8369  */
8370 
__pyx_f_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_visit_scope(struct __pyx_obj_6Cython_8Compiler_7Visitor_ScopeTrackingTransform * __pyx_v_self,PyObject * __pyx_v_node,PyObject * __pyx_v_scope_type)8371 static PyObject *__pyx_f_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_visit_scope(struct __pyx_obj_6Cython_8Compiler_7Visitor_ScopeTrackingTransform *__pyx_v_self, PyObject *__pyx_v_node, PyObject *__pyx_v_scope_type) {
8372   PyObject *__pyx_v_prev = NULL;
8373   PyObject *__pyx_r = NULL;
8374   __Pyx_RefNannyDeclarations
8375   PyObject *__pyx_t_1 = NULL;
8376   PyObject *__pyx_t_2 = NULL;
8377   int __pyx_lineno = 0;
8378   const char *__pyx_filename = NULL;
8379   int __pyx_clineno = 0;
8380   __Pyx_RefNannySetupContext("visit_scope", 0);
8381 
8382   /* "Cython/Compiler/Visitor.py":328
8383  *
8384  *     def visit_scope(self, node, scope_type):
8385  *         prev = self.scope_type, self.scope_node             # <<<<<<<<<<<<<<
8386  *         self.scope_type = scope_type
8387  *         self.scope_node = node
8388  */
8389   __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 328, __pyx_L1_error)
8390   __Pyx_GOTREF(__pyx_t_1);
8391   __Pyx_INCREF(__pyx_v_self->scope_type);
8392   __Pyx_GIVEREF(__pyx_v_self->scope_type);
8393   PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_self->scope_type);
8394   __Pyx_INCREF(__pyx_v_self->scope_node);
8395   __Pyx_GIVEREF(__pyx_v_self->scope_node);
8396   PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_self->scope_node);
8397   __pyx_v_prev = ((PyObject*)__pyx_t_1);
8398   __pyx_t_1 = 0;
8399 
8400   /* "Cython/Compiler/Visitor.py":329
8401  *     def visit_scope(self, node, scope_type):
8402  *         prev = self.scope_type, self.scope_node
8403  *         self.scope_type = scope_type             # <<<<<<<<<<<<<<
8404  *         self.scope_node = node
8405  *         self._process_children(node)
8406  */
8407   __Pyx_INCREF(__pyx_v_scope_type);
8408   __Pyx_GIVEREF(__pyx_v_scope_type);
8409   __Pyx_GOTREF(__pyx_v_self->scope_type);
8410   __Pyx_DECREF(__pyx_v_self->scope_type);
8411   __pyx_v_self->scope_type = __pyx_v_scope_type;
8412 
8413   /* "Cython/Compiler/Visitor.py":330
8414  *         prev = self.scope_type, self.scope_node
8415  *         self.scope_type = scope_type
8416  *         self.scope_node = node             # <<<<<<<<<<<<<<
8417  *         self._process_children(node)
8418  *         self.scope_type, self.scope_node = prev
8419  */
8420   __Pyx_INCREF(__pyx_v_node);
8421   __Pyx_GIVEREF(__pyx_v_node);
8422   __Pyx_GOTREF(__pyx_v_self->scope_node);
8423   __Pyx_DECREF(__pyx_v_self->scope_node);
8424   __pyx_v_self->scope_node = __pyx_v_node;
8425 
8426   /* "Cython/Compiler/Visitor.py":331
8427  *         self.scope_type = scope_type
8428  *         self.scope_node = node
8429  *         self._process_children(node)             # <<<<<<<<<<<<<<
8430  *         self.scope_type, self.scope_node = prev
8431  *         return node
8432  */
8433   __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_7Visitor_ScopeTrackingTransform *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.__pyx_vtab)->__pyx_base.__pyx_base._process_children(((struct __pyx_obj_6Cython_8Compiler_7Visitor_VisitorTransform *)__pyx_v_self), __pyx_v_node, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 331, __pyx_L1_error)
8434   __Pyx_GOTREF(__pyx_t_1);
8435   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
8436 
8437   /* "Cython/Compiler/Visitor.py":332
8438  *         self.scope_node = node
8439  *         self._process_children(node)
8440  *         self.scope_type, self.scope_node = prev             # <<<<<<<<<<<<<<
8441  *         return node
8442  *
8443  */
8444   if (1) {
8445     PyObject* sequence = __pyx_v_prev;
8446     Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
8447     if (unlikely(size != 2)) {
8448       if (size > 2) __Pyx_RaiseTooManyValuesError(2);
8449       else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
8450       __PYX_ERR(0, 332, __pyx_L1_error)
8451     }
8452     #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
8453     __pyx_t_1 = PyTuple_GET_ITEM(sequence, 0);
8454     __pyx_t_2 = PyTuple_GET_ITEM(sequence, 1);
8455     __Pyx_INCREF(__pyx_t_1);
8456     __Pyx_INCREF(__pyx_t_2);
8457     #else
8458     __pyx_t_1 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 332, __pyx_L1_error)
8459     __Pyx_GOTREF(__pyx_t_1);
8460     __pyx_t_2 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 332, __pyx_L1_error)
8461     __Pyx_GOTREF(__pyx_t_2);
8462     #endif
8463   }
8464   __Pyx_GIVEREF(__pyx_t_1);
8465   __Pyx_GOTREF(__pyx_v_self->scope_type);
8466   __Pyx_DECREF(__pyx_v_self->scope_type);
8467   __pyx_v_self->scope_type = __pyx_t_1;
8468   __pyx_t_1 = 0;
8469   __Pyx_GIVEREF(__pyx_t_2);
8470   __Pyx_GOTREF(__pyx_v_self->scope_node);
8471   __Pyx_DECREF(__pyx_v_self->scope_node);
8472   __pyx_v_self->scope_node = __pyx_t_2;
8473   __pyx_t_2 = 0;
8474 
8475   /* "Cython/Compiler/Visitor.py":333
8476  *         self._process_children(node)
8477  *         self.scope_type, self.scope_node = prev
8478  *         return node             # <<<<<<<<<<<<<<
8479  *
8480  *     def visit_CClassDefNode(self, node):
8481  */
8482   __Pyx_XDECREF(__pyx_r);
8483   __Pyx_INCREF(__pyx_v_node);
8484   __pyx_r = __pyx_v_node;
8485   goto __pyx_L0;
8486 
8487   /* "Cython/Compiler/Visitor.py":327
8488  *         return node
8489  *
8490  *     def visit_scope(self, node, scope_type):             # <<<<<<<<<<<<<<
8491  *         prev = self.scope_type, self.scope_node
8492  *         self.scope_type = scope_type
8493  */
8494 
8495   /* function exit code */
8496   __pyx_L1_error:;
8497   __Pyx_XDECREF(__pyx_t_1);
8498   __Pyx_XDECREF(__pyx_t_2);
8499   __Pyx_AddTraceback("Cython.Compiler.Visitor.ScopeTrackingTransform.visit_scope", __pyx_clineno, __pyx_lineno, __pyx_filename);
8500   __pyx_r = 0;
8501   __pyx_L0:;
8502   __Pyx_XDECREF(__pyx_v_prev);
8503   __Pyx_XGIVEREF(__pyx_r);
8504   __Pyx_RefNannyFinishContext();
8505   return __pyx_r;
8506 }
8507 
8508 /* "Cython/Compiler/Visitor.py":335
8509  *         return node
8510  *
8511  *     def visit_CClassDefNode(self, node):             # <<<<<<<<<<<<<<
8512  *         return self.visit_scope(node, 'cclass')
8513  *
8514  */
8515 
8516 /* Python wrapper */
8517 static PyObject *__pyx_pw_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_3visit_CClassDefNode(PyObject *__pyx_v_self, PyObject *__pyx_v_node); /*proto*/
8518 static PyMethodDef __pyx_mdef_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_3visit_CClassDefNode = {"visit_CClassDefNode", (PyCFunction)__pyx_pw_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_3visit_CClassDefNode, METH_O, 0};
__pyx_pw_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_3visit_CClassDefNode(PyObject * __pyx_v_self,PyObject * __pyx_v_node)8519 static PyObject *__pyx_pw_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_3visit_CClassDefNode(PyObject *__pyx_v_self, PyObject *__pyx_v_node) {
8520   PyObject *__pyx_r = 0;
8521   __Pyx_RefNannyDeclarations
8522   __Pyx_RefNannySetupContext("visit_CClassDefNode (wrapper)", 0);
8523   __pyx_r = __pyx_pf_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_2visit_CClassDefNode(((struct __pyx_obj_6Cython_8Compiler_7Visitor_ScopeTrackingTransform *)__pyx_v_self), ((PyObject *)__pyx_v_node));
8524 
8525   /* function exit code */
8526   __Pyx_RefNannyFinishContext();
8527   return __pyx_r;
8528 }
8529 
__pyx_pf_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_2visit_CClassDefNode(struct __pyx_obj_6Cython_8Compiler_7Visitor_ScopeTrackingTransform * __pyx_v_self,PyObject * __pyx_v_node)8530 static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_2visit_CClassDefNode(struct __pyx_obj_6Cython_8Compiler_7Visitor_ScopeTrackingTransform *__pyx_v_self, PyObject *__pyx_v_node) {
8531   PyObject *__pyx_r = NULL;
8532   __Pyx_RefNannyDeclarations
8533   PyObject *__pyx_t_1 = NULL;
8534   int __pyx_lineno = 0;
8535   const char *__pyx_filename = NULL;
8536   int __pyx_clineno = 0;
8537   __Pyx_RefNannySetupContext("visit_CClassDefNode", 0);
8538 
8539   /* "Cython/Compiler/Visitor.py":336
8540  *
8541  *     def visit_CClassDefNode(self, node):
8542  *         return self.visit_scope(node, 'cclass')             # <<<<<<<<<<<<<<
8543  *
8544  *     def visit_PyClassDefNode(self, node):
8545  */
8546   __Pyx_XDECREF(__pyx_r);
8547   __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_7Visitor_ScopeTrackingTransform *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.__pyx_vtab)->visit_scope(__pyx_v_self, __pyx_v_node, __pyx_n_u_cclass); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 336, __pyx_L1_error)
8548   __Pyx_GOTREF(__pyx_t_1);
8549   __pyx_r = __pyx_t_1;
8550   __pyx_t_1 = 0;
8551   goto __pyx_L0;
8552 
8553   /* "Cython/Compiler/Visitor.py":335
8554  *         return node
8555  *
8556  *     def visit_CClassDefNode(self, node):             # <<<<<<<<<<<<<<
8557  *         return self.visit_scope(node, 'cclass')
8558  *
8559  */
8560 
8561   /* function exit code */
8562   __pyx_L1_error:;
8563   __Pyx_XDECREF(__pyx_t_1);
8564   __Pyx_AddTraceback("Cython.Compiler.Visitor.ScopeTrackingTransform.visit_CClassDefNode", __pyx_clineno, __pyx_lineno, __pyx_filename);
8565   __pyx_r = NULL;
8566   __pyx_L0:;
8567   __Pyx_XGIVEREF(__pyx_r);
8568   __Pyx_RefNannyFinishContext();
8569   return __pyx_r;
8570 }
8571 
8572 /* "Cython/Compiler/Visitor.py":338
8573  *         return self.visit_scope(node, 'cclass')
8574  *
8575  *     def visit_PyClassDefNode(self, node):             # <<<<<<<<<<<<<<
8576  *         return self.visit_scope(node, 'pyclass')
8577  *
8578  */
8579 
8580 /* Python wrapper */
8581 static PyObject *__pyx_pw_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_5visit_PyClassDefNode(PyObject *__pyx_v_self, PyObject *__pyx_v_node); /*proto*/
8582 static PyMethodDef __pyx_mdef_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_5visit_PyClassDefNode = {"visit_PyClassDefNode", (PyCFunction)__pyx_pw_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_5visit_PyClassDefNode, METH_O, 0};
__pyx_pw_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_5visit_PyClassDefNode(PyObject * __pyx_v_self,PyObject * __pyx_v_node)8583 static PyObject *__pyx_pw_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_5visit_PyClassDefNode(PyObject *__pyx_v_self, PyObject *__pyx_v_node) {
8584   PyObject *__pyx_r = 0;
8585   __Pyx_RefNannyDeclarations
8586   __Pyx_RefNannySetupContext("visit_PyClassDefNode (wrapper)", 0);
8587   __pyx_r = __pyx_pf_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_4visit_PyClassDefNode(((struct __pyx_obj_6Cython_8Compiler_7Visitor_ScopeTrackingTransform *)__pyx_v_self), ((PyObject *)__pyx_v_node));
8588 
8589   /* function exit code */
8590   __Pyx_RefNannyFinishContext();
8591   return __pyx_r;
8592 }
8593 
__pyx_pf_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_4visit_PyClassDefNode(struct __pyx_obj_6Cython_8Compiler_7Visitor_ScopeTrackingTransform * __pyx_v_self,PyObject * __pyx_v_node)8594 static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_4visit_PyClassDefNode(struct __pyx_obj_6Cython_8Compiler_7Visitor_ScopeTrackingTransform *__pyx_v_self, PyObject *__pyx_v_node) {
8595   PyObject *__pyx_r = NULL;
8596   __Pyx_RefNannyDeclarations
8597   PyObject *__pyx_t_1 = NULL;
8598   int __pyx_lineno = 0;
8599   const char *__pyx_filename = NULL;
8600   int __pyx_clineno = 0;
8601   __Pyx_RefNannySetupContext("visit_PyClassDefNode", 0);
8602 
8603   /* "Cython/Compiler/Visitor.py":339
8604  *
8605  *     def visit_PyClassDefNode(self, node):
8606  *         return self.visit_scope(node, 'pyclass')             # <<<<<<<<<<<<<<
8607  *
8608  *     def visit_FuncDefNode(self, node):
8609  */
8610   __Pyx_XDECREF(__pyx_r);
8611   __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_7Visitor_ScopeTrackingTransform *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.__pyx_vtab)->visit_scope(__pyx_v_self, __pyx_v_node, __pyx_n_u_pyclass); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 339, __pyx_L1_error)
8612   __Pyx_GOTREF(__pyx_t_1);
8613   __pyx_r = __pyx_t_1;
8614   __pyx_t_1 = 0;
8615   goto __pyx_L0;
8616 
8617   /* "Cython/Compiler/Visitor.py":338
8618  *         return self.visit_scope(node, 'cclass')
8619  *
8620  *     def visit_PyClassDefNode(self, node):             # <<<<<<<<<<<<<<
8621  *         return self.visit_scope(node, 'pyclass')
8622  *
8623  */
8624 
8625   /* function exit code */
8626   __pyx_L1_error:;
8627   __Pyx_XDECREF(__pyx_t_1);
8628   __Pyx_AddTraceback("Cython.Compiler.Visitor.ScopeTrackingTransform.visit_PyClassDefNode", __pyx_clineno, __pyx_lineno, __pyx_filename);
8629   __pyx_r = NULL;
8630   __pyx_L0:;
8631   __Pyx_XGIVEREF(__pyx_r);
8632   __Pyx_RefNannyFinishContext();
8633   return __pyx_r;
8634 }
8635 
8636 /* "Cython/Compiler/Visitor.py":341
8637  *         return self.visit_scope(node, 'pyclass')
8638  *
8639  *     def visit_FuncDefNode(self, node):             # <<<<<<<<<<<<<<
8640  *         return self.visit_scope(node, 'function')
8641  *
8642  */
8643 
8644 /* Python wrapper */
8645 static PyObject *__pyx_pw_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_7visit_FuncDefNode(PyObject *__pyx_v_self, PyObject *__pyx_v_node); /*proto*/
8646 static PyMethodDef __pyx_mdef_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_7visit_FuncDefNode = {"visit_FuncDefNode", (PyCFunction)__pyx_pw_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_7visit_FuncDefNode, METH_O, 0};
__pyx_pw_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_7visit_FuncDefNode(PyObject * __pyx_v_self,PyObject * __pyx_v_node)8647 static PyObject *__pyx_pw_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_7visit_FuncDefNode(PyObject *__pyx_v_self, PyObject *__pyx_v_node) {
8648   PyObject *__pyx_r = 0;
8649   __Pyx_RefNannyDeclarations
8650   __Pyx_RefNannySetupContext("visit_FuncDefNode (wrapper)", 0);
8651   __pyx_r = __pyx_pf_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_6visit_FuncDefNode(((struct __pyx_obj_6Cython_8Compiler_7Visitor_ScopeTrackingTransform *)__pyx_v_self), ((PyObject *)__pyx_v_node));
8652 
8653   /* function exit code */
8654   __Pyx_RefNannyFinishContext();
8655   return __pyx_r;
8656 }
8657 
__pyx_pf_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_6visit_FuncDefNode(struct __pyx_obj_6Cython_8Compiler_7Visitor_ScopeTrackingTransform * __pyx_v_self,PyObject * __pyx_v_node)8658 static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_6visit_FuncDefNode(struct __pyx_obj_6Cython_8Compiler_7Visitor_ScopeTrackingTransform *__pyx_v_self, PyObject *__pyx_v_node) {
8659   PyObject *__pyx_r = NULL;
8660   __Pyx_RefNannyDeclarations
8661   PyObject *__pyx_t_1 = NULL;
8662   int __pyx_lineno = 0;
8663   const char *__pyx_filename = NULL;
8664   int __pyx_clineno = 0;
8665   __Pyx_RefNannySetupContext("visit_FuncDefNode", 0);
8666 
8667   /* "Cython/Compiler/Visitor.py":342
8668  *
8669  *     def visit_FuncDefNode(self, node):
8670  *         return self.visit_scope(node, 'function')             # <<<<<<<<<<<<<<
8671  *
8672  *     def visit_CStructOrUnionDefNode(self, node):
8673  */
8674   __Pyx_XDECREF(__pyx_r);
8675   __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_7Visitor_ScopeTrackingTransform *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.__pyx_vtab)->visit_scope(__pyx_v_self, __pyx_v_node, __pyx_n_u_function); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 342, __pyx_L1_error)
8676   __Pyx_GOTREF(__pyx_t_1);
8677   __pyx_r = __pyx_t_1;
8678   __pyx_t_1 = 0;
8679   goto __pyx_L0;
8680 
8681   /* "Cython/Compiler/Visitor.py":341
8682  *         return self.visit_scope(node, 'pyclass')
8683  *
8684  *     def visit_FuncDefNode(self, node):             # <<<<<<<<<<<<<<
8685  *         return self.visit_scope(node, 'function')
8686  *
8687  */
8688 
8689   /* function exit code */
8690   __pyx_L1_error:;
8691   __Pyx_XDECREF(__pyx_t_1);
8692   __Pyx_AddTraceback("Cython.Compiler.Visitor.ScopeTrackingTransform.visit_FuncDefNode", __pyx_clineno, __pyx_lineno, __pyx_filename);
8693   __pyx_r = NULL;
8694   __pyx_L0:;
8695   __Pyx_XGIVEREF(__pyx_r);
8696   __Pyx_RefNannyFinishContext();
8697   return __pyx_r;
8698 }
8699 
8700 /* "Cython/Compiler/Visitor.py":344
8701  *         return self.visit_scope(node, 'function')
8702  *
8703  *     def visit_CStructOrUnionDefNode(self, node):             # <<<<<<<<<<<<<<
8704  *         return self.visit_scope(node, 'struct')
8705  *
8706  */
8707 
8708 /* Python wrapper */
8709 static PyObject *__pyx_pw_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_9visit_CStructOrUnionDefNode(PyObject *__pyx_v_self, PyObject *__pyx_v_node); /*proto*/
8710 static PyMethodDef __pyx_mdef_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_9visit_CStructOrUnionDefNode = {"visit_CStructOrUnionDefNode", (PyCFunction)__pyx_pw_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_9visit_CStructOrUnionDefNode, METH_O, 0};
__pyx_pw_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_9visit_CStructOrUnionDefNode(PyObject * __pyx_v_self,PyObject * __pyx_v_node)8711 static PyObject *__pyx_pw_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_9visit_CStructOrUnionDefNode(PyObject *__pyx_v_self, PyObject *__pyx_v_node) {
8712   PyObject *__pyx_r = 0;
8713   __Pyx_RefNannyDeclarations
8714   __Pyx_RefNannySetupContext("visit_CStructOrUnionDefNode (wrapper)", 0);
8715   __pyx_r = __pyx_pf_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_8visit_CStructOrUnionDefNode(((struct __pyx_obj_6Cython_8Compiler_7Visitor_ScopeTrackingTransform *)__pyx_v_self), ((PyObject *)__pyx_v_node));
8716 
8717   /* function exit code */
8718   __Pyx_RefNannyFinishContext();
8719   return __pyx_r;
8720 }
8721 
__pyx_pf_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_8visit_CStructOrUnionDefNode(struct __pyx_obj_6Cython_8Compiler_7Visitor_ScopeTrackingTransform * __pyx_v_self,PyObject * __pyx_v_node)8722 static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_8visit_CStructOrUnionDefNode(struct __pyx_obj_6Cython_8Compiler_7Visitor_ScopeTrackingTransform *__pyx_v_self, PyObject *__pyx_v_node) {
8723   PyObject *__pyx_r = NULL;
8724   __Pyx_RefNannyDeclarations
8725   PyObject *__pyx_t_1 = NULL;
8726   int __pyx_lineno = 0;
8727   const char *__pyx_filename = NULL;
8728   int __pyx_clineno = 0;
8729   __Pyx_RefNannySetupContext("visit_CStructOrUnionDefNode", 0);
8730 
8731   /* "Cython/Compiler/Visitor.py":345
8732  *
8733  *     def visit_CStructOrUnionDefNode(self, node):
8734  *         return self.visit_scope(node, 'struct')             # <<<<<<<<<<<<<<
8735  *
8736  *
8737  */
8738   __Pyx_XDECREF(__pyx_r);
8739   __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_7Visitor_ScopeTrackingTransform *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.__pyx_vtab)->visit_scope(__pyx_v_self, __pyx_v_node, __pyx_n_u_struct); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 345, __pyx_L1_error)
8740   __Pyx_GOTREF(__pyx_t_1);
8741   __pyx_r = __pyx_t_1;
8742   __pyx_t_1 = 0;
8743   goto __pyx_L0;
8744 
8745   /* "Cython/Compiler/Visitor.py":344
8746  *         return self.visit_scope(node, 'function')
8747  *
8748  *     def visit_CStructOrUnionDefNode(self, node):             # <<<<<<<<<<<<<<
8749  *         return self.visit_scope(node, 'struct')
8750  *
8751  */
8752 
8753   /* function exit code */
8754   __pyx_L1_error:;
8755   __Pyx_XDECREF(__pyx_t_1);
8756   __Pyx_AddTraceback("Cython.Compiler.Visitor.ScopeTrackingTransform.visit_CStructOrUnionDefNode", __pyx_clineno, __pyx_lineno, __pyx_filename);
8757   __pyx_r = NULL;
8758   __pyx_L0:;
8759   __Pyx_XGIVEREF(__pyx_r);
8760   __Pyx_RefNannyFinishContext();
8761   return __pyx_r;
8762 }
8763 
8764 /* "Cython/Compiler/Visitor.pxd":28
8765  *
8766  * cdef class ScopeTrackingTransform(CythonTransform):
8767  *     cdef public scope_type             # <<<<<<<<<<<<<<
8768  *     cdef public scope_node
8769  *     cdef visit_scope(self, node, scope_type)
8770  */
8771 
8772 /* Python wrapper */
8773 static PyObject *__pyx_pw_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_10scope_type_1__get__(PyObject *__pyx_v_self); /*proto*/
__pyx_pw_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_10scope_type_1__get__(PyObject * __pyx_v_self)8774 static PyObject *__pyx_pw_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_10scope_type_1__get__(PyObject *__pyx_v_self) {
8775   PyObject *__pyx_r = 0;
8776   __Pyx_RefNannyDeclarations
8777   __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
8778   __pyx_r = __pyx_pf_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_10scope_type___get__(((struct __pyx_obj_6Cython_8Compiler_7Visitor_ScopeTrackingTransform *)__pyx_v_self));
8779 
8780   /* function exit code */
8781   __Pyx_RefNannyFinishContext();
8782   return __pyx_r;
8783 }
8784 
__pyx_pf_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_10scope_type___get__(struct __pyx_obj_6Cython_8Compiler_7Visitor_ScopeTrackingTransform * __pyx_v_self)8785 static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_10scope_type___get__(struct __pyx_obj_6Cython_8Compiler_7Visitor_ScopeTrackingTransform *__pyx_v_self) {
8786   PyObject *__pyx_r = NULL;
8787   __Pyx_RefNannyDeclarations
8788   __Pyx_RefNannySetupContext("__get__", 0);
8789   __Pyx_XDECREF(__pyx_r);
8790   __Pyx_INCREF(__pyx_v_self->scope_type);
8791   __pyx_r = __pyx_v_self->scope_type;
8792   goto __pyx_L0;
8793 
8794   /* function exit code */
8795   __pyx_L0:;
8796   __Pyx_XGIVEREF(__pyx_r);
8797   __Pyx_RefNannyFinishContext();
8798   return __pyx_r;
8799 }
8800 
8801 /* Python wrapper */
8802 static int __pyx_pw_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_10scope_type_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
__pyx_pw_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_10scope_type_3__set__(PyObject * __pyx_v_self,PyObject * __pyx_v_value)8803 static int __pyx_pw_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_10scope_type_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
8804   int __pyx_r;
8805   __Pyx_RefNannyDeclarations
8806   __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
8807   __pyx_r = __pyx_pf_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_10scope_type_2__set__(((struct __pyx_obj_6Cython_8Compiler_7Visitor_ScopeTrackingTransform *)__pyx_v_self), ((PyObject *)__pyx_v_value));
8808 
8809   /* function exit code */
8810   __Pyx_RefNannyFinishContext();
8811   return __pyx_r;
8812 }
8813 
__pyx_pf_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_10scope_type_2__set__(struct __pyx_obj_6Cython_8Compiler_7Visitor_ScopeTrackingTransform * __pyx_v_self,PyObject * __pyx_v_value)8814 static int __pyx_pf_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_10scope_type_2__set__(struct __pyx_obj_6Cython_8Compiler_7Visitor_ScopeTrackingTransform *__pyx_v_self, PyObject *__pyx_v_value) {
8815   int __pyx_r;
8816   __Pyx_RefNannyDeclarations
8817   __Pyx_RefNannySetupContext("__set__", 0);
8818   __Pyx_INCREF(__pyx_v_value);
8819   __Pyx_GIVEREF(__pyx_v_value);
8820   __Pyx_GOTREF(__pyx_v_self->scope_type);
8821   __Pyx_DECREF(__pyx_v_self->scope_type);
8822   __pyx_v_self->scope_type = __pyx_v_value;
8823 
8824   /* function exit code */
8825   __pyx_r = 0;
8826   __Pyx_RefNannyFinishContext();
8827   return __pyx_r;
8828 }
8829 
8830 /* Python wrapper */
8831 static int __pyx_pw_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_10scope_type_5__del__(PyObject *__pyx_v_self); /*proto*/
__pyx_pw_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_10scope_type_5__del__(PyObject * __pyx_v_self)8832 static int __pyx_pw_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_10scope_type_5__del__(PyObject *__pyx_v_self) {
8833   int __pyx_r;
8834   __Pyx_RefNannyDeclarations
8835   __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
8836   __pyx_r = __pyx_pf_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_10scope_type_4__del__(((struct __pyx_obj_6Cython_8Compiler_7Visitor_ScopeTrackingTransform *)__pyx_v_self));
8837 
8838   /* function exit code */
8839   __Pyx_RefNannyFinishContext();
8840   return __pyx_r;
8841 }
8842 
__pyx_pf_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_10scope_type_4__del__(struct __pyx_obj_6Cython_8Compiler_7Visitor_ScopeTrackingTransform * __pyx_v_self)8843 static int __pyx_pf_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_10scope_type_4__del__(struct __pyx_obj_6Cython_8Compiler_7Visitor_ScopeTrackingTransform *__pyx_v_self) {
8844   int __pyx_r;
8845   __Pyx_RefNannyDeclarations
8846   __Pyx_RefNannySetupContext("__del__", 0);
8847   __Pyx_INCREF(Py_None);
8848   __Pyx_GIVEREF(Py_None);
8849   __Pyx_GOTREF(__pyx_v_self->scope_type);
8850   __Pyx_DECREF(__pyx_v_self->scope_type);
8851   __pyx_v_self->scope_type = Py_None;
8852 
8853   /* function exit code */
8854   __pyx_r = 0;
8855   __Pyx_RefNannyFinishContext();
8856   return __pyx_r;
8857 }
8858 
8859 /* "Cython/Compiler/Visitor.pxd":29
8860  * cdef class ScopeTrackingTransform(CythonTransform):
8861  *     cdef public scope_type
8862  *     cdef public scope_node             # <<<<<<<<<<<<<<
8863  *     cdef visit_scope(self, node, scope_type)
8864  *
8865  */
8866 
8867 /* Python wrapper */
8868 static PyObject *__pyx_pw_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_10scope_node_1__get__(PyObject *__pyx_v_self); /*proto*/
__pyx_pw_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_10scope_node_1__get__(PyObject * __pyx_v_self)8869 static PyObject *__pyx_pw_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_10scope_node_1__get__(PyObject *__pyx_v_self) {
8870   PyObject *__pyx_r = 0;
8871   __Pyx_RefNannyDeclarations
8872   __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
8873   __pyx_r = __pyx_pf_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_10scope_node___get__(((struct __pyx_obj_6Cython_8Compiler_7Visitor_ScopeTrackingTransform *)__pyx_v_self));
8874 
8875   /* function exit code */
8876   __Pyx_RefNannyFinishContext();
8877   return __pyx_r;
8878 }
8879 
__pyx_pf_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_10scope_node___get__(struct __pyx_obj_6Cython_8Compiler_7Visitor_ScopeTrackingTransform * __pyx_v_self)8880 static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_10scope_node___get__(struct __pyx_obj_6Cython_8Compiler_7Visitor_ScopeTrackingTransform *__pyx_v_self) {
8881   PyObject *__pyx_r = NULL;
8882   __Pyx_RefNannyDeclarations
8883   __Pyx_RefNannySetupContext("__get__", 0);
8884   __Pyx_XDECREF(__pyx_r);
8885   __Pyx_INCREF(__pyx_v_self->scope_node);
8886   __pyx_r = __pyx_v_self->scope_node;
8887   goto __pyx_L0;
8888 
8889   /* function exit code */
8890   __pyx_L0:;
8891   __Pyx_XGIVEREF(__pyx_r);
8892   __Pyx_RefNannyFinishContext();
8893   return __pyx_r;
8894 }
8895 
8896 /* Python wrapper */
8897 static int __pyx_pw_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_10scope_node_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
__pyx_pw_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_10scope_node_3__set__(PyObject * __pyx_v_self,PyObject * __pyx_v_value)8898 static int __pyx_pw_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_10scope_node_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
8899   int __pyx_r;
8900   __Pyx_RefNannyDeclarations
8901   __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
8902   __pyx_r = __pyx_pf_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_10scope_node_2__set__(((struct __pyx_obj_6Cython_8Compiler_7Visitor_ScopeTrackingTransform *)__pyx_v_self), ((PyObject *)__pyx_v_value));
8903 
8904   /* function exit code */
8905   __Pyx_RefNannyFinishContext();
8906   return __pyx_r;
8907 }
8908 
__pyx_pf_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_10scope_node_2__set__(struct __pyx_obj_6Cython_8Compiler_7Visitor_ScopeTrackingTransform * __pyx_v_self,PyObject * __pyx_v_value)8909 static int __pyx_pf_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_10scope_node_2__set__(struct __pyx_obj_6Cython_8Compiler_7Visitor_ScopeTrackingTransform *__pyx_v_self, PyObject *__pyx_v_value) {
8910   int __pyx_r;
8911   __Pyx_RefNannyDeclarations
8912   __Pyx_RefNannySetupContext("__set__", 0);
8913   __Pyx_INCREF(__pyx_v_value);
8914   __Pyx_GIVEREF(__pyx_v_value);
8915   __Pyx_GOTREF(__pyx_v_self->scope_node);
8916   __Pyx_DECREF(__pyx_v_self->scope_node);
8917   __pyx_v_self->scope_node = __pyx_v_value;
8918 
8919   /* function exit code */
8920   __pyx_r = 0;
8921   __Pyx_RefNannyFinishContext();
8922   return __pyx_r;
8923 }
8924 
8925 /* Python wrapper */
8926 static int __pyx_pw_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_10scope_node_5__del__(PyObject *__pyx_v_self); /*proto*/
__pyx_pw_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_10scope_node_5__del__(PyObject * __pyx_v_self)8927 static int __pyx_pw_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_10scope_node_5__del__(PyObject *__pyx_v_self) {
8928   int __pyx_r;
8929   __Pyx_RefNannyDeclarations
8930   __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
8931   __pyx_r = __pyx_pf_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_10scope_node_4__del__(((struct __pyx_obj_6Cython_8Compiler_7Visitor_ScopeTrackingTransform *)__pyx_v_self));
8932 
8933   /* function exit code */
8934   __Pyx_RefNannyFinishContext();
8935   return __pyx_r;
8936 }
8937 
__pyx_pf_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_10scope_node_4__del__(struct __pyx_obj_6Cython_8Compiler_7Visitor_ScopeTrackingTransform * __pyx_v_self)8938 static int __pyx_pf_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_10scope_node_4__del__(struct __pyx_obj_6Cython_8Compiler_7Visitor_ScopeTrackingTransform *__pyx_v_self) {
8939   int __pyx_r;
8940   __Pyx_RefNannyDeclarations
8941   __Pyx_RefNannySetupContext("__del__", 0);
8942   __Pyx_INCREF(Py_None);
8943   __Pyx_GIVEREF(Py_None);
8944   __Pyx_GOTREF(__pyx_v_self->scope_node);
8945   __Pyx_DECREF(__pyx_v_self->scope_node);
8946   __pyx_v_self->scope_node = Py_None;
8947 
8948   /* function exit code */
8949   __pyx_r = 0;
8950   __Pyx_RefNannyFinishContext();
8951   return __pyx_r;
8952 }
8953 
8954 /* "Cython/Compiler/Visitor.py":352
8955  *     This transformation keeps a stack of the environments.
8956  *     """
8957  *     def __call__(self, root):             # <<<<<<<<<<<<<<
8958  *         self.env_stack = []
8959  *         self.enter_scope(root, root.scope)
8960  */
8961 
8962 /* Python wrapper */
8963 static PyObject *__pyx_pw_6Cython_8Compiler_7Visitor_12EnvTransform_1__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
__pyx_pw_6Cython_8Compiler_7Visitor_12EnvTransform_1__call__(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)8964 static PyObject *__pyx_pw_6Cython_8Compiler_7Visitor_12EnvTransform_1__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
8965   PyObject *__pyx_v_root = 0;
8966   int __pyx_lineno = 0;
8967   const char *__pyx_filename = NULL;
8968   int __pyx_clineno = 0;
8969   PyObject *__pyx_r = 0;
8970   __Pyx_RefNannyDeclarations
8971   __Pyx_RefNannySetupContext("__call__ (wrapper)", 0);
8972   {
8973     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_root,0};
8974     PyObject* values[1] = {0};
8975     if (unlikely(__pyx_kwds)) {
8976       Py_ssize_t kw_args;
8977       const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
8978       switch (pos_args) {
8979         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
8980         CYTHON_FALLTHROUGH;
8981         case  0: break;
8982         default: goto __pyx_L5_argtuple_error;
8983       }
8984       kw_args = PyDict_Size(__pyx_kwds);
8985       switch (pos_args) {
8986         case  0:
8987         if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_root)) != 0)) kw_args--;
8988         else goto __pyx_L5_argtuple_error;
8989       }
8990       if (unlikely(kw_args > 0)) {
8991         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__call__") < 0)) __PYX_ERR(0, 352, __pyx_L3_error)
8992       }
8993     } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
8994       goto __pyx_L5_argtuple_error;
8995     } else {
8996       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
8997     }
8998     __pyx_v_root = values[0];
8999   }
9000   goto __pyx_L4_argument_unpacking_done;
9001   __pyx_L5_argtuple_error:;
9002   __Pyx_RaiseArgtupleInvalid("__call__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 352, __pyx_L3_error)
9003   __pyx_L3_error:;
9004   __Pyx_AddTraceback("Cython.Compiler.Visitor.EnvTransform.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
9005   __Pyx_RefNannyFinishContext();
9006   return NULL;
9007   __pyx_L4_argument_unpacking_done:;
9008   __pyx_r = __pyx_pf_6Cython_8Compiler_7Visitor_12EnvTransform___call__(((struct __pyx_obj_6Cython_8Compiler_7Visitor_EnvTransform *)__pyx_v_self), __pyx_v_root);
9009 
9010   /* function exit code */
9011   __Pyx_RefNannyFinishContext();
9012   return __pyx_r;
9013 }
9014 
__pyx_pf_6Cython_8Compiler_7Visitor_12EnvTransform___call__(struct __pyx_obj_6Cython_8Compiler_7Visitor_EnvTransform * __pyx_v_self,PyObject * __pyx_v_root)9015 static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_12EnvTransform___call__(struct __pyx_obj_6Cython_8Compiler_7Visitor_EnvTransform *__pyx_v_self, PyObject *__pyx_v_root) {
9016   PyObject *__pyx_r = NULL;
9017   __Pyx_RefNannyDeclarations
9018   PyObject *__pyx_t_1 = NULL;
9019   PyObject *__pyx_t_2 = NULL;
9020   PyObject *__pyx_t_3 = NULL;
9021   PyObject *__pyx_t_4 = NULL;
9022   int __pyx_t_5;
9023   PyObject *__pyx_t_6 = NULL;
9024   int __pyx_lineno = 0;
9025   const char *__pyx_filename = NULL;
9026   int __pyx_clineno = 0;
9027   __Pyx_RefNannySetupContext("__call__", 0);
9028 
9029   /* "Cython/Compiler/Visitor.py":353
9030  *     """
9031  *     def __call__(self, root):
9032  *         self.env_stack = []             # <<<<<<<<<<<<<<
9033  *         self.enter_scope(root, root.scope)
9034  *         return super(EnvTransform, self).__call__(root)
9035  */
9036   __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 353, __pyx_L1_error)
9037   __Pyx_GOTREF(__pyx_t_1);
9038   __Pyx_GIVEREF(__pyx_t_1);
9039   __Pyx_GOTREF(__pyx_v_self->env_stack);
9040   __Pyx_DECREF(__pyx_v_self->env_stack);
9041   __pyx_v_self->env_stack = ((PyObject*)__pyx_t_1);
9042   __pyx_t_1 = 0;
9043 
9044   /* "Cython/Compiler/Visitor.py":354
9045  *     def __call__(self, root):
9046  *         self.env_stack = []
9047  *         self.enter_scope(root, root.scope)             # <<<<<<<<<<<<<<
9048  *         return super(EnvTransform, self).__call__(root)
9049  *
9050  */
9051   __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_enter_scope); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 354, __pyx_L1_error)
9052   __Pyx_GOTREF(__pyx_t_2);
9053   __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_root, __pyx_n_s_scope); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 354, __pyx_L1_error)
9054   __Pyx_GOTREF(__pyx_t_3);
9055   __pyx_t_4 = NULL;
9056   __pyx_t_5 = 0;
9057   if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
9058     __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
9059     if (likely(__pyx_t_4)) {
9060       PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
9061       __Pyx_INCREF(__pyx_t_4);
9062       __Pyx_INCREF(function);
9063       __Pyx_DECREF_SET(__pyx_t_2, function);
9064       __pyx_t_5 = 1;
9065     }
9066   }
9067   #if CYTHON_FAST_PYCALL
9068   if (PyFunction_Check(__pyx_t_2)) {
9069     PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_v_root, __pyx_t_3};
9070     __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 354, __pyx_L1_error)
9071     __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
9072     __Pyx_GOTREF(__pyx_t_1);
9073     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
9074   } else
9075   #endif
9076   #if CYTHON_FAST_PYCCALL
9077   if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) {
9078     PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_v_root, __pyx_t_3};
9079     __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 354, __pyx_L1_error)
9080     __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
9081     __Pyx_GOTREF(__pyx_t_1);
9082     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
9083   } else
9084   #endif
9085   {
9086     __pyx_t_6 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 354, __pyx_L1_error)
9087     __Pyx_GOTREF(__pyx_t_6);
9088     if (__pyx_t_4) {
9089       __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4); __pyx_t_4 = NULL;
9090     }
9091     __Pyx_INCREF(__pyx_v_root);
9092     __Pyx_GIVEREF(__pyx_v_root);
9093     PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_5, __pyx_v_root);
9094     __Pyx_GIVEREF(__pyx_t_3);
9095     PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_5, __pyx_t_3);
9096     __pyx_t_3 = 0;
9097     __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_6, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 354, __pyx_L1_error)
9098     __Pyx_GOTREF(__pyx_t_1);
9099     __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
9100   }
9101   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
9102   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
9103 
9104   /* "Cython/Compiler/Visitor.py":355
9105  *         self.env_stack = []
9106  *         self.enter_scope(root, root.scope)
9107  *         return super(EnvTransform, self).__call__(root)             # <<<<<<<<<<<<<<
9108  *
9109  *     def current_env(self):
9110  */
9111   __Pyx_XDECREF(__pyx_r);
9112   __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 355, __pyx_L1_error)
9113   __Pyx_GOTREF(__pyx_t_2);
9114   __Pyx_INCREF(((PyObject *)__pyx_ptype_6Cython_8Compiler_7Visitor_EnvTransform));
9115   __Pyx_GIVEREF(((PyObject *)__pyx_ptype_6Cython_8Compiler_7Visitor_EnvTransform));
9116   PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_ptype_6Cython_8Compiler_7Visitor_EnvTransform));
9117   __Pyx_INCREF(((PyObject *)__pyx_v_self));
9118   __Pyx_GIVEREF(((PyObject *)__pyx_v_self));
9119   PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_v_self));
9120   __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_2, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 355, __pyx_L1_error)
9121   __Pyx_GOTREF(__pyx_t_6);
9122   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
9123   __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_call); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 355, __pyx_L1_error)
9124   __Pyx_GOTREF(__pyx_t_2);
9125   __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
9126   __pyx_t_6 = NULL;
9127   if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
9128     __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_2);
9129     if (likely(__pyx_t_6)) {
9130       PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
9131       __Pyx_INCREF(__pyx_t_6);
9132       __Pyx_INCREF(function);
9133       __Pyx_DECREF_SET(__pyx_t_2, function);
9134     }
9135   }
9136   __pyx_t_1 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_6, __pyx_v_root) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_root);
9137   __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
9138   if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 355, __pyx_L1_error)
9139   __Pyx_GOTREF(__pyx_t_1);
9140   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
9141   __pyx_r = __pyx_t_1;
9142   __pyx_t_1 = 0;
9143   goto __pyx_L0;
9144 
9145   /* "Cython/Compiler/Visitor.py":352
9146  *     This transformation keeps a stack of the environments.
9147  *     """
9148  *     def __call__(self, root):             # <<<<<<<<<<<<<<
9149  *         self.env_stack = []
9150  *         self.enter_scope(root, root.scope)
9151  */
9152 
9153   /* function exit code */
9154   __pyx_L1_error:;
9155   __Pyx_XDECREF(__pyx_t_1);
9156   __Pyx_XDECREF(__pyx_t_2);
9157   __Pyx_XDECREF(__pyx_t_3);
9158   __Pyx_XDECREF(__pyx_t_4);
9159   __Pyx_XDECREF(__pyx_t_6);
9160   __Pyx_AddTraceback("Cython.Compiler.Visitor.EnvTransform.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
9161   __pyx_r = NULL;
9162   __pyx_L0:;
9163   __Pyx_XGIVEREF(__pyx_r);
9164   __Pyx_RefNannyFinishContext();
9165   return __pyx_r;
9166 }
9167 
9168 /* "Cython/Compiler/Visitor.py":357
9169  *         return super(EnvTransform, self).__call__(root)
9170  *
9171  *     def current_env(self):             # <<<<<<<<<<<<<<
9172  *         return self.env_stack[-1][1]
9173  *
9174  */
9175 
9176 /* Python wrapper */
9177 static PyObject *__pyx_pw_6Cython_8Compiler_7Visitor_12EnvTransform_3current_env(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
9178 static PyMethodDef __pyx_mdef_6Cython_8Compiler_7Visitor_12EnvTransform_3current_env = {"current_env", (PyCFunction)__pyx_pw_6Cython_8Compiler_7Visitor_12EnvTransform_3current_env, METH_NOARGS, 0};
__pyx_pw_6Cython_8Compiler_7Visitor_12EnvTransform_3current_env(PyObject * __pyx_v_self,CYTHON_UNUSED PyObject * unused)9179 static PyObject *__pyx_pw_6Cython_8Compiler_7Visitor_12EnvTransform_3current_env(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
9180   PyObject *__pyx_r = 0;
9181   __Pyx_RefNannyDeclarations
9182   __Pyx_RefNannySetupContext("current_env (wrapper)", 0);
9183   __pyx_r = __pyx_pf_6Cython_8Compiler_7Visitor_12EnvTransform_2current_env(((struct __pyx_obj_6Cython_8Compiler_7Visitor_EnvTransform *)__pyx_v_self));
9184 
9185   /* function exit code */
9186   __Pyx_RefNannyFinishContext();
9187   return __pyx_r;
9188 }
9189 
__pyx_pf_6Cython_8Compiler_7Visitor_12EnvTransform_2current_env(struct __pyx_obj_6Cython_8Compiler_7Visitor_EnvTransform * __pyx_v_self)9190 static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_12EnvTransform_2current_env(struct __pyx_obj_6Cython_8Compiler_7Visitor_EnvTransform *__pyx_v_self) {
9191   PyObject *__pyx_r = NULL;
9192   __Pyx_RefNannyDeclarations
9193   PyObject *__pyx_t_1 = NULL;
9194   PyObject *__pyx_t_2 = NULL;
9195   int __pyx_lineno = 0;
9196   const char *__pyx_filename = NULL;
9197   int __pyx_clineno = 0;
9198   __Pyx_RefNannySetupContext("current_env", 0);
9199 
9200   /* "Cython/Compiler/Visitor.py":358
9201  *
9202  *     def current_env(self):
9203  *         return self.env_stack[-1][1]             # <<<<<<<<<<<<<<
9204  *
9205  *     def current_scope_node(self):
9206  */
9207   __Pyx_XDECREF(__pyx_r);
9208   if (unlikely(__pyx_v_self->env_stack == Py_None)) {
9209     PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
9210     __PYX_ERR(0, 358, __pyx_L1_error)
9211   }
9212   __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_self->env_stack, -1L, long, 1, __Pyx_PyInt_From_long, 1, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 358, __pyx_L1_error)
9213   __Pyx_GOTREF(__pyx_t_1);
9214   __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_1, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 358, __pyx_L1_error)
9215   __Pyx_GOTREF(__pyx_t_2);
9216   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
9217   __pyx_r = __pyx_t_2;
9218   __pyx_t_2 = 0;
9219   goto __pyx_L0;
9220 
9221   /* "Cython/Compiler/Visitor.py":357
9222  *         return super(EnvTransform, self).__call__(root)
9223  *
9224  *     def current_env(self):             # <<<<<<<<<<<<<<
9225  *         return self.env_stack[-1][1]
9226  *
9227  */
9228 
9229   /* function exit code */
9230   __pyx_L1_error:;
9231   __Pyx_XDECREF(__pyx_t_1);
9232   __Pyx_XDECREF(__pyx_t_2);
9233   __Pyx_AddTraceback("Cython.Compiler.Visitor.EnvTransform.current_env", __pyx_clineno, __pyx_lineno, __pyx_filename);
9234   __pyx_r = NULL;
9235   __pyx_L0:;
9236   __Pyx_XGIVEREF(__pyx_r);
9237   __Pyx_RefNannyFinishContext();
9238   return __pyx_r;
9239 }
9240 
9241 /* "Cython/Compiler/Visitor.py":360
9242  *         return self.env_stack[-1][1]
9243  *
9244  *     def current_scope_node(self):             # <<<<<<<<<<<<<<
9245  *         return self.env_stack[-1][0]
9246  *
9247  */
9248 
9249 /* Python wrapper */
9250 static PyObject *__pyx_pw_6Cython_8Compiler_7Visitor_12EnvTransform_5current_scope_node(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
9251 static PyMethodDef __pyx_mdef_6Cython_8Compiler_7Visitor_12EnvTransform_5current_scope_node = {"current_scope_node", (PyCFunction)__pyx_pw_6Cython_8Compiler_7Visitor_12EnvTransform_5current_scope_node, METH_NOARGS, 0};
__pyx_pw_6Cython_8Compiler_7Visitor_12EnvTransform_5current_scope_node(PyObject * __pyx_v_self,CYTHON_UNUSED PyObject * unused)9252 static PyObject *__pyx_pw_6Cython_8Compiler_7Visitor_12EnvTransform_5current_scope_node(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
9253   PyObject *__pyx_r = 0;
9254   __Pyx_RefNannyDeclarations
9255   __Pyx_RefNannySetupContext("current_scope_node (wrapper)", 0);
9256   __pyx_r = __pyx_pf_6Cython_8Compiler_7Visitor_12EnvTransform_4current_scope_node(((struct __pyx_obj_6Cython_8Compiler_7Visitor_EnvTransform *)__pyx_v_self));
9257 
9258   /* function exit code */
9259   __Pyx_RefNannyFinishContext();
9260   return __pyx_r;
9261 }
9262 
__pyx_pf_6Cython_8Compiler_7Visitor_12EnvTransform_4current_scope_node(struct __pyx_obj_6Cython_8Compiler_7Visitor_EnvTransform * __pyx_v_self)9263 static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_12EnvTransform_4current_scope_node(struct __pyx_obj_6Cython_8Compiler_7Visitor_EnvTransform *__pyx_v_self) {
9264   PyObject *__pyx_r = NULL;
9265   __Pyx_RefNannyDeclarations
9266   PyObject *__pyx_t_1 = NULL;
9267   PyObject *__pyx_t_2 = NULL;
9268   int __pyx_lineno = 0;
9269   const char *__pyx_filename = NULL;
9270   int __pyx_clineno = 0;
9271   __Pyx_RefNannySetupContext("current_scope_node", 0);
9272 
9273   /* "Cython/Compiler/Visitor.py":361
9274  *
9275  *     def current_scope_node(self):
9276  *         return self.env_stack[-1][0]             # <<<<<<<<<<<<<<
9277  *
9278  *     def global_scope(self):
9279  */
9280   __Pyx_XDECREF(__pyx_r);
9281   if (unlikely(__pyx_v_self->env_stack == Py_None)) {
9282     PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
9283     __PYX_ERR(0, 361, __pyx_L1_error)
9284   }
9285   __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_self->env_stack, -1L, long, 1, __Pyx_PyInt_From_long, 1, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 361, __pyx_L1_error)
9286   __Pyx_GOTREF(__pyx_t_1);
9287   __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_1, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 361, __pyx_L1_error)
9288   __Pyx_GOTREF(__pyx_t_2);
9289   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
9290   __pyx_r = __pyx_t_2;
9291   __pyx_t_2 = 0;
9292   goto __pyx_L0;
9293 
9294   /* "Cython/Compiler/Visitor.py":360
9295  *         return self.env_stack[-1][1]
9296  *
9297  *     def current_scope_node(self):             # <<<<<<<<<<<<<<
9298  *         return self.env_stack[-1][0]
9299  *
9300  */
9301 
9302   /* function exit code */
9303   __pyx_L1_error:;
9304   __Pyx_XDECREF(__pyx_t_1);
9305   __Pyx_XDECREF(__pyx_t_2);
9306   __Pyx_AddTraceback("Cython.Compiler.Visitor.EnvTransform.current_scope_node", __pyx_clineno, __pyx_lineno, __pyx_filename);
9307   __pyx_r = NULL;
9308   __pyx_L0:;
9309   __Pyx_XGIVEREF(__pyx_r);
9310   __Pyx_RefNannyFinishContext();
9311   return __pyx_r;
9312 }
9313 
9314 /* "Cython/Compiler/Visitor.py":363
9315  *         return self.env_stack[-1][0]
9316  *
9317  *     def global_scope(self):             # <<<<<<<<<<<<<<
9318  *         return self.current_env().global_scope()
9319  *
9320  */
9321 
9322 /* Python wrapper */
9323 static PyObject *__pyx_pw_6Cython_8Compiler_7Visitor_12EnvTransform_7global_scope(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
9324 static PyMethodDef __pyx_mdef_6Cython_8Compiler_7Visitor_12EnvTransform_7global_scope = {"global_scope", (PyCFunction)__pyx_pw_6Cython_8Compiler_7Visitor_12EnvTransform_7global_scope, METH_NOARGS, 0};
__pyx_pw_6Cython_8Compiler_7Visitor_12EnvTransform_7global_scope(PyObject * __pyx_v_self,CYTHON_UNUSED PyObject * unused)9325 static PyObject *__pyx_pw_6Cython_8Compiler_7Visitor_12EnvTransform_7global_scope(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
9326   PyObject *__pyx_r = 0;
9327   __Pyx_RefNannyDeclarations
9328   __Pyx_RefNannySetupContext("global_scope (wrapper)", 0);
9329   __pyx_r = __pyx_pf_6Cython_8Compiler_7Visitor_12EnvTransform_6global_scope(((struct __pyx_obj_6Cython_8Compiler_7Visitor_EnvTransform *)__pyx_v_self));
9330 
9331   /* function exit code */
9332   __Pyx_RefNannyFinishContext();
9333   return __pyx_r;
9334 }
9335 
__pyx_pf_6Cython_8Compiler_7Visitor_12EnvTransform_6global_scope(struct __pyx_obj_6Cython_8Compiler_7Visitor_EnvTransform * __pyx_v_self)9336 static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_12EnvTransform_6global_scope(struct __pyx_obj_6Cython_8Compiler_7Visitor_EnvTransform *__pyx_v_self) {
9337   PyObject *__pyx_r = NULL;
9338   __Pyx_RefNannyDeclarations
9339   PyObject *__pyx_t_1 = NULL;
9340   PyObject *__pyx_t_2 = NULL;
9341   PyObject *__pyx_t_3 = NULL;
9342   PyObject *__pyx_t_4 = NULL;
9343   int __pyx_lineno = 0;
9344   const char *__pyx_filename = NULL;
9345   int __pyx_clineno = 0;
9346   __Pyx_RefNannySetupContext("global_scope", 0);
9347 
9348   /* "Cython/Compiler/Visitor.py":364
9349  *
9350  *     def global_scope(self):
9351  *         return self.current_env().global_scope()             # <<<<<<<<<<<<<<
9352  *
9353  *     def enter_scope(self, node, scope):
9354  */
9355   __Pyx_XDECREF(__pyx_r);
9356   __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_current_env); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 364, __pyx_L1_error)
9357   __Pyx_GOTREF(__pyx_t_3);
9358   __pyx_t_4 = NULL;
9359   if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
9360     __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
9361     if (likely(__pyx_t_4)) {
9362       PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
9363       __Pyx_INCREF(__pyx_t_4);
9364       __Pyx_INCREF(function);
9365       __Pyx_DECREF_SET(__pyx_t_3, function);
9366     }
9367   }
9368   __pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4) : __Pyx_PyObject_CallNoArg(__pyx_t_3);
9369   __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
9370   if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 364, __pyx_L1_error)
9371   __Pyx_GOTREF(__pyx_t_2);
9372   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
9373   __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_global_scope); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 364, __pyx_L1_error)
9374   __Pyx_GOTREF(__pyx_t_3);
9375   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
9376   __pyx_t_2 = NULL;
9377   if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
9378     __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
9379     if (likely(__pyx_t_2)) {
9380       PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
9381       __Pyx_INCREF(__pyx_t_2);
9382       __Pyx_INCREF(function);
9383       __Pyx_DECREF_SET(__pyx_t_3, function);
9384     }
9385   }
9386   __pyx_t_1 = (__pyx_t_2) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_2) : __Pyx_PyObject_CallNoArg(__pyx_t_3);
9387   __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
9388   if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 364, __pyx_L1_error)
9389   __Pyx_GOTREF(__pyx_t_1);
9390   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
9391   __pyx_r = __pyx_t_1;
9392   __pyx_t_1 = 0;
9393   goto __pyx_L0;
9394 
9395   /* "Cython/Compiler/Visitor.py":363
9396  *         return self.env_stack[-1][0]
9397  *
9398  *     def global_scope(self):             # <<<<<<<<<<<<<<
9399  *         return self.current_env().global_scope()
9400  *
9401  */
9402 
9403   /* function exit code */
9404   __pyx_L1_error:;
9405   __Pyx_XDECREF(__pyx_t_1);
9406   __Pyx_XDECREF(__pyx_t_2);
9407   __Pyx_XDECREF(__pyx_t_3);
9408   __Pyx_XDECREF(__pyx_t_4);
9409   __Pyx_AddTraceback("Cython.Compiler.Visitor.EnvTransform.global_scope", __pyx_clineno, __pyx_lineno, __pyx_filename);
9410   __pyx_r = NULL;
9411   __pyx_L0:;
9412   __Pyx_XGIVEREF(__pyx_r);
9413   __Pyx_RefNannyFinishContext();
9414   return __pyx_r;
9415 }
9416 
9417 /* "Cython/Compiler/Visitor.py":366
9418  *         return self.current_env().global_scope()
9419  *
9420  *     def enter_scope(self, node, scope):             # <<<<<<<<<<<<<<
9421  *         self.env_stack.append((node, scope))
9422  *
9423  */
9424 
9425 /* Python wrapper */
9426 static PyObject *__pyx_pw_6Cython_8Compiler_7Visitor_12EnvTransform_9enter_scope(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
9427 static PyMethodDef __pyx_mdef_6Cython_8Compiler_7Visitor_12EnvTransform_9enter_scope = {"enter_scope", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6Cython_8Compiler_7Visitor_12EnvTransform_9enter_scope, METH_VARARGS|METH_KEYWORDS, 0};
__pyx_pw_6Cython_8Compiler_7Visitor_12EnvTransform_9enter_scope(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)9428 static PyObject *__pyx_pw_6Cython_8Compiler_7Visitor_12EnvTransform_9enter_scope(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
9429   PyObject *__pyx_v_node = 0;
9430   PyObject *__pyx_v_scope = 0;
9431   int __pyx_lineno = 0;
9432   const char *__pyx_filename = NULL;
9433   int __pyx_clineno = 0;
9434   PyObject *__pyx_r = 0;
9435   __Pyx_RefNannyDeclarations
9436   __Pyx_RefNannySetupContext("enter_scope (wrapper)", 0);
9437   {
9438     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_node,&__pyx_n_s_scope,0};
9439     PyObject* values[2] = {0,0};
9440     if (unlikely(__pyx_kwds)) {
9441       Py_ssize_t kw_args;
9442       const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
9443       switch (pos_args) {
9444         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
9445         CYTHON_FALLTHROUGH;
9446         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
9447         CYTHON_FALLTHROUGH;
9448         case  0: break;
9449         default: goto __pyx_L5_argtuple_error;
9450       }
9451       kw_args = PyDict_Size(__pyx_kwds);
9452       switch (pos_args) {
9453         case  0:
9454         if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_node)) != 0)) kw_args--;
9455         else goto __pyx_L5_argtuple_error;
9456         CYTHON_FALLTHROUGH;
9457         case  1:
9458         if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_scope)) != 0)) kw_args--;
9459         else {
9460           __Pyx_RaiseArgtupleInvalid("enter_scope", 1, 2, 2, 1); __PYX_ERR(0, 366, __pyx_L3_error)
9461         }
9462       }
9463       if (unlikely(kw_args > 0)) {
9464         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "enter_scope") < 0)) __PYX_ERR(0, 366, __pyx_L3_error)
9465       }
9466     } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
9467       goto __pyx_L5_argtuple_error;
9468     } else {
9469       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
9470       values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
9471     }
9472     __pyx_v_node = values[0];
9473     __pyx_v_scope = values[1];
9474   }
9475   goto __pyx_L4_argument_unpacking_done;
9476   __pyx_L5_argtuple_error:;
9477   __Pyx_RaiseArgtupleInvalid("enter_scope", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 366, __pyx_L3_error)
9478   __pyx_L3_error:;
9479   __Pyx_AddTraceback("Cython.Compiler.Visitor.EnvTransform.enter_scope", __pyx_clineno, __pyx_lineno, __pyx_filename);
9480   __Pyx_RefNannyFinishContext();
9481   return NULL;
9482   __pyx_L4_argument_unpacking_done:;
9483   __pyx_r = __pyx_pf_6Cython_8Compiler_7Visitor_12EnvTransform_8enter_scope(((struct __pyx_obj_6Cython_8Compiler_7Visitor_EnvTransform *)__pyx_v_self), __pyx_v_node, __pyx_v_scope);
9484 
9485   /* function exit code */
9486   __Pyx_RefNannyFinishContext();
9487   return __pyx_r;
9488 }
9489 
__pyx_pf_6Cython_8Compiler_7Visitor_12EnvTransform_8enter_scope(struct __pyx_obj_6Cython_8Compiler_7Visitor_EnvTransform * __pyx_v_self,PyObject * __pyx_v_node,PyObject * __pyx_v_scope)9490 static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_12EnvTransform_8enter_scope(struct __pyx_obj_6Cython_8Compiler_7Visitor_EnvTransform *__pyx_v_self, PyObject *__pyx_v_node, PyObject *__pyx_v_scope) {
9491   PyObject *__pyx_r = NULL;
9492   __Pyx_RefNannyDeclarations
9493   PyObject *__pyx_t_1 = NULL;
9494   int __pyx_t_2;
9495   int __pyx_lineno = 0;
9496   const char *__pyx_filename = NULL;
9497   int __pyx_clineno = 0;
9498   __Pyx_RefNannySetupContext("enter_scope", 0);
9499 
9500   /* "Cython/Compiler/Visitor.py":367
9501  *
9502  *     def enter_scope(self, node, scope):
9503  *         self.env_stack.append((node, scope))             # <<<<<<<<<<<<<<
9504  *
9505  *     def exit_scope(self):
9506  */
9507   if (unlikely(__pyx_v_self->env_stack == Py_None)) {
9508     PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "append");
9509     __PYX_ERR(0, 367, __pyx_L1_error)
9510   }
9511   __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 367, __pyx_L1_error)
9512   __Pyx_GOTREF(__pyx_t_1);
9513   __Pyx_INCREF(__pyx_v_node);
9514   __Pyx_GIVEREF(__pyx_v_node);
9515   PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_node);
9516   __Pyx_INCREF(__pyx_v_scope);
9517   __Pyx_GIVEREF(__pyx_v_scope);
9518   PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_scope);
9519   __pyx_t_2 = __Pyx_PyList_Append(__pyx_v_self->env_stack, __pyx_t_1); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 367, __pyx_L1_error)
9520   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
9521 
9522   /* "Cython/Compiler/Visitor.py":366
9523  *         return self.current_env().global_scope()
9524  *
9525  *     def enter_scope(self, node, scope):             # <<<<<<<<<<<<<<
9526  *         self.env_stack.append((node, scope))
9527  *
9528  */
9529 
9530   /* function exit code */
9531   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
9532   goto __pyx_L0;
9533   __pyx_L1_error:;
9534   __Pyx_XDECREF(__pyx_t_1);
9535   __Pyx_AddTraceback("Cython.Compiler.Visitor.EnvTransform.enter_scope", __pyx_clineno, __pyx_lineno, __pyx_filename);
9536   __pyx_r = NULL;
9537   __pyx_L0:;
9538   __Pyx_XGIVEREF(__pyx_r);
9539   __Pyx_RefNannyFinishContext();
9540   return __pyx_r;
9541 }
9542 
9543 /* "Cython/Compiler/Visitor.py":369
9544  *         self.env_stack.append((node, scope))
9545  *
9546  *     def exit_scope(self):             # <<<<<<<<<<<<<<
9547  *         self.env_stack.pop()
9548  *
9549  */
9550 
9551 /* Python wrapper */
9552 static PyObject *__pyx_pw_6Cython_8Compiler_7Visitor_12EnvTransform_11exit_scope(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
9553 static PyMethodDef __pyx_mdef_6Cython_8Compiler_7Visitor_12EnvTransform_11exit_scope = {"exit_scope", (PyCFunction)__pyx_pw_6Cython_8Compiler_7Visitor_12EnvTransform_11exit_scope, METH_NOARGS, 0};
__pyx_pw_6Cython_8Compiler_7Visitor_12EnvTransform_11exit_scope(PyObject * __pyx_v_self,CYTHON_UNUSED PyObject * unused)9554 static PyObject *__pyx_pw_6Cython_8Compiler_7Visitor_12EnvTransform_11exit_scope(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
9555   PyObject *__pyx_r = 0;
9556   __Pyx_RefNannyDeclarations
9557   __Pyx_RefNannySetupContext("exit_scope (wrapper)", 0);
9558   __pyx_r = __pyx_pf_6Cython_8Compiler_7Visitor_12EnvTransform_10exit_scope(((struct __pyx_obj_6Cython_8Compiler_7Visitor_EnvTransform *)__pyx_v_self));
9559 
9560   /* function exit code */
9561   __Pyx_RefNannyFinishContext();
9562   return __pyx_r;
9563 }
9564 
__pyx_pf_6Cython_8Compiler_7Visitor_12EnvTransform_10exit_scope(struct __pyx_obj_6Cython_8Compiler_7Visitor_EnvTransform * __pyx_v_self)9565 static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_12EnvTransform_10exit_scope(struct __pyx_obj_6Cython_8Compiler_7Visitor_EnvTransform *__pyx_v_self) {
9566   PyObject *__pyx_r = NULL;
9567   __Pyx_RefNannyDeclarations
9568   PyObject *__pyx_t_1 = NULL;
9569   int __pyx_lineno = 0;
9570   const char *__pyx_filename = NULL;
9571   int __pyx_clineno = 0;
9572   __Pyx_RefNannySetupContext("exit_scope", 0);
9573 
9574   /* "Cython/Compiler/Visitor.py":370
9575  *
9576  *     def exit_scope(self):
9577  *         self.env_stack.pop()             # <<<<<<<<<<<<<<
9578  *
9579  *     def visit_FuncDefNode(self, node):
9580  */
9581   if (unlikely(__pyx_v_self->env_stack == Py_None)) {
9582     PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "pop");
9583     __PYX_ERR(0, 370, __pyx_L1_error)
9584   }
9585   __pyx_t_1 = __Pyx_PyList_Pop(__pyx_v_self->env_stack); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 370, __pyx_L1_error)
9586   __Pyx_GOTREF(__pyx_t_1);
9587   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
9588 
9589   /* "Cython/Compiler/Visitor.py":369
9590  *         self.env_stack.append((node, scope))
9591  *
9592  *     def exit_scope(self):             # <<<<<<<<<<<<<<
9593  *         self.env_stack.pop()
9594  *
9595  */
9596 
9597   /* function exit code */
9598   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
9599   goto __pyx_L0;
9600   __pyx_L1_error:;
9601   __Pyx_XDECREF(__pyx_t_1);
9602   __Pyx_AddTraceback("Cython.Compiler.Visitor.EnvTransform.exit_scope", __pyx_clineno, __pyx_lineno, __pyx_filename);
9603   __pyx_r = NULL;
9604   __pyx_L0:;
9605   __Pyx_XGIVEREF(__pyx_r);
9606   __Pyx_RefNannyFinishContext();
9607   return __pyx_r;
9608 }
9609 
9610 /* "Cython/Compiler/Visitor.py":372
9611  *         self.env_stack.pop()
9612  *
9613  *     def visit_FuncDefNode(self, node):             # <<<<<<<<<<<<<<
9614  *         self.enter_scope(node, node.local_scope)
9615  *         self._process_children(node)
9616  */
9617 
9618 /* Python wrapper */
9619 static PyObject *__pyx_pw_6Cython_8Compiler_7Visitor_12EnvTransform_13visit_FuncDefNode(PyObject *__pyx_v_self, PyObject *__pyx_v_node); /*proto*/
9620 static PyMethodDef __pyx_mdef_6Cython_8Compiler_7Visitor_12EnvTransform_13visit_FuncDefNode = {"visit_FuncDefNode", (PyCFunction)__pyx_pw_6Cython_8Compiler_7Visitor_12EnvTransform_13visit_FuncDefNode, METH_O, 0};
__pyx_pw_6Cython_8Compiler_7Visitor_12EnvTransform_13visit_FuncDefNode(PyObject * __pyx_v_self,PyObject * __pyx_v_node)9621 static PyObject *__pyx_pw_6Cython_8Compiler_7Visitor_12EnvTransform_13visit_FuncDefNode(PyObject *__pyx_v_self, PyObject *__pyx_v_node) {
9622   PyObject *__pyx_r = 0;
9623   __Pyx_RefNannyDeclarations
9624   __Pyx_RefNannySetupContext("visit_FuncDefNode (wrapper)", 0);
9625   __pyx_r = __pyx_pf_6Cython_8Compiler_7Visitor_12EnvTransform_12visit_FuncDefNode(((struct __pyx_obj_6Cython_8Compiler_7Visitor_EnvTransform *)__pyx_v_self), ((PyObject *)__pyx_v_node));
9626 
9627   /* function exit code */
9628   __Pyx_RefNannyFinishContext();
9629   return __pyx_r;
9630 }
9631 
__pyx_pf_6Cython_8Compiler_7Visitor_12EnvTransform_12visit_FuncDefNode(struct __pyx_obj_6Cython_8Compiler_7Visitor_EnvTransform * __pyx_v_self,PyObject * __pyx_v_node)9632 static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_12EnvTransform_12visit_FuncDefNode(struct __pyx_obj_6Cython_8Compiler_7Visitor_EnvTransform *__pyx_v_self, PyObject *__pyx_v_node) {
9633   PyObject *__pyx_r = NULL;
9634   __Pyx_RefNannyDeclarations
9635   PyObject *__pyx_t_1 = NULL;
9636   PyObject *__pyx_t_2 = NULL;
9637   PyObject *__pyx_t_3 = NULL;
9638   PyObject *__pyx_t_4 = NULL;
9639   int __pyx_t_5;
9640   PyObject *__pyx_t_6 = NULL;
9641   int __pyx_lineno = 0;
9642   const char *__pyx_filename = NULL;
9643   int __pyx_clineno = 0;
9644   __Pyx_RefNannySetupContext("visit_FuncDefNode", 0);
9645 
9646   /* "Cython/Compiler/Visitor.py":373
9647  *
9648  *     def visit_FuncDefNode(self, node):
9649  *         self.enter_scope(node, node.local_scope)             # <<<<<<<<<<<<<<
9650  *         self._process_children(node)
9651  *         self.exit_scope()
9652  */
9653   __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_enter_scope); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 373, __pyx_L1_error)
9654   __Pyx_GOTREF(__pyx_t_2);
9655   __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_local_scope); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 373, __pyx_L1_error)
9656   __Pyx_GOTREF(__pyx_t_3);
9657   __pyx_t_4 = NULL;
9658   __pyx_t_5 = 0;
9659   if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
9660     __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
9661     if (likely(__pyx_t_4)) {
9662       PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
9663       __Pyx_INCREF(__pyx_t_4);
9664       __Pyx_INCREF(function);
9665       __Pyx_DECREF_SET(__pyx_t_2, function);
9666       __pyx_t_5 = 1;
9667     }
9668   }
9669   #if CYTHON_FAST_PYCALL
9670   if (PyFunction_Check(__pyx_t_2)) {
9671     PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_v_node, __pyx_t_3};
9672     __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 373, __pyx_L1_error)
9673     __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
9674     __Pyx_GOTREF(__pyx_t_1);
9675     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
9676   } else
9677   #endif
9678   #if CYTHON_FAST_PYCCALL
9679   if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) {
9680     PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_v_node, __pyx_t_3};
9681     __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 373, __pyx_L1_error)
9682     __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
9683     __Pyx_GOTREF(__pyx_t_1);
9684     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
9685   } else
9686   #endif
9687   {
9688     __pyx_t_6 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 373, __pyx_L1_error)
9689     __Pyx_GOTREF(__pyx_t_6);
9690     if (__pyx_t_4) {
9691       __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4); __pyx_t_4 = NULL;
9692     }
9693     __Pyx_INCREF(__pyx_v_node);
9694     __Pyx_GIVEREF(__pyx_v_node);
9695     PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_5, __pyx_v_node);
9696     __Pyx_GIVEREF(__pyx_t_3);
9697     PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_5, __pyx_t_3);
9698     __pyx_t_3 = 0;
9699     __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_6, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 373, __pyx_L1_error)
9700     __Pyx_GOTREF(__pyx_t_1);
9701     __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
9702   }
9703   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
9704   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
9705 
9706   /* "Cython/Compiler/Visitor.py":374
9707  *     def visit_FuncDefNode(self, node):
9708  *         self.enter_scope(node, node.local_scope)
9709  *         self._process_children(node)             # <<<<<<<<<<<<<<
9710  *         self.exit_scope()
9711  *         return node
9712  */
9713   __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_7Visitor_EnvTransform *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.__pyx_vtab)->__pyx_base.__pyx_base._process_children(((struct __pyx_obj_6Cython_8Compiler_7Visitor_VisitorTransform *)__pyx_v_self), __pyx_v_node, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 374, __pyx_L1_error)
9714   __Pyx_GOTREF(__pyx_t_1);
9715   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
9716 
9717   /* "Cython/Compiler/Visitor.py":375
9718  *         self.enter_scope(node, node.local_scope)
9719  *         self._process_children(node)
9720  *         self.exit_scope()             # <<<<<<<<<<<<<<
9721  *         return node
9722  *
9723  */
9724   __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_exit_scope); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 375, __pyx_L1_error)
9725   __Pyx_GOTREF(__pyx_t_2);
9726   __pyx_t_6 = NULL;
9727   if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
9728     __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_2);
9729     if (likely(__pyx_t_6)) {
9730       PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
9731       __Pyx_INCREF(__pyx_t_6);
9732       __Pyx_INCREF(function);
9733       __Pyx_DECREF_SET(__pyx_t_2, function);
9734     }
9735   }
9736   __pyx_t_1 = (__pyx_t_6) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_6) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
9737   __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
9738   if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 375, __pyx_L1_error)
9739   __Pyx_GOTREF(__pyx_t_1);
9740   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
9741   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
9742 
9743   /* "Cython/Compiler/Visitor.py":376
9744  *         self._process_children(node)
9745  *         self.exit_scope()
9746  *         return node             # <<<<<<<<<<<<<<
9747  *
9748  *     def visit_GeneratorBodyDefNode(self, node):
9749  */
9750   __Pyx_XDECREF(__pyx_r);
9751   __Pyx_INCREF(__pyx_v_node);
9752   __pyx_r = __pyx_v_node;
9753   goto __pyx_L0;
9754 
9755   /* "Cython/Compiler/Visitor.py":372
9756  *         self.env_stack.pop()
9757  *
9758  *     def visit_FuncDefNode(self, node):             # <<<<<<<<<<<<<<
9759  *         self.enter_scope(node, node.local_scope)
9760  *         self._process_children(node)
9761  */
9762 
9763   /* function exit code */
9764   __pyx_L1_error:;
9765   __Pyx_XDECREF(__pyx_t_1);
9766   __Pyx_XDECREF(__pyx_t_2);
9767   __Pyx_XDECREF(__pyx_t_3);
9768   __Pyx_XDECREF(__pyx_t_4);
9769   __Pyx_XDECREF(__pyx_t_6);
9770   __Pyx_AddTraceback("Cython.Compiler.Visitor.EnvTransform.visit_FuncDefNode", __pyx_clineno, __pyx_lineno, __pyx_filename);
9771   __pyx_r = NULL;
9772   __pyx_L0:;
9773   __Pyx_XGIVEREF(__pyx_r);
9774   __Pyx_RefNannyFinishContext();
9775   return __pyx_r;
9776 }
9777 
9778 /* "Cython/Compiler/Visitor.py":378
9779  *         return node
9780  *
9781  *     def visit_GeneratorBodyDefNode(self, node):             # <<<<<<<<<<<<<<
9782  *         self._process_children(node)
9783  *         return node
9784  */
9785 
9786 /* Python wrapper */
9787 static PyObject *__pyx_pw_6Cython_8Compiler_7Visitor_12EnvTransform_15visit_GeneratorBodyDefNode(PyObject *__pyx_v_self, PyObject *__pyx_v_node); /*proto*/
9788 static PyMethodDef __pyx_mdef_6Cython_8Compiler_7Visitor_12EnvTransform_15visit_GeneratorBodyDefNode = {"visit_GeneratorBodyDefNode", (PyCFunction)__pyx_pw_6Cython_8Compiler_7Visitor_12EnvTransform_15visit_GeneratorBodyDefNode, METH_O, 0};
__pyx_pw_6Cython_8Compiler_7Visitor_12EnvTransform_15visit_GeneratorBodyDefNode(PyObject * __pyx_v_self,PyObject * __pyx_v_node)9789 static PyObject *__pyx_pw_6Cython_8Compiler_7Visitor_12EnvTransform_15visit_GeneratorBodyDefNode(PyObject *__pyx_v_self, PyObject *__pyx_v_node) {
9790   PyObject *__pyx_r = 0;
9791   __Pyx_RefNannyDeclarations
9792   __Pyx_RefNannySetupContext("visit_GeneratorBodyDefNode (wrapper)", 0);
9793   __pyx_r = __pyx_pf_6Cython_8Compiler_7Visitor_12EnvTransform_14visit_GeneratorBodyDefNode(((struct __pyx_obj_6Cython_8Compiler_7Visitor_EnvTransform *)__pyx_v_self), ((PyObject *)__pyx_v_node));
9794 
9795   /* function exit code */
9796   __Pyx_RefNannyFinishContext();
9797   return __pyx_r;
9798 }
9799 
__pyx_pf_6Cython_8Compiler_7Visitor_12EnvTransform_14visit_GeneratorBodyDefNode(struct __pyx_obj_6Cython_8Compiler_7Visitor_EnvTransform * __pyx_v_self,PyObject * __pyx_v_node)9800 static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_12EnvTransform_14visit_GeneratorBodyDefNode(struct __pyx_obj_6Cython_8Compiler_7Visitor_EnvTransform *__pyx_v_self, PyObject *__pyx_v_node) {
9801   PyObject *__pyx_r = NULL;
9802   __Pyx_RefNannyDeclarations
9803   PyObject *__pyx_t_1 = NULL;
9804   int __pyx_lineno = 0;
9805   const char *__pyx_filename = NULL;
9806   int __pyx_clineno = 0;
9807   __Pyx_RefNannySetupContext("visit_GeneratorBodyDefNode", 0);
9808 
9809   /* "Cython/Compiler/Visitor.py":379
9810  *
9811  *     def visit_GeneratorBodyDefNode(self, node):
9812  *         self._process_children(node)             # <<<<<<<<<<<<<<
9813  *         return node
9814  *
9815  */
9816   __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_7Visitor_EnvTransform *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.__pyx_vtab)->__pyx_base.__pyx_base._process_children(((struct __pyx_obj_6Cython_8Compiler_7Visitor_VisitorTransform *)__pyx_v_self), __pyx_v_node, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 379, __pyx_L1_error)
9817   __Pyx_GOTREF(__pyx_t_1);
9818   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
9819 
9820   /* "Cython/Compiler/Visitor.py":380
9821  *     def visit_GeneratorBodyDefNode(self, node):
9822  *         self._process_children(node)
9823  *         return node             # <<<<<<<<<<<<<<
9824  *
9825  *     def visit_ClassDefNode(self, node):
9826  */
9827   __Pyx_XDECREF(__pyx_r);
9828   __Pyx_INCREF(__pyx_v_node);
9829   __pyx_r = __pyx_v_node;
9830   goto __pyx_L0;
9831 
9832   /* "Cython/Compiler/Visitor.py":378
9833  *         return node
9834  *
9835  *     def visit_GeneratorBodyDefNode(self, node):             # <<<<<<<<<<<<<<
9836  *         self._process_children(node)
9837  *         return node
9838  */
9839 
9840   /* function exit code */
9841   __pyx_L1_error:;
9842   __Pyx_XDECREF(__pyx_t_1);
9843   __Pyx_AddTraceback("Cython.Compiler.Visitor.EnvTransform.visit_GeneratorBodyDefNode", __pyx_clineno, __pyx_lineno, __pyx_filename);
9844   __pyx_r = NULL;
9845   __pyx_L0:;
9846   __Pyx_XGIVEREF(__pyx_r);
9847   __Pyx_RefNannyFinishContext();
9848   return __pyx_r;
9849 }
9850 
9851 /* "Cython/Compiler/Visitor.py":382
9852  *         return node
9853  *
9854  *     def visit_ClassDefNode(self, node):             # <<<<<<<<<<<<<<
9855  *         self.enter_scope(node, node.scope)
9856  *         self._process_children(node)
9857  */
9858 
9859 /* Python wrapper */
9860 static PyObject *__pyx_pw_6Cython_8Compiler_7Visitor_12EnvTransform_17visit_ClassDefNode(PyObject *__pyx_v_self, PyObject *__pyx_v_node); /*proto*/
9861 static PyMethodDef __pyx_mdef_6Cython_8Compiler_7Visitor_12EnvTransform_17visit_ClassDefNode = {"visit_ClassDefNode", (PyCFunction)__pyx_pw_6Cython_8Compiler_7Visitor_12EnvTransform_17visit_ClassDefNode, METH_O, 0};
__pyx_pw_6Cython_8Compiler_7Visitor_12EnvTransform_17visit_ClassDefNode(PyObject * __pyx_v_self,PyObject * __pyx_v_node)9862 static PyObject *__pyx_pw_6Cython_8Compiler_7Visitor_12EnvTransform_17visit_ClassDefNode(PyObject *__pyx_v_self, PyObject *__pyx_v_node) {
9863   PyObject *__pyx_r = 0;
9864   __Pyx_RefNannyDeclarations
9865   __Pyx_RefNannySetupContext("visit_ClassDefNode (wrapper)", 0);
9866   __pyx_r = __pyx_pf_6Cython_8Compiler_7Visitor_12EnvTransform_16visit_ClassDefNode(((struct __pyx_obj_6Cython_8Compiler_7Visitor_EnvTransform *)__pyx_v_self), ((PyObject *)__pyx_v_node));
9867 
9868   /* function exit code */
9869   __Pyx_RefNannyFinishContext();
9870   return __pyx_r;
9871 }
9872 
__pyx_pf_6Cython_8Compiler_7Visitor_12EnvTransform_16visit_ClassDefNode(struct __pyx_obj_6Cython_8Compiler_7Visitor_EnvTransform * __pyx_v_self,PyObject * __pyx_v_node)9873 static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_12EnvTransform_16visit_ClassDefNode(struct __pyx_obj_6Cython_8Compiler_7Visitor_EnvTransform *__pyx_v_self, PyObject *__pyx_v_node) {
9874   PyObject *__pyx_r = NULL;
9875   __Pyx_RefNannyDeclarations
9876   PyObject *__pyx_t_1 = NULL;
9877   PyObject *__pyx_t_2 = NULL;
9878   PyObject *__pyx_t_3 = NULL;
9879   PyObject *__pyx_t_4 = NULL;
9880   int __pyx_t_5;
9881   PyObject *__pyx_t_6 = NULL;
9882   int __pyx_lineno = 0;
9883   const char *__pyx_filename = NULL;
9884   int __pyx_clineno = 0;
9885   __Pyx_RefNannySetupContext("visit_ClassDefNode", 0);
9886 
9887   /* "Cython/Compiler/Visitor.py":383
9888  *
9889  *     def visit_ClassDefNode(self, node):
9890  *         self.enter_scope(node, node.scope)             # <<<<<<<<<<<<<<
9891  *         self._process_children(node)
9892  *         self.exit_scope()
9893  */
9894   __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_enter_scope); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 383, __pyx_L1_error)
9895   __Pyx_GOTREF(__pyx_t_2);
9896   __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_scope); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 383, __pyx_L1_error)
9897   __Pyx_GOTREF(__pyx_t_3);
9898   __pyx_t_4 = NULL;
9899   __pyx_t_5 = 0;
9900   if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
9901     __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
9902     if (likely(__pyx_t_4)) {
9903       PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
9904       __Pyx_INCREF(__pyx_t_4);
9905       __Pyx_INCREF(function);
9906       __Pyx_DECREF_SET(__pyx_t_2, function);
9907       __pyx_t_5 = 1;
9908     }
9909   }
9910   #if CYTHON_FAST_PYCALL
9911   if (PyFunction_Check(__pyx_t_2)) {
9912     PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_v_node, __pyx_t_3};
9913     __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 383, __pyx_L1_error)
9914     __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
9915     __Pyx_GOTREF(__pyx_t_1);
9916     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
9917   } else
9918   #endif
9919   #if CYTHON_FAST_PYCCALL
9920   if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) {
9921     PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_v_node, __pyx_t_3};
9922     __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 383, __pyx_L1_error)
9923     __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
9924     __Pyx_GOTREF(__pyx_t_1);
9925     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
9926   } else
9927   #endif
9928   {
9929     __pyx_t_6 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 383, __pyx_L1_error)
9930     __Pyx_GOTREF(__pyx_t_6);
9931     if (__pyx_t_4) {
9932       __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4); __pyx_t_4 = NULL;
9933     }
9934     __Pyx_INCREF(__pyx_v_node);
9935     __Pyx_GIVEREF(__pyx_v_node);
9936     PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_5, __pyx_v_node);
9937     __Pyx_GIVEREF(__pyx_t_3);
9938     PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_5, __pyx_t_3);
9939     __pyx_t_3 = 0;
9940     __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_6, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 383, __pyx_L1_error)
9941     __Pyx_GOTREF(__pyx_t_1);
9942     __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
9943   }
9944   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
9945   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
9946 
9947   /* "Cython/Compiler/Visitor.py":384
9948  *     def visit_ClassDefNode(self, node):
9949  *         self.enter_scope(node, node.scope)
9950  *         self._process_children(node)             # <<<<<<<<<<<<<<
9951  *         self.exit_scope()
9952  *         return node
9953  */
9954   __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_7Visitor_EnvTransform *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.__pyx_vtab)->__pyx_base.__pyx_base._process_children(((struct __pyx_obj_6Cython_8Compiler_7Visitor_VisitorTransform *)__pyx_v_self), __pyx_v_node, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 384, __pyx_L1_error)
9955   __Pyx_GOTREF(__pyx_t_1);
9956   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
9957 
9958   /* "Cython/Compiler/Visitor.py":385
9959  *         self.enter_scope(node, node.scope)
9960  *         self._process_children(node)
9961  *         self.exit_scope()             # <<<<<<<<<<<<<<
9962  *         return node
9963  *
9964  */
9965   __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_exit_scope); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 385, __pyx_L1_error)
9966   __Pyx_GOTREF(__pyx_t_2);
9967   __pyx_t_6 = NULL;
9968   if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
9969     __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_2);
9970     if (likely(__pyx_t_6)) {
9971       PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
9972       __Pyx_INCREF(__pyx_t_6);
9973       __Pyx_INCREF(function);
9974       __Pyx_DECREF_SET(__pyx_t_2, function);
9975     }
9976   }
9977   __pyx_t_1 = (__pyx_t_6) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_6) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
9978   __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
9979   if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 385, __pyx_L1_error)
9980   __Pyx_GOTREF(__pyx_t_1);
9981   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
9982   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
9983 
9984   /* "Cython/Compiler/Visitor.py":386
9985  *         self._process_children(node)
9986  *         self.exit_scope()
9987  *         return node             # <<<<<<<<<<<<<<
9988  *
9989  *     def visit_CStructOrUnionDefNode(self, node):
9990  */
9991   __Pyx_XDECREF(__pyx_r);
9992   __Pyx_INCREF(__pyx_v_node);
9993   __pyx_r = __pyx_v_node;
9994   goto __pyx_L0;
9995 
9996   /* "Cython/Compiler/Visitor.py":382
9997  *         return node
9998  *
9999  *     def visit_ClassDefNode(self, node):             # <<<<<<<<<<<<<<
10000  *         self.enter_scope(node, node.scope)
10001  *         self._process_children(node)
10002  */
10003 
10004   /* function exit code */
10005   __pyx_L1_error:;
10006   __Pyx_XDECREF(__pyx_t_1);
10007   __Pyx_XDECREF(__pyx_t_2);
10008   __Pyx_XDECREF(__pyx_t_3);
10009   __Pyx_XDECREF(__pyx_t_4);
10010   __Pyx_XDECREF(__pyx_t_6);
10011   __Pyx_AddTraceback("Cython.Compiler.Visitor.EnvTransform.visit_ClassDefNode", __pyx_clineno, __pyx_lineno, __pyx_filename);
10012   __pyx_r = NULL;
10013   __pyx_L0:;
10014   __Pyx_XGIVEREF(__pyx_r);
10015   __Pyx_RefNannyFinishContext();
10016   return __pyx_r;
10017 }
10018 
10019 /* "Cython/Compiler/Visitor.py":388
10020  *         return node
10021  *
10022  *     def visit_CStructOrUnionDefNode(self, node):             # <<<<<<<<<<<<<<
10023  *         self.enter_scope(node, node.scope)
10024  *         self._process_children(node)
10025  */
10026 
10027 /* Python wrapper */
10028 static PyObject *__pyx_pw_6Cython_8Compiler_7Visitor_12EnvTransform_19visit_CStructOrUnionDefNode(PyObject *__pyx_v_self, PyObject *__pyx_v_node); /*proto*/
10029 static PyMethodDef __pyx_mdef_6Cython_8Compiler_7Visitor_12EnvTransform_19visit_CStructOrUnionDefNode = {"visit_CStructOrUnionDefNode", (PyCFunction)__pyx_pw_6Cython_8Compiler_7Visitor_12EnvTransform_19visit_CStructOrUnionDefNode, METH_O, 0};
__pyx_pw_6Cython_8Compiler_7Visitor_12EnvTransform_19visit_CStructOrUnionDefNode(PyObject * __pyx_v_self,PyObject * __pyx_v_node)10030 static PyObject *__pyx_pw_6Cython_8Compiler_7Visitor_12EnvTransform_19visit_CStructOrUnionDefNode(PyObject *__pyx_v_self, PyObject *__pyx_v_node) {
10031   PyObject *__pyx_r = 0;
10032   __Pyx_RefNannyDeclarations
10033   __Pyx_RefNannySetupContext("visit_CStructOrUnionDefNode (wrapper)", 0);
10034   __pyx_r = __pyx_pf_6Cython_8Compiler_7Visitor_12EnvTransform_18visit_CStructOrUnionDefNode(((struct __pyx_obj_6Cython_8Compiler_7Visitor_EnvTransform *)__pyx_v_self), ((PyObject *)__pyx_v_node));
10035 
10036   /* function exit code */
10037   __Pyx_RefNannyFinishContext();
10038   return __pyx_r;
10039 }
10040 
__pyx_pf_6Cython_8Compiler_7Visitor_12EnvTransform_18visit_CStructOrUnionDefNode(struct __pyx_obj_6Cython_8Compiler_7Visitor_EnvTransform * __pyx_v_self,PyObject * __pyx_v_node)10041 static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_12EnvTransform_18visit_CStructOrUnionDefNode(struct __pyx_obj_6Cython_8Compiler_7Visitor_EnvTransform *__pyx_v_self, PyObject *__pyx_v_node) {
10042   PyObject *__pyx_r = NULL;
10043   __Pyx_RefNannyDeclarations
10044   PyObject *__pyx_t_1 = NULL;
10045   PyObject *__pyx_t_2 = NULL;
10046   PyObject *__pyx_t_3 = NULL;
10047   PyObject *__pyx_t_4 = NULL;
10048   int __pyx_t_5;
10049   PyObject *__pyx_t_6 = NULL;
10050   int __pyx_lineno = 0;
10051   const char *__pyx_filename = NULL;
10052   int __pyx_clineno = 0;
10053   __Pyx_RefNannySetupContext("visit_CStructOrUnionDefNode", 0);
10054 
10055   /* "Cython/Compiler/Visitor.py":389
10056  *
10057  *     def visit_CStructOrUnionDefNode(self, node):
10058  *         self.enter_scope(node, node.scope)             # <<<<<<<<<<<<<<
10059  *         self._process_children(node)
10060  *         self.exit_scope()
10061  */
10062   __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_enter_scope); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 389, __pyx_L1_error)
10063   __Pyx_GOTREF(__pyx_t_2);
10064   __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_scope); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 389, __pyx_L1_error)
10065   __Pyx_GOTREF(__pyx_t_3);
10066   __pyx_t_4 = NULL;
10067   __pyx_t_5 = 0;
10068   if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
10069     __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
10070     if (likely(__pyx_t_4)) {
10071       PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
10072       __Pyx_INCREF(__pyx_t_4);
10073       __Pyx_INCREF(function);
10074       __Pyx_DECREF_SET(__pyx_t_2, function);
10075       __pyx_t_5 = 1;
10076     }
10077   }
10078   #if CYTHON_FAST_PYCALL
10079   if (PyFunction_Check(__pyx_t_2)) {
10080     PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_v_node, __pyx_t_3};
10081     __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 389, __pyx_L1_error)
10082     __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
10083     __Pyx_GOTREF(__pyx_t_1);
10084     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
10085   } else
10086   #endif
10087   #if CYTHON_FAST_PYCCALL
10088   if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) {
10089     PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_v_node, __pyx_t_3};
10090     __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 389, __pyx_L1_error)
10091     __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
10092     __Pyx_GOTREF(__pyx_t_1);
10093     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
10094   } else
10095   #endif
10096   {
10097     __pyx_t_6 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 389, __pyx_L1_error)
10098     __Pyx_GOTREF(__pyx_t_6);
10099     if (__pyx_t_4) {
10100       __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4); __pyx_t_4 = NULL;
10101     }
10102     __Pyx_INCREF(__pyx_v_node);
10103     __Pyx_GIVEREF(__pyx_v_node);
10104     PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_5, __pyx_v_node);
10105     __Pyx_GIVEREF(__pyx_t_3);
10106     PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_5, __pyx_t_3);
10107     __pyx_t_3 = 0;
10108     __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_6, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 389, __pyx_L1_error)
10109     __Pyx_GOTREF(__pyx_t_1);
10110     __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
10111   }
10112   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
10113   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
10114 
10115   /* "Cython/Compiler/Visitor.py":390
10116  *     def visit_CStructOrUnionDefNode(self, node):
10117  *         self.enter_scope(node, node.scope)
10118  *         self._process_children(node)             # <<<<<<<<<<<<<<
10119  *         self.exit_scope()
10120  *         return node
10121  */
10122   __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_7Visitor_EnvTransform *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.__pyx_vtab)->__pyx_base.__pyx_base._process_children(((struct __pyx_obj_6Cython_8Compiler_7Visitor_VisitorTransform *)__pyx_v_self), __pyx_v_node, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 390, __pyx_L1_error)
10123   __Pyx_GOTREF(__pyx_t_1);
10124   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
10125 
10126   /* "Cython/Compiler/Visitor.py":391
10127  *         self.enter_scope(node, node.scope)
10128  *         self._process_children(node)
10129  *         self.exit_scope()             # <<<<<<<<<<<<<<
10130  *         return node
10131  *
10132  */
10133   __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_exit_scope); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 391, __pyx_L1_error)
10134   __Pyx_GOTREF(__pyx_t_2);
10135   __pyx_t_6 = NULL;
10136   if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
10137     __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_2);
10138     if (likely(__pyx_t_6)) {
10139       PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
10140       __Pyx_INCREF(__pyx_t_6);
10141       __Pyx_INCREF(function);
10142       __Pyx_DECREF_SET(__pyx_t_2, function);
10143     }
10144   }
10145   __pyx_t_1 = (__pyx_t_6) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_6) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
10146   __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
10147   if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 391, __pyx_L1_error)
10148   __Pyx_GOTREF(__pyx_t_1);
10149   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
10150   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
10151 
10152   /* "Cython/Compiler/Visitor.py":392
10153  *         self._process_children(node)
10154  *         self.exit_scope()
10155  *         return node             # <<<<<<<<<<<<<<
10156  *
10157  *     def visit_ScopedExprNode(self, node):
10158  */
10159   __Pyx_XDECREF(__pyx_r);
10160   __Pyx_INCREF(__pyx_v_node);
10161   __pyx_r = __pyx_v_node;
10162   goto __pyx_L0;
10163 
10164   /* "Cython/Compiler/Visitor.py":388
10165  *         return node
10166  *
10167  *     def visit_CStructOrUnionDefNode(self, node):             # <<<<<<<<<<<<<<
10168  *         self.enter_scope(node, node.scope)
10169  *         self._process_children(node)
10170  */
10171 
10172   /* function exit code */
10173   __pyx_L1_error:;
10174   __Pyx_XDECREF(__pyx_t_1);
10175   __Pyx_XDECREF(__pyx_t_2);
10176   __Pyx_XDECREF(__pyx_t_3);
10177   __Pyx_XDECREF(__pyx_t_4);
10178   __Pyx_XDECREF(__pyx_t_6);
10179   __Pyx_AddTraceback("Cython.Compiler.Visitor.EnvTransform.visit_CStructOrUnionDefNode", __pyx_clineno, __pyx_lineno, __pyx_filename);
10180   __pyx_r = NULL;
10181   __pyx_L0:;
10182   __Pyx_XGIVEREF(__pyx_r);
10183   __Pyx_RefNannyFinishContext();
10184   return __pyx_r;
10185 }
10186 
10187 /* "Cython/Compiler/Visitor.py":394
10188  *         return node
10189  *
10190  *     def visit_ScopedExprNode(self, node):             # <<<<<<<<<<<<<<
10191  *         if node.expr_scope:
10192  *             self.enter_scope(node, node.expr_scope)
10193  */
10194 
10195 /* Python wrapper */
10196 static PyObject *__pyx_pw_6Cython_8Compiler_7Visitor_12EnvTransform_21visit_ScopedExprNode(PyObject *__pyx_v_self, PyObject *__pyx_v_node); /*proto*/
10197 static PyMethodDef __pyx_mdef_6Cython_8Compiler_7Visitor_12EnvTransform_21visit_ScopedExprNode = {"visit_ScopedExprNode", (PyCFunction)__pyx_pw_6Cython_8Compiler_7Visitor_12EnvTransform_21visit_ScopedExprNode, METH_O, 0};
__pyx_pw_6Cython_8Compiler_7Visitor_12EnvTransform_21visit_ScopedExprNode(PyObject * __pyx_v_self,PyObject * __pyx_v_node)10198 static PyObject *__pyx_pw_6Cython_8Compiler_7Visitor_12EnvTransform_21visit_ScopedExprNode(PyObject *__pyx_v_self, PyObject *__pyx_v_node) {
10199   PyObject *__pyx_r = 0;
10200   __Pyx_RefNannyDeclarations
10201   __Pyx_RefNannySetupContext("visit_ScopedExprNode (wrapper)", 0);
10202   __pyx_r = __pyx_pf_6Cython_8Compiler_7Visitor_12EnvTransform_20visit_ScopedExprNode(((struct __pyx_obj_6Cython_8Compiler_7Visitor_EnvTransform *)__pyx_v_self), ((PyObject *)__pyx_v_node));
10203 
10204   /* function exit code */
10205   __Pyx_RefNannyFinishContext();
10206   return __pyx_r;
10207 }
10208 
__pyx_pf_6Cython_8Compiler_7Visitor_12EnvTransform_20visit_ScopedExprNode(struct __pyx_obj_6Cython_8Compiler_7Visitor_EnvTransform * __pyx_v_self,PyObject * __pyx_v_node)10209 static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_12EnvTransform_20visit_ScopedExprNode(struct __pyx_obj_6Cython_8Compiler_7Visitor_EnvTransform *__pyx_v_self, PyObject *__pyx_v_node) {
10210   PyObject *__pyx_r = NULL;
10211   __Pyx_RefNannyDeclarations
10212   PyObject *__pyx_t_1 = NULL;
10213   int __pyx_t_2;
10214   PyObject *__pyx_t_3 = NULL;
10215   PyObject *__pyx_t_4 = NULL;
10216   PyObject *__pyx_t_5 = NULL;
10217   int __pyx_t_6;
10218   PyObject *__pyx_t_7 = NULL;
10219   int __pyx_lineno = 0;
10220   const char *__pyx_filename = NULL;
10221   int __pyx_clineno = 0;
10222   __Pyx_RefNannySetupContext("visit_ScopedExprNode", 0);
10223 
10224   /* "Cython/Compiler/Visitor.py":395
10225  *
10226  *     def visit_ScopedExprNode(self, node):
10227  *         if node.expr_scope:             # <<<<<<<<<<<<<<
10228  *             self.enter_scope(node, node.expr_scope)
10229  *             self._process_children(node)
10230  */
10231   __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_expr_scope); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 395, __pyx_L1_error)
10232   __Pyx_GOTREF(__pyx_t_1);
10233   __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 395, __pyx_L1_error)
10234   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
10235   if (__pyx_t_2) {
10236 
10237     /* "Cython/Compiler/Visitor.py":396
10238  *     def visit_ScopedExprNode(self, node):
10239  *         if node.expr_scope:
10240  *             self.enter_scope(node, node.expr_scope)             # <<<<<<<<<<<<<<
10241  *             self._process_children(node)
10242  *             self.exit_scope()
10243  */
10244     __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_enter_scope); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 396, __pyx_L1_error)
10245     __Pyx_GOTREF(__pyx_t_3);
10246     __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_expr_scope); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 396, __pyx_L1_error)
10247     __Pyx_GOTREF(__pyx_t_4);
10248     __pyx_t_5 = NULL;
10249     __pyx_t_6 = 0;
10250     if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
10251       __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
10252       if (likely(__pyx_t_5)) {
10253         PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
10254         __Pyx_INCREF(__pyx_t_5);
10255         __Pyx_INCREF(function);
10256         __Pyx_DECREF_SET(__pyx_t_3, function);
10257         __pyx_t_6 = 1;
10258       }
10259     }
10260     #if CYTHON_FAST_PYCALL
10261     if (PyFunction_Check(__pyx_t_3)) {
10262       PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_v_node, __pyx_t_4};
10263       __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 396, __pyx_L1_error)
10264       __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
10265       __Pyx_GOTREF(__pyx_t_1);
10266       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
10267     } else
10268     #endif
10269     #if CYTHON_FAST_PYCCALL
10270     if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
10271       PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_v_node, __pyx_t_4};
10272       __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 396, __pyx_L1_error)
10273       __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
10274       __Pyx_GOTREF(__pyx_t_1);
10275       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
10276     } else
10277     #endif
10278     {
10279       __pyx_t_7 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 396, __pyx_L1_error)
10280       __Pyx_GOTREF(__pyx_t_7);
10281       if (__pyx_t_5) {
10282         __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5); __pyx_t_5 = NULL;
10283       }
10284       __Pyx_INCREF(__pyx_v_node);
10285       __Pyx_GIVEREF(__pyx_v_node);
10286       PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_6, __pyx_v_node);
10287       __Pyx_GIVEREF(__pyx_t_4);
10288       PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_6, __pyx_t_4);
10289       __pyx_t_4 = 0;
10290       __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_7, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 396, __pyx_L1_error)
10291       __Pyx_GOTREF(__pyx_t_1);
10292       __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
10293     }
10294     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
10295     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
10296 
10297     /* "Cython/Compiler/Visitor.py":397
10298  *         if node.expr_scope:
10299  *             self.enter_scope(node, node.expr_scope)
10300  *             self._process_children(node)             # <<<<<<<<<<<<<<
10301  *             self.exit_scope()
10302  *         else:
10303  */
10304     __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_7Visitor_EnvTransform *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.__pyx_vtab)->__pyx_base.__pyx_base._process_children(((struct __pyx_obj_6Cython_8Compiler_7Visitor_VisitorTransform *)__pyx_v_self), __pyx_v_node, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 397, __pyx_L1_error)
10305     __Pyx_GOTREF(__pyx_t_1);
10306     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
10307 
10308     /* "Cython/Compiler/Visitor.py":398
10309  *             self.enter_scope(node, node.expr_scope)
10310  *             self._process_children(node)
10311  *             self.exit_scope()             # <<<<<<<<<<<<<<
10312  *         else:
10313  *             self._process_children(node)
10314  */
10315     __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_exit_scope); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 398, __pyx_L1_error)
10316     __Pyx_GOTREF(__pyx_t_3);
10317     __pyx_t_7 = NULL;
10318     if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
10319       __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_3);
10320       if (likely(__pyx_t_7)) {
10321         PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
10322         __Pyx_INCREF(__pyx_t_7);
10323         __Pyx_INCREF(function);
10324         __Pyx_DECREF_SET(__pyx_t_3, function);
10325       }
10326     }
10327     __pyx_t_1 = (__pyx_t_7) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_7) : __Pyx_PyObject_CallNoArg(__pyx_t_3);
10328     __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
10329     if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 398, __pyx_L1_error)
10330     __Pyx_GOTREF(__pyx_t_1);
10331     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
10332     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
10333 
10334     /* "Cython/Compiler/Visitor.py":395
10335  *
10336  *     def visit_ScopedExprNode(self, node):
10337  *         if node.expr_scope:             # <<<<<<<<<<<<<<
10338  *             self.enter_scope(node, node.expr_scope)
10339  *             self._process_children(node)
10340  */
10341     goto __pyx_L3;
10342   }
10343 
10344   /* "Cython/Compiler/Visitor.py":400
10345  *             self.exit_scope()
10346  *         else:
10347  *             self._process_children(node)             # <<<<<<<<<<<<<<
10348  *         return node
10349  *
10350  */
10351   /*else*/ {
10352     __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_7Visitor_EnvTransform *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.__pyx_vtab)->__pyx_base.__pyx_base._process_children(((struct __pyx_obj_6Cython_8Compiler_7Visitor_VisitorTransform *)__pyx_v_self), __pyx_v_node, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 400, __pyx_L1_error)
10353     __Pyx_GOTREF(__pyx_t_1);
10354     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
10355   }
10356   __pyx_L3:;
10357 
10358   /* "Cython/Compiler/Visitor.py":401
10359  *         else:
10360  *             self._process_children(node)
10361  *         return node             # <<<<<<<<<<<<<<
10362  *
10363  *     def visit_CArgDeclNode(self, node):
10364  */
10365   __Pyx_XDECREF(__pyx_r);
10366   __Pyx_INCREF(__pyx_v_node);
10367   __pyx_r = __pyx_v_node;
10368   goto __pyx_L0;
10369 
10370   /* "Cython/Compiler/Visitor.py":394
10371  *         return node
10372  *
10373  *     def visit_ScopedExprNode(self, node):             # <<<<<<<<<<<<<<
10374  *         if node.expr_scope:
10375  *             self.enter_scope(node, node.expr_scope)
10376  */
10377 
10378   /* function exit code */
10379   __pyx_L1_error:;
10380   __Pyx_XDECREF(__pyx_t_1);
10381   __Pyx_XDECREF(__pyx_t_3);
10382   __Pyx_XDECREF(__pyx_t_4);
10383   __Pyx_XDECREF(__pyx_t_5);
10384   __Pyx_XDECREF(__pyx_t_7);
10385   __Pyx_AddTraceback("Cython.Compiler.Visitor.EnvTransform.visit_ScopedExprNode", __pyx_clineno, __pyx_lineno, __pyx_filename);
10386   __pyx_r = NULL;
10387   __pyx_L0:;
10388   __Pyx_XGIVEREF(__pyx_r);
10389   __Pyx_RefNannyFinishContext();
10390   return __pyx_r;
10391 }
10392 
10393 /* "Cython/Compiler/Visitor.py":403
10394  *         return node
10395  *
10396  *     def visit_CArgDeclNode(self, node):             # <<<<<<<<<<<<<<
10397  *         # default arguments are evaluated in the outer scope
10398  *         if node.default:
10399  */
10400 
10401 /* Python wrapper */
10402 static PyObject *__pyx_pw_6Cython_8Compiler_7Visitor_12EnvTransform_23visit_CArgDeclNode(PyObject *__pyx_v_self, PyObject *__pyx_v_node); /*proto*/
10403 static PyMethodDef __pyx_mdef_6Cython_8Compiler_7Visitor_12EnvTransform_23visit_CArgDeclNode = {"visit_CArgDeclNode", (PyCFunction)__pyx_pw_6Cython_8Compiler_7Visitor_12EnvTransform_23visit_CArgDeclNode, METH_O, 0};
__pyx_pw_6Cython_8Compiler_7Visitor_12EnvTransform_23visit_CArgDeclNode(PyObject * __pyx_v_self,PyObject * __pyx_v_node)10404 static PyObject *__pyx_pw_6Cython_8Compiler_7Visitor_12EnvTransform_23visit_CArgDeclNode(PyObject *__pyx_v_self, PyObject *__pyx_v_node) {
10405   PyObject *__pyx_r = 0;
10406   __Pyx_RefNannyDeclarations
10407   __Pyx_RefNannySetupContext("visit_CArgDeclNode (wrapper)", 0);
10408   __pyx_r = __pyx_pf_6Cython_8Compiler_7Visitor_12EnvTransform_22visit_CArgDeclNode(((struct __pyx_obj_6Cython_8Compiler_7Visitor_EnvTransform *)__pyx_v_self), ((PyObject *)__pyx_v_node));
10409 
10410   /* function exit code */
10411   __Pyx_RefNannyFinishContext();
10412   return __pyx_r;
10413 }
10414 
__pyx_pf_6Cython_8Compiler_7Visitor_12EnvTransform_22visit_CArgDeclNode(struct __pyx_obj_6Cython_8Compiler_7Visitor_EnvTransform * __pyx_v_self,PyObject * __pyx_v_node)10415 static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_12EnvTransform_22visit_CArgDeclNode(struct __pyx_obj_6Cython_8Compiler_7Visitor_EnvTransform *__pyx_v_self, PyObject *__pyx_v_node) {
10416   PyObject *__pyx_v_attrs = NULL;
10417   PyObject *__pyx_8genexpr2__pyx_v_attr = NULL;
10418   PyObject *__pyx_r = NULL;
10419   __Pyx_RefNannyDeclarations
10420   PyObject *__pyx_t_1 = NULL;
10421   int __pyx_t_2;
10422   PyObject *__pyx_t_3 = NULL;
10423   PyObject *__pyx_t_4 = NULL;
10424   Py_ssize_t __pyx_t_5;
10425   PyObject *(*__pyx_t_6)(PyObject *);
10426   struct __pyx_opt_args_6Cython_8Compiler_7Visitor_16VisitorTransform__process_children __pyx_t_7;
10427   PyObject *__pyx_t_8 = NULL;
10428   PyObject *__pyx_t_9 = NULL;
10429   int __pyx_t_10;
10430   struct __pyx_opt_args_6Cython_8Compiler_7Visitor_16VisitorTransform_visitchildren __pyx_t_11;
10431   int __pyx_lineno = 0;
10432   const char *__pyx_filename = NULL;
10433   int __pyx_clineno = 0;
10434   __Pyx_RefNannySetupContext("visit_CArgDeclNode", 0);
10435 
10436   /* "Cython/Compiler/Visitor.py":405
10437  *     def visit_CArgDeclNode(self, node):
10438  *         # default arguments are evaluated in the outer scope
10439  *         if node.default:             # <<<<<<<<<<<<<<
10440  *             attrs = [attr for attr in node.child_attrs if attr != 'default']
10441  *             self._process_children(node, attrs)
10442  */
10443   __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_default); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 405, __pyx_L1_error)
10444   __Pyx_GOTREF(__pyx_t_1);
10445   __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 405, __pyx_L1_error)
10446   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
10447   if (__pyx_t_2) {
10448 
10449     /* "Cython/Compiler/Visitor.py":406
10450  *         # default arguments are evaluated in the outer scope
10451  *         if node.default:
10452  *             attrs = [attr for attr in node.child_attrs if attr != 'default']             # <<<<<<<<<<<<<<
10453  *             self._process_children(node, attrs)
10454  *             self.enter_scope(node, self.current_env().outer_scope)
10455  */
10456     { /* enter inner scope */
10457       __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 406, __pyx_L6_error)
10458       __Pyx_GOTREF(__pyx_t_1);
10459       __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_child_attrs); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 406, __pyx_L6_error)
10460       __Pyx_GOTREF(__pyx_t_3);
10461       if (likely(PyList_CheckExact(__pyx_t_3)) || PyTuple_CheckExact(__pyx_t_3)) {
10462         __pyx_t_4 = __pyx_t_3; __Pyx_INCREF(__pyx_t_4); __pyx_t_5 = 0;
10463         __pyx_t_6 = NULL;
10464       } else {
10465         __pyx_t_5 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 406, __pyx_L6_error)
10466         __Pyx_GOTREF(__pyx_t_4);
10467         __pyx_t_6 = Py_TYPE(__pyx_t_4)->tp_iternext; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 406, __pyx_L6_error)
10468       }
10469       __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
10470       for (;;) {
10471         if (likely(!__pyx_t_6)) {
10472           if (likely(PyList_CheckExact(__pyx_t_4))) {
10473             if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_4)) break;
10474             #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
10475             __pyx_t_3 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_5); __Pyx_INCREF(__pyx_t_3); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 406, __pyx_L6_error)
10476             #else
10477             __pyx_t_3 = PySequence_ITEM(__pyx_t_4, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 406, __pyx_L6_error)
10478             __Pyx_GOTREF(__pyx_t_3);
10479             #endif
10480           } else {
10481             if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_4)) break;
10482             #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
10483             __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_5); __Pyx_INCREF(__pyx_t_3); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 406, __pyx_L6_error)
10484             #else
10485             __pyx_t_3 = PySequence_ITEM(__pyx_t_4, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 406, __pyx_L6_error)
10486             __Pyx_GOTREF(__pyx_t_3);
10487             #endif
10488           }
10489         } else {
10490           __pyx_t_3 = __pyx_t_6(__pyx_t_4);
10491           if (unlikely(!__pyx_t_3)) {
10492             PyObject* exc_type = PyErr_Occurred();
10493             if (exc_type) {
10494               if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
10495               else __PYX_ERR(0, 406, __pyx_L6_error)
10496             }
10497             break;
10498           }
10499           __Pyx_GOTREF(__pyx_t_3);
10500         }
10501         __Pyx_XDECREF_SET(__pyx_8genexpr2__pyx_v_attr, __pyx_t_3);
10502         __pyx_t_3 = 0;
10503         __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_8genexpr2__pyx_v_attr, __pyx_n_u_default, Py_NE)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 406, __pyx_L6_error)
10504         if (__pyx_t_2) {
10505           if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_8genexpr2__pyx_v_attr))) __PYX_ERR(0, 406, __pyx_L6_error)
10506         }
10507       }
10508       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
10509       __Pyx_XDECREF(__pyx_8genexpr2__pyx_v_attr); __pyx_8genexpr2__pyx_v_attr = 0;
10510       goto __pyx_L10_exit_scope;
10511       __pyx_L6_error:;
10512       __Pyx_XDECREF(__pyx_8genexpr2__pyx_v_attr); __pyx_8genexpr2__pyx_v_attr = 0;
10513       goto __pyx_L1_error;
10514       __pyx_L10_exit_scope:;
10515     } /* exit inner scope */
10516     __pyx_v_attrs = ((PyObject*)__pyx_t_1);
10517     __pyx_t_1 = 0;
10518 
10519     /* "Cython/Compiler/Visitor.py":407
10520  *         if node.default:
10521  *             attrs = [attr for attr in node.child_attrs if attr != 'default']
10522  *             self._process_children(node, attrs)             # <<<<<<<<<<<<<<
10523  *             self.enter_scope(node, self.current_env().outer_scope)
10524  *             self.visitchildren(node, ('default',))
10525  */
10526     __pyx_t_7.__pyx_n = 1;
10527     __pyx_t_7.attrs = __pyx_v_attrs;
10528     __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_7Visitor_EnvTransform *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.__pyx_vtab)->__pyx_base.__pyx_base._process_children(((struct __pyx_obj_6Cython_8Compiler_7Visitor_VisitorTransform *)__pyx_v_self), __pyx_v_node, &__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 407, __pyx_L1_error)
10529     __Pyx_GOTREF(__pyx_t_1);
10530     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
10531 
10532     /* "Cython/Compiler/Visitor.py":408
10533  *             attrs = [attr for attr in node.child_attrs if attr != 'default']
10534  *             self._process_children(node, attrs)
10535  *             self.enter_scope(node, self.current_env().outer_scope)             # <<<<<<<<<<<<<<
10536  *             self.visitchildren(node, ('default',))
10537  *             self.exit_scope()
10538  */
10539     __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_enter_scope); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 408, __pyx_L1_error)
10540     __Pyx_GOTREF(__pyx_t_4);
10541     __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_current_env); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 408, __pyx_L1_error)
10542     __Pyx_GOTREF(__pyx_t_8);
10543     __pyx_t_9 = NULL;
10544     if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
10545       __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_8);
10546       if (likely(__pyx_t_9)) {
10547         PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
10548         __Pyx_INCREF(__pyx_t_9);
10549         __Pyx_INCREF(function);
10550         __Pyx_DECREF_SET(__pyx_t_8, function);
10551       }
10552     }
10553     __pyx_t_3 = (__pyx_t_9) ? __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_9) : __Pyx_PyObject_CallNoArg(__pyx_t_8);
10554     __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
10555     if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 408, __pyx_L1_error)
10556     __Pyx_GOTREF(__pyx_t_3);
10557     __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
10558     __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_outer_scope); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 408, __pyx_L1_error)
10559     __Pyx_GOTREF(__pyx_t_8);
10560     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
10561     __pyx_t_3 = NULL;
10562     __pyx_t_10 = 0;
10563     if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
10564       __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4);
10565       if (likely(__pyx_t_3)) {
10566         PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
10567         __Pyx_INCREF(__pyx_t_3);
10568         __Pyx_INCREF(function);
10569         __Pyx_DECREF_SET(__pyx_t_4, function);
10570         __pyx_t_10 = 1;
10571       }
10572     }
10573     #if CYTHON_FAST_PYCALL
10574     if (PyFunction_Check(__pyx_t_4)) {
10575       PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_v_node, __pyx_t_8};
10576       __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_10, 2+__pyx_t_10); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 408, __pyx_L1_error)
10577       __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
10578       __Pyx_GOTREF(__pyx_t_1);
10579       __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
10580     } else
10581     #endif
10582     #if CYTHON_FAST_PYCCALL
10583     if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) {
10584       PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_v_node, __pyx_t_8};
10585       __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_10, 2+__pyx_t_10); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 408, __pyx_L1_error)
10586       __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
10587       __Pyx_GOTREF(__pyx_t_1);
10588       __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
10589     } else
10590     #endif
10591     {
10592       __pyx_t_9 = PyTuple_New(2+__pyx_t_10); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 408, __pyx_L1_error)
10593       __Pyx_GOTREF(__pyx_t_9);
10594       if (__pyx_t_3) {
10595         __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_3); __pyx_t_3 = NULL;
10596       }
10597       __Pyx_INCREF(__pyx_v_node);
10598       __Pyx_GIVEREF(__pyx_v_node);
10599       PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_10, __pyx_v_node);
10600       __Pyx_GIVEREF(__pyx_t_8);
10601       PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_10, __pyx_t_8);
10602       __pyx_t_8 = 0;
10603       __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_9, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 408, __pyx_L1_error)
10604       __Pyx_GOTREF(__pyx_t_1);
10605       __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
10606     }
10607     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
10608     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
10609 
10610     /* "Cython/Compiler/Visitor.py":409
10611  *             self._process_children(node, attrs)
10612  *             self.enter_scope(node, self.current_env().outer_scope)
10613  *             self.visitchildren(node, ('default',))             # <<<<<<<<<<<<<<
10614  *             self.exit_scope()
10615  *         else:
10616  */
10617     __pyx_t_11.__pyx_n = 1;
10618     __pyx_t_11.attrs = __pyx_tuple__11;
10619     __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_7Visitor_EnvTransform *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.__pyx_vtab)->__pyx_base.__pyx_base.visitchildren(((struct __pyx_obj_6Cython_8Compiler_7Visitor_VisitorTransform *)__pyx_v_self), __pyx_v_node, 0, &__pyx_t_11); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 409, __pyx_L1_error)
10620     __Pyx_GOTREF(__pyx_t_1);
10621     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
10622 
10623     /* "Cython/Compiler/Visitor.py":410
10624  *             self.enter_scope(node, self.current_env().outer_scope)
10625  *             self.visitchildren(node, ('default',))
10626  *             self.exit_scope()             # <<<<<<<<<<<<<<
10627  *         else:
10628  *             self._process_children(node)
10629  */
10630     __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_exit_scope); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 410, __pyx_L1_error)
10631     __Pyx_GOTREF(__pyx_t_4);
10632     __pyx_t_9 = NULL;
10633     if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
10634       __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_4);
10635       if (likely(__pyx_t_9)) {
10636         PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
10637         __Pyx_INCREF(__pyx_t_9);
10638         __Pyx_INCREF(function);
10639         __Pyx_DECREF_SET(__pyx_t_4, function);
10640       }
10641     }
10642     __pyx_t_1 = (__pyx_t_9) ? __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_9) : __Pyx_PyObject_CallNoArg(__pyx_t_4);
10643     __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
10644     if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 410, __pyx_L1_error)
10645     __Pyx_GOTREF(__pyx_t_1);
10646     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
10647     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
10648 
10649     /* "Cython/Compiler/Visitor.py":405
10650  *     def visit_CArgDeclNode(self, node):
10651  *         # default arguments are evaluated in the outer scope
10652  *         if node.default:             # <<<<<<<<<<<<<<
10653  *             attrs = [attr for attr in node.child_attrs if attr != 'default']
10654  *             self._process_children(node, attrs)
10655  */
10656     goto __pyx_L3;
10657   }
10658 
10659   /* "Cython/Compiler/Visitor.py":412
10660  *             self.exit_scope()
10661  *         else:
10662  *             self._process_children(node)             # <<<<<<<<<<<<<<
10663  *         return node
10664  *
10665  */
10666   /*else*/ {
10667     __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_7Visitor_EnvTransform *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.__pyx_vtab)->__pyx_base.__pyx_base._process_children(((struct __pyx_obj_6Cython_8Compiler_7Visitor_VisitorTransform *)__pyx_v_self), __pyx_v_node, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 412, __pyx_L1_error)
10668     __Pyx_GOTREF(__pyx_t_1);
10669     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
10670   }
10671   __pyx_L3:;
10672 
10673   /* "Cython/Compiler/Visitor.py":413
10674  *         else:
10675  *             self._process_children(node)
10676  *         return node             # <<<<<<<<<<<<<<
10677  *
10678  *
10679  */
10680   __Pyx_XDECREF(__pyx_r);
10681   __Pyx_INCREF(__pyx_v_node);
10682   __pyx_r = __pyx_v_node;
10683   goto __pyx_L0;
10684 
10685   /* "Cython/Compiler/Visitor.py":403
10686  *         return node
10687  *
10688  *     def visit_CArgDeclNode(self, node):             # <<<<<<<<<<<<<<
10689  *         # default arguments are evaluated in the outer scope
10690  *         if node.default:
10691  */
10692 
10693   /* function exit code */
10694   __pyx_L1_error:;
10695   __Pyx_XDECREF(__pyx_t_1);
10696   __Pyx_XDECREF(__pyx_t_3);
10697   __Pyx_XDECREF(__pyx_t_4);
10698   __Pyx_XDECREF(__pyx_t_8);
10699   __Pyx_XDECREF(__pyx_t_9);
10700   __Pyx_AddTraceback("Cython.Compiler.Visitor.EnvTransform.visit_CArgDeclNode", __pyx_clineno, __pyx_lineno, __pyx_filename);
10701   __pyx_r = NULL;
10702   __pyx_L0:;
10703   __Pyx_XDECREF(__pyx_v_attrs);
10704   __Pyx_XDECREF(__pyx_8genexpr2__pyx_v_attr);
10705   __Pyx_XGIVEREF(__pyx_r);
10706   __Pyx_RefNannyFinishContext();
10707   return __pyx_r;
10708 }
10709 
10710 /* "Cython/Compiler/Visitor.pxd":33
10711  *
10712  * cdef class EnvTransform(CythonTransform):
10713  *     cdef public list env_stack             # <<<<<<<<<<<<<<
10714  *
10715  * cdef class MethodDispatcherTransform(EnvTransform):
10716  */
10717 
10718 /* Python wrapper */
10719 static PyObject *__pyx_pw_6Cython_8Compiler_7Visitor_12EnvTransform_9env_stack_1__get__(PyObject *__pyx_v_self); /*proto*/
__pyx_pw_6Cython_8Compiler_7Visitor_12EnvTransform_9env_stack_1__get__(PyObject * __pyx_v_self)10720 static PyObject *__pyx_pw_6Cython_8Compiler_7Visitor_12EnvTransform_9env_stack_1__get__(PyObject *__pyx_v_self) {
10721   PyObject *__pyx_r = 0;
10722   __Pyx_RefNannyDeclarations
10723   __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
10724   __pyx_r = __pyx_pf_6Cython_8Compiler_7Visitor_12EnvTransform_9env_stack___get__(((struct __pyx_obj_6Cython_8Compiler_7Visitor_EnvTransform *)__pyx_v_self));
10725 
10726   /* function exit code */
10727   __Pyx_RefNannyFinishContext();
10728   return __pyx_r;
10729 }
10730 
__pyx_pf_6Cython_8Compiler_7Visitor_12EnvTransform_9env_stack___get__(struct __pyx_obj_6Cython_8Compiler_7Visitor_EnvTransform * __pyx_v_self)10731 static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_12EnvTransform_9env_stack___get__(struct __pyx_obj_6Cython_8Compiler_7Visitor_EnvTransform *__pyx_v_self) {
10732   PyObject *__pyx_r = NULL;
10733   __Pyx_RefNannyDeclarations
10734   __Pyx_RefNannySetupContext("__get__", 0);
10735   __Pyx_XDECREF(__pyx_r);
10736   __Pyx_INCREF(__pyx_v_self->env_stack);
10737   __pyx_r = __pyx_v_self->env_stack;
10738   goto __pyx_L0;
10739 
10740   /* function exit code */
10741   __pyx_L0:;
10742   __Pyx_XGIVEREF(__pyx_r);
10743   __Pyx_RefNannyFinishContext();
10744   return __pyx_r;
10745 }
10746 
10747 /* Python wrapper */
10748 static int __pyx_pw_6Cython_8Compiler_7Visitor_12EnvTransform_9env_stack_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
__pyx_pw_6Cython_8Compiler_7Visitor_12EnvTransform_9env_stack_3__set__(PyObject * __pyx_v_self,PyObject * __pyx_v_value)10749 static int __pyx_pw_6Cython_8Compiler_7Visitor_12EnvTransform_9env_stack_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
10750   int __pyx_r;
10751   __Pyx_RefNannyDeclarations
10752   __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
10753   __pyx_r = __pyx_pf_6Cython_8Compiler_7Visitor_12EnvTransform_9env_stack_2__set__(((struct __pyx_obj_6Cython_8Compiler_7Visitor_EnvTransform *)__pyx_v_self), ((PyObject *)__pyx_v_value));
10754 
10755   /* function exit code */
10756   __Pyx_RefNannyFinishContext();
10757   return __pyx_r;
10758 }
10759 
__pyx_pf_6Cython_8Compiler_7Visitor_12EnvTransform_9env_stack_2__set__(struct __pyx_obj_6Cython_8Compiler_7Visitor_EnvTransform * __pyx_v_self,PyObject * __pyx_v_value)10760 static int __pyx_pf_6Cython_8Compiler_7Visitor_12EnvTransform_9env_stack_2__set__(struct __pyx_obj_6Cython_8Compiler_7Visitor_EnvTransform *__pyx_v_self, PyObject *__pyx_v_value) {
10761   int __pyx_r;
10762   __Pyx_RefNannyDeclarations
10763   PyObject *__pyx_t_1 = NULL;
10764   int __pyx_lineno = 0;
10765   const char *__pyx_filename = NULL;
10766   int __pyx_clineno = 0;
10767   __Pyx_RefNannySetupContext("__set__", 0);
10768   if (!(likely(PyList_CheckExact(__pyx_v_value))||((__pyx_v_value) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "list", Py_TYPE(__pyx_v_value)->tp_name), 0))) __PYX_ERR(1, 33, __pyx_L1_error)
10769   __pyx_t_1 = __pyx_v_value;
10770   __Pyx_INCREF(__pyx_t_1);
10771   __Pyx_GIVEREF(__pyx_t_1);
10772   __Pyx_GOTREF(__pyx_v_self->env_stack);
10773   __Pyx_DECREF(__pyx_v_self->env_stack);
10774   __pyx_v_self->env_stack = ((PyObject*)__pyx_t_1);
10775   __pyx_t_1 = 0;
10776 
10777   /* function exit code */
10778   __pyx_r = 0;
10779   goto __pyx_L0;
10780   __pyx_L1_error:;
10781   __Pyx_XDECREF(__pyx_t_1);
10782   __Pyx_AddTraceback("Cython.Compiler.Visitor.EnvTransform.env_stack.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
10783   __pyx_r = -1;
10784   __pyx_L0:;
10785   __Pyx_RefNannyFinishContext();
10786   return __pyx_r;
10787 }
10788 
10789 /* Python wrapper */
10790 static int __pyx_pw_6Cython_8Compiler_7Visitor_12EnvTransform_9env_stack_5__del__(PyObject *__pyx_v_self); /*proto*/
__pyx_pw_6Cython_8Compiler_7Visitor_12EnvTransform_9env_stack_5__del__(PyObject * __pyx_v_self)10791 static int __pyx_pw_6Cython_8Compiler_7Visitor_12EnvTransform_9env_stack_5__del__(PyObject *__pyx_v_self) {
10792   int __pyx_r;
10793   __Pyx_RefNannyDeclarations
10794   __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
10795   __pyx_r = __pyx_pf_6Cython_8Compiler_7Visitor_12EnvTransform_9env_stack_4__del__(((struct __pyx_obj_6Cython_8Compiler_7Visitor_EnvTransform *)__pyx_v_self));
10796 
10797   /* function exit code */
10798   __Pyx_RefNannyFinishContext();
10799   return __pyx_r;
10800 }
10801 
__pyx_pf_6Cython_8Compiler_7Visitor_12EnvTransform_9env_stack_4__del__(struct __pyx_obj_6Cython_8Compiler_7Visitor_EnvTransform * __pyx_v_self)10802 static int __pyx_pf_6Cython_8Compiler_7Visitor_12EnvTransform_9env_stack_4__del__(struct __pyx_obj_6Cython_8Compiler_7Visitor_EnvTransform *__pyx_v_self) {
10803   int __pyx_r;
10804   __Pyx_RefNannyDeclarations
10805   __Pyx_RefNannySetupContext("__del__", 0);
10806   __Pyx_INCREF(Py_None);
10807   __Pyx_GIVEREF(Py_None);
10808   __Pyx_GOTREF(__pyx_v_self->env_stack);
10809   __Pyx_DECREF(__pyx_v_self->env_stack);
10810   __pyx_v_self->env_stack = ((PyObject*)Py_None);
10811 
10812   /* function exit code */
10813   __pyx_r = 0;
10814   __Pyx_RefNannyFinishContext();
10815   return __pyx_r;
10816 }
10817 
10818 /* "Cython/Compiler/Visitor.py":426
10819  *     and by ordering the "child_attrs" of nodes appropriately.
10820  *     """
10821  *     def __init__(self, *args):             # <<<<<<<<<<<<<<
10822  *         super(NodeRefCleanupMixin, self).__init__(*args)
10823  *         self._replacements = {}
10824  */
10825 
10826 /* Python wrapper */
10827 static PyObject *__pyx_pw_6Cython_8Compiler_7Visitor_19NodeRefCleanupMixin_1__init__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
10828 static PyMethodDef __pyx_mdef_6Cython_8Compiler_7Visitor_19NodeRefCleanupMixin_1__init__ = {"__init__", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6Cython_8Compiler_7Visitor_19NodeRefCleanupMixin_1__init__, METH_VARARGS|METH_KEYWORDS, 0};
__pyx_pw_6Cython_8Compiler_7Visitor_19NodeRefCleanupMixin_1__init__(PyObject * __pyx_self,PyObject * __pyx_args,PyObject * __pyx_kwds)10829 static PyObject *__pyx_pw_6Cython_8Compiler_7Visitor_19NodeRefCleanupMixin_1__init__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
10830   PyObject *__pyx_v_self = 0;
10831   PyObject *__pyx_v_args = 0;
10832   int __pyx_lineno = 0;
10833   const char *__pyx_filename = NULL;
10834   int __pyx_clineno = 0;
10835   PyObject *__pyx_r = 0;
10836   __Pyx_RefNannyDeclarations
10837   __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
10838   if (PyTuple_GET_SIZE(__pyx_args) > 1) {
10839     __pyx_v_args = PyTuple_GetSlice(__pyx_args, 1, PyTuple_GET_SIZE(__pyx_args));
10840     if (unlikely(!__pyx_v_args)) {
10841       __Pyx_RefNannyFinishContext();
10842       return NULL;
10843     }
10844     __Pyx_GOTREF(__pyx_v_args);
10845   } else {
10846     __pyx_v_args = __pyx_empty_tuple; __Pyx_INCREF(__pyx_empty_tuple);
10847   }
10848   {
10849     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,0};
10850     PyObject* values[1] = {0};
10851     if (unlikely(__pyx_kwds)) {
10852       Py_ssize_t kw_args;
10853       const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
10854       switch (pos_args) {
10855         default:
10856         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
10857         CYTHON_FALLTHROUGH;
10858         case  0: break;
10859       }
10860       kw_args = PyDict_Size(__pyx_kwds);
10861       switch (pos_args) {
10862         case  0:
10863         if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
10864         else goto __pyx_L5_argtuple_error;
10865       }
10866       if (unlikely(kw_args > 0)) {
10867         const Py_ssize_t used_pos_args = (pos_args < 1) ? pos_args : 1;
10868         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, used_pos_args, "__init__") < 0)) __PYX_ERR(0, 426, __pyx_L3_error)
10869       }
10870     } else if (PyTuple_GET_SIZE(__pyx_args) < 1) {
10871       goto __pyx_L5_argtuple_error;
10872     } else {
10873       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
10874     }
10875     __pyx_v_self = values[0];
10876   }
10877   goto __pyx_L4_argument_unpacking_done;
10878   __pyx_L5_argtuple_error:;
10879   __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 426, __pyx_L3_error)
10880   __pyx_L3_error:;
10881   __Pyx_DECREF(__pyx_v_args); __pyx_v_args = 0;
10882   __Pyx_AddTraceback("Cython.Compiler.Visitor.NodeRefCleanupMixin.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
10883   __Pyx_RefNannyFinishContext();
10884   return NULL;
10885   __pyx_L4_argument_unpacking_done:;
10886   __pyx_r = __pyx_pf_6Cython_8Compiler_7Visitor_19NodeRefCleanupMixin___init__(__pyx_self, __pyx_v_self, __pyx_v_args);
10887 
10888   /* function exit code */
10889   __Pyx_XDECREF(__pyx_v_args);
10890   __Pyx_RefNannyFinishContext();
10891   return __pyx_r;
10892 }
10893 
__pyx_pf_6Cython_8Compiler_7Visitor_19NodeRefCleanupMixin___init__(CYTHON_UNUSED PyObject * __pyx_self,PyObject * __pyx_v_self,PyObject * __pyx_v_args)10894 static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_19NodeRefCleanupMixin___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_args) {
10895   PyObject *__pyx_r = NULL;
10896   __Pyx_RefNannyDeclarations
10897   PyObject *__pyx_t_1 = NULL;
10898   PyObject *__pyx_t_2 = NULL;
10899   int __pyx_lineno = 0;
10900   const char *__pyx_filename = NULL;
10901   int __pyx_clineno = 0;
10902   __Pyx_RefNannySetupContext("__init__", 0);
10903 
10904   /* "Cython/Compiler/Visitor.py":427
10905  *     """
10906  *     def __init__(self, *args):
10907  *         super(NodeRefCleanupMixin, self).__init__(*args)             # <<<<<<<<<<<<<<
10908  *         self._replacements = {}
10909  *
10910  */
10911   __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_NodeRefCleanupMixin); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 427, __pyx_L1_error)
10912   __Pyx_GOTREF(__pyx_t_1);
10913   __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 427, __pyx_L1_error)
10914   __Pyx_GOTREF(__pyx_t_2);
10915   __Pyx_GIVEREF(__pyx_t_1);
10916   PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
10917   __Pyx_INCREF(__pyx_v_self);
10918   __Pyx_GIVEREF(__pyx_v_self);
10919   PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_self);
10920   __pyx_t_1 = 0;
10921   __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 427, __pyx_L1_error)
10922   __Pyx_GOTREF(__pyx_t_1);
10923   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
10924   __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_init); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 427, __pyx_L1_error)
10925   __Pyx_GOTREF(__pyx_t_2);
10926   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
10927   __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_v_args, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 427, __pyx_L1_error)
10928   __Pyx_GOTREF(__pyx_t_1);
10929   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
10930   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
10931 
10932   /* "Cython/Compiler/Visitor.py":428
10933  *     def __init__(self, *args):
10934  *         super(NodeRefCleanupMixin, self).__init__(*args)
10935  *         self._replacements = {}             # <<<<<<<<<<<<<<
10936  *
10937  *     def visit_CloneNode(self, node):
10938  */
10939   __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 428, __pyx_L1_error)
10940   __Pyx_GOTREF(__pyx_t_1);
10941   if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_replacements, __pyx_t_1) < 0) __PYX_ERR(0, 428, __pyx_L1_error)
10942   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
10943 
10944   /* "Cython/Compiler/Visitor.py":426
10945  *     and by ordering the "child_attrs" of nodes appropriately.
10946  *     """
10947  *     def __init__(self, *args):             # <<<<<<<<<<<<<<
10948  *         super(NodeRefCleanupMixin, self).__init__(*args)
10949  *         self._replacements = {}
10950  */
10951 
10952   /* function exit code */
10953   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
10954   goto __pyx_L0;
10955   __pyx_L1_error:;
10956   __Pyx_XDECREF(__pyx_t_1);
10957   __Pyx_XDECREF(__pyx_t_2);
10958   __Pyx_AddTraceback("Cython.Compiler.Visitor.NodeRefCleanupMixin.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
10959   __pyx_r = NULL;
10960   __pyx_L0:;
10961   __Pyx_XGIVEREF(__pyx_r);
10962   __Pyx_RefNannyFinishContext();
10963   return __pyx_r;
10964 }
10965 
10966 /* "Cython/Compiler/Visitor.py":430
10967  *         self._replacements = {}
10968  *
10969  *     def visit_CloneNode(self, node):             # <<<<<<<<<<<<<<
10970  *         arg = node.arg
10971  *         if arg not in self._replacements:
10972  */
10973 
10974 /* Python wrapper */
10975 static PyObject *__pyx_pw_6Cython_8Compiler_7Visitor_19NodeRefCleanupMixin_3visit_CloneNode(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
10976 static PyMethodDef __pyx_mdef_6Cython_8Compiler_7Visitor_19NodeRefCleanupMixin_3visit_CloneNode = {"visit_CloneNode", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6Cython_8Compiler_7Visitor_19NodeRefCleanupMixin_3visit_CloneNode, METH_VARARGS|METH_KEYWORDS, 0};
__pyx_pw_6Cython_8Compiler_7Visitor_19NodeRefCleanupMixin_3visit_CloneNode(PyObject * __pyx_self,PyObject * __pyx_args,PyObject * __pyx_kwds)10977 static PyObject *__pyx_pw_6Cython_8Compiler_7Visitor_19NodeRefCleanupMixin_3visit_CloneNode(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
10978   PyObject *__pyx_v_self = 0;
10979   PyObject *__pyx_v_node = 0;
10980   int __pyx_lineno = 0;
10981   const char *__pyx_filename = NULL;
10982   int __pyx_clineno = 0;
10983   PyObject *__pyx_r = 0;
10984   __Pyx_RefNannyDeclarations
10985   __Pyx_RefNannySetupContext("visit_CloneNode (wrapper)", 0);
10986   {
10987     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_node,0};
10988     PyObject* values[2] = {0,0};
10989     if (unlikely(__pyx_kwds)) {
10990       Py_ssize_t kw_args;
10991       const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
10992       switch (pos_args) {
10993         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
10994         CYTHON_FALLTHROUGH;
10995         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
10996         CYTHON_FALLTHROUGH;
10997         case  0: break;
10998         default: goto __pyx_L5_argtuple_error;
10999       }
11000       kw_args = PyDict_Size(__pyx_kwds);
11001       switch (pos_args) {
11002         case  0:
11003         if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
11004         else goto __pyx_L5_argtuple_error;
11005         CYTHON_FALLTHROUGH;
11006         case  1:
11007         if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_node)) != 0)) kw_args--;
11008         else {
11009           __Pyx_RaiseArgtupleInvalid("visit_CloneNode", 1, 2, 2, 1); __PYX_ERR(0, 430, __pyx_L3_error)
11010         }
11011       }
11012       if (unlikely(kw_args > 0)) {
11013         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "visit_CloneNode") < 0)) __PYX_ERR(0, 430, __pyx_L3_error)
11014       }
11015     } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
11016       goto __pyx_L5_argtuple_error;
11017     } else {
11018       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
11019       values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
11020     }
11021     __pyx_v_self = values[0];
11022     __pyx_v_node = values[1];
11023   }
11024   goto __pyx_L4_argument_unpacking_done;
11025   __pyx_L5_argtuple_error:;
11026   __Pyx_RaiseArgtupleInvalid("visit_CloneNode", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 430, __pyx_L3_error)
11027   __pyx_L3_error:;
11028   __Pyx_AddTraceback("Cython.Compiler.Visitor.NodeRefCleanupMixin.visit_CloneNode", __pyx_clineno, __pyx_lineno, __pyx_filename);
11029   __Pyx_RefNannyFinishContext();
11030   return NULL;
11031   __pyx_L4_argument_unpacking_done:;
11032   __pyx_r = __pyx_pf_6Cython_8Compiler_7Visitor_19NodeRefCleanupMixin_2visit_CloneNode(__pyx_self, __pyx_v_self, __pyx_v_node);
11033 
11034   /* function exit code */
11035   __Pyx_RefNannyFinishContext();
11036   return __pyx_r;
11037 }
11038 
__pyx_pf_6Cython_8Compiler_7Visitor_19NodeRefCleanupMixin_2visit_CloneNode(CYTHON_UNUSED PyObject * __pyx_self,PyObject * __pyx_v_self,PyObject * __pyx_v_node)11039 static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_19NodeRefCleanupMixin_2visit_CloneNode(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_node) {
11040   PyObject *__pyx_v_arg = NULL;
11041   PyObject *__pyx_r = NULL;
11042   __Pyx_RefNannyDeclarations
11043   PyObject *__pyx_t_1 = NULL;
11044   int __pyx_t_2;
11045   int __pyx_t_3;
11046   PyObject *__pyx_t_4 = NULL;
11047   PyObject *__pyx_t_5 = NULL;
11048   int __pyx_t_6;
11049   PyObject *__pyx_t_7 = NULL;
11050   int __pyx_lineno = 0;
11051   const char *__pyx_filename = NULL;
11052   int __pyx_clineno = 0;
11053   __Pyx_RefNannySetupContext("visit_CloneNode", 0);
11054 
11055   /* "Cython/Compiler/Visitor.py":431
11056  *
11057  *     def visit_CloneNode(self, node):
11058  *         arg = node.arg             # <<<<<<<<<<<<<<
11059  *         if arg not in self._replacements:
11060  *             self.visitchildren(arg)
11061  */
11062   __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_arg); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 431, __pyx_L1_error)
11063   __Pyx_GOTREF(__pyx_t_1);
11064   __pyx_v_arg = __pyx_t_1;
11065   __pyx_t_1 = 0;
11066 
11067   /* "Cython/Compiler/Visitor.py":432
11068  *     def visit_CloneNode(self, node):
11069  *         arg = node.arg
11070  *         if arg not in self._replacements:             # <<<<<<<<<<<<<<
11071  *             self.visitchildren(arg)
11072  *         node.arg = self._replacements.get(arg, arg)
11073  */
11074   __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_replacements); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 432, __pyx_L1_error)
11075   __Pyx_GOTREF(__pyx_t_1);
11076   __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_v_arg, __pyx_t_1, Py_NE)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 432, __pyx_L1_error)
11077   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
11078   __pyx_t_3 = (__pyx_t_2 != 0);
11079   if (__pyx_t_3) {
11080 
11081     /* "Cython/Compiler/Visitor.py":433
11082  *         arg = node.arg
11083  *         if arg not in self._replacements:
11084  *             self.visitchildren(arg)             # <<<<<<<<<<<<<<
11085  *         node.arg = self._replacements.get(arg, arg)
11086  *         return node
11087  */
11088     __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_visitchildren); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 433, __pyx_L1_error)
11089     __Pyx_GOTREF(__pyx_t_4);
11090     __pyx_t_5 = NULL;
11091     if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
11092       __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
11093       if (likely(__pyx_t_5)) {
11094         PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
11095         __Pyx_INCREF(__pyx_t_5);
11096         __Pyx_INCREF(function);
11097         __Pyx_DECREF_SET(__pyx_t_4, function);
11098       }
11099     }
11100     __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_5, __pyx_v_arg) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_v_arg);
11101     __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
11102     if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 433, __pyx_L1_error)
11103     __Pyx_GOTREF(__pyx_t_1);
11104     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
11105     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
11106 
11107     /* "Cython/Compiler/Visitor.py":432
11108  *     def visit_CloneNode(self, node):
11109  *         arg = node.arg
11110  *         if arg not in self._replacements:             # <<<<<<<<<<<<<<
11111  *             self.visitchildren(arg)
11112  *         node.arg = self._replacements.get(arg, arg)
11113  */
11114   }
11115 
11116   /* "Cython/Compiler/Visitor.py":434
11117  *         if arg not in self._replacements:
11118  *             self.visitchildren(arg)
11119  *         node.arg = self._replacements.get(arg, arg)             # <<<<<<<<<<<<<<
11120  *         return node
11121  *
11122  */
11123   __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_replacements); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 434, __pyx_L1_error)
11124   __Pyx_GOTREF(__pyx_t_4);
11125   __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_get); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 434, __pyx_L1_error)
11126   __Pyx_GOTREF(__pyx_t_5);
11127   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
11128   __pyx_t_4 = NULL;
11129   __pyx_t_6 = 0;
11130   if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
11131     __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5);
11132     if (likely(__pyx_t_4)) {
11133       PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
11134       __Pyx_INCREF(__pyx_t_4);
11135       __Pyx_INCREF(function);
11136       __Pyx_DECREF_SET(__pyx_t_5, function);
11137       __pyx_t_6 = 1;
11138     }
11139   }
11140   #if CYTHON_FAST_PYCALL
11141   if (PyFunction_Check(__pyx_t_5)) {
11142     PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_v_arg, __pyx_v_arg};
11143     __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 434, __pyx_L1_error)
11144     __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
11145     __Pyx_GOTREF(__pyx_t_1);
11146   } else
11147   #endif
11148   #if CYTHON_FAST_PYCCALL
11149   if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) {
11150     PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_v_arg, __pyx_v_arg};
11151     __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 434, __pyx_L1_error)
11152     __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
11153     __Pyx_GOTREF(__pyx_t_1);
11154   } else
11155   #endif
11156   {
11157     __pyx_t_7 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 434, __pyx_L1_error)
11158     __Pyx_GOTREF(__pyx_t_7);
11159     if (__pyx_t_4) {
11160       __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_4); __pyx_t_4 = NULL;
11161     }
11162     __Pyx_INCREF(__pyx_v_arg);
11163     __Pyx_GIVEREF(__pyx_v_arg);
11164     PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_6, __pyx_v_arg);
11165     __Pyx_INCREF(__pyx_v_arg);
11166     __Pyx_GIVEREF(__pyx_v_arg);
11167     PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_6, __pyx_v_arg);
11168     __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 434, __pyx_L1_error)
11169     __Pyx_GOTREF(__pyx_t_1);
11170     __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
11171   }
11172   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
11173   if (__Pyx_PyObject_SetAttrStr(__pyx_v_node, __pyx_n_s_arg, __pyx_t_1) < 0) __PYX_ERR(0, 434, __pyx_L1_error)
11174   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
11175 
11176   /* "Cython/Compiler/Visitor.py":435
11177  *             self.visitchildren(arg)
11178  *         node.arg = self._replacements.get(arg, arg)
11179  *         return node             # <<<<<<<<<<<<<<
11180  *
11181  *     def visit_ResultRefNode(self, node):
11182  */
11183   __Pyx_XDECREF(__pyx_r);
11184   __Pyx_INCREF(__pyx_v_node);
11185   __pyx_r = __pyx_v_node;
11186   goto __pyx_L0;
11187 
11188   /* "Cython/Compiler/Visitor.py":430
11189  *         self._replacements = {}
11190  *
11191  *     def visit_CloneNode(self, node):             # <<<<<<<<<<<<<<
11192  *         arg = node.arg
11193  *         if arg not in self._replacements:
11194  */
11195 
11196   /* function exit code */
11197   __pyx_L1_error:;
11198   __Pyx_XDECREF(__pyx_t_1);
11199   __Pyx_XDECREF(__pyx_t_4);
11200   __Pyx_XDECREF(__pyx_t_5);
11201   __Pyx_XDECREF(__pyx_t_7);
11202   __Pyx_AddTraceback("Cython.Compiler.Visitor.NodeRefCleanupMixin.visit_CloneNode", __pyx_clineno, __pyx_lineno, __pyx_filename);
11203   __pyx_r = NULL;
11204   __pyx_L0:;
11205   __Pyx_XDECREF(__pyx_v_arg);
11206   __Pyx_XGIVEREF(__pyx_r);
11207   __Pyx_RefNannyFinishContext();
11208   return __pyx_r;
11209 }
11210 
11211 /* "Cython/Compiler/Visitor.py":437
11212  *         return node
11213  *
11214  *     def visit_ResultRefNode(self, node):             # <<<<<<<<<<<<<<
11215  *         expr = node.expression
11216  *         if expr is None or expr not in self._replacements:
11217  */
11218 
11219 /* Python wrapper */
11220 static PyObject *__pyx_pw_6Cython_8Compiler_7Visitor_19NodeRefCleanupMixin_5visit_ResultRefNode(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
11221 static PyMethodDef __pyx_mdef_6Cython_8Compiler_7Visitor_19NodeRefCleanupMixin_5visit_ResultRefNode = {"visit_ResultRefNode", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6Cython_8Compiler_7Visitor_19NodeRefCleanupMixin_5visit_ResultRefNode, METH_VARARGS|METH_KEYWORDS, 0};
__pyx_pw_6Cython_8Compiler_7Visitor_19NodeRefCleanupMixin_5visit_ResultRefNode(PyObject * __pyx_self,PyObject * __pyx_args,PyObject * __pyx_kwds)11222 static PyObject *__pyx_pw_6Cython_8Compiler_7Visitor_19NodeRefCleanupMixin_5visit_ResultRefNode(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
11223   PyObject *__pyx_v_self = 0;
11224   PyObject *__pyx_v_node = 0;
11225   int __pyx_lineno = 0;
11226   const char *__pyx_filename = NULL;
11227   int __pyx_clineno = 0;
11228   PyObject *__pyx_r = 0;
11229   __Pyx_RefNannyDeclarations
11230   __Pyx_RefNannySetupContext("visit_ResultRefNode (wrapper)", 0);
11231   {
11232     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_node,0};
11233     PyObject* values[2] = {0,0};
11234     if (unlikely(__pyx_kwds)) {
11235       Py_ssize_t kw_args;
11236       const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
11237       switch (pos_args) {
11238         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
11239         CYTHON_FALLTHROUGH;
11240         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
11241         CYTHON_FALLTHROUGH;
11242         case  0: break;
11243         default: goto __pyx_L5_argtuple_error;
11244       }
11245       kw_args = PyDict_Size(__pyx_kwds);
11246       switch (pos_args) {
11247         case  0:
11248         if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
11249         else goto __pyx_L5_argtuple_error;
11250         CYTHON_FALLTHROUGH;
11251         case  1:
11252         if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_node)) != 0)) kw_args--;
11253         else {
11254           __Pyx_RaiseArgtupleInvalid("visit_ResultRefNode", 1, 2, 2, 1); __PYX_ERR(0, 437, __pyx_L3_error)
11255         }
11256       }
11257       if (unlikely(kw_args > 0)) {
11258         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "visit_ResultRefNode") < 0)) __PYX_ERR(0, 437, __pyx_L3_error)
11259       }
11260     } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
11261       goto __pyx_L5_argtuple_error;
11262     } else {
11263       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
11264       values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
11265     }
11266     __pyx_v_self = values[0];
11267     __pyx_v_node = values[1];
11268   }
11269   goto __pyx_L4_argument_unpacking_done;
11270   __pyx_L5_argtuple_error:;
11271   __Pyx_RaiseArgtupleInvalid("visit_ResultRefNode", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 437, __pyx_L3_error)
11272   __pyx_L3_error:;
11273   __Pyx_AddTraceback("Cython.Compiler.Visitor.NodeRefCleanupMixin.visit_ResultRefNode", __pyx_clineno, __pyx_lineno, __pyx_filename);
11274   __Pyx_RefNannyFinishContext();
11275   return NULL;
11276   __pyx_L4_argument_unpacking_done:;
11277   __pyx_r = __pyx_pf_6Cython_8Compiler_7Visitor_19NodeRefCleanupMixin_4visit_ResultRefNode(__pyx_self, __pyx_v_self, __pyx_v_node);
11278 
11279   /* function exit code */
11280   __Pyx_RefNannyFinishContext();
11281   return __pyx_r;
11282 }
11283 
__pyx_pf_6Cython_8Compiler_7Visitor_19NodeRefCleanupMixin_4visit_ResultRefNode(CYTHON_UNUSED PyObject * __pyx_self,PyObject * __pyx_v_self,PyObject * __pyx_v_node)11284 static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_19NodeRefCleanupMixin_4visit_ResultRefNode(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_node) {
11285   PyObject *__pyx_v_expr = NULL;
11286   PyObject *__pyx_r = NULL;
11287   __Pyx_RefNannyDeclarations
11288   PyObject *__pyx_t_1 = NULL;
11289   int __pyx_t_2;
11290   int __pyx_t_3;
11291   int __pyx_t_4;
11292   PyObject *__pyx_t_5 = NULL;
11293   PyObject *__pyx_t_6 = NULL;
11294   int __pyx_t_7;
11295   PyObject *__pyx_t_8 = NULL;
11296   int __pyx_lineno = 0;
11297   const char *__pyx_filename = NULL;
11298   int __pyx_clineno = 0;
11299   __Pyx_RefNannySetupContext("visit_ResultRefNode", 0);
11300 
11301   /* "Cython/Compiler/Visitor.py":438
11302  *
11303  *     def visit_ResultRefNode(self, node):
11304  *         expr = node.expression             # <<<<<<<<<<<<<<
11305  *         if expr is None or expr not in self._replacements:
11306  *             self.visitchildren(node)
11307  */
11308   __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_expression); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 438, __pyx_L1_error)
11309   __Pyx_GOTREF(__pyx_t_1);
11310   __pyx_v_expr = __pyx_t_1;
11311   __pyx_t_1 = 0;
11312 
11313   /* "Cython/Compiler/Visitor.py":439
11314  *     def visit_ResultRefNode(self, node):
11315  *         expr = node.expression
11316  *         if expr is None or expr not in self._replacements:             # <<<<<<<<<<<<<<
11317  *             self.visitchildren(node)
11318  *             expr = node.expression
11319  */
11320   __pyx_t_3 = (__pyx_v_expr == Py_None);
11321   __pyx_t_4 = (__pyx_t_3 != 0);
11322   if (!__pyx_t_4) {
11323   } else {
11324     __pyx_t_2 = __pyx_t_4;
11325     goto __pyx_L4_bool_binop_done;
11326   }
11327   __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_replacements); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 439, __pyx_L1_error)
11328   __Pyx_GOTREF(__pyx_t_1);
11329   __pyx_t_4 = (__Pyx_PySequence_ContainsTF(__pyx_v_expr, __pyx_t_1, Py_NE)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 439, __pyx_L1_error)
11330   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
11331   __pyx_t_3 = (__pyx_t_4 != 0);
11332   __pyx_t_2 = __pyx_t_3;
11333   __pyx_L4_bool_binop_done:;
11334   if (__pyx_t_2) {
11335 
11336     /* "Cython/Compiler/Visitor.py":440
11337  *         expr = node.expression
11338  *         if expr is None or expr not in self._replacements:
11339  *             self.visitchildren(node)             # <<<<<<<<<<<<<<
11340  *             expr = node.expression
11341  *         if expr is not None:
11342  */
11343     __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_visitchildren); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 440, __pyx_L1_error)
11344     __Pyx_GOTREF(__pyx_t_5);
11345     __pyx_t_6 = NULL;
11346     if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
11347       __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5);
11348       if (likely(__pyx_t_6)) {
11349         PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
11350         __Pyx_INCREF(__pyx_t_6);
11351         __Pyx_INCREF(function);
11352         __Pyx_DECREF_SET(__pyx_t_5, function);
11353       }
11354     }
11355     __pyx_t_1 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_6, __pyx_v_node) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_v_node);
11356     __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
11357     if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 440, __pyx_L1_error)
11358     __Pyx_GOTREF(__pyx_t_1);
11359     __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
11360     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
11361 
11362     /* "Cython/Compiler/Visitor.py":441
11363  *         if expr is None or expr not in self._replacements:
11364  *             self.visitchildren(node)
11365  *             expr = node.expression             # <<<<<<<<<<<<<<
11366  *         if expr is not None:
11367  *             node.expression = self._replacements.get(expr, expr)
11368  */
11369     __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_expression); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 441, __pyx_L1_error)
11370     __Pyx_GOTREF(__pyx_t_1);
11371     __Pyx_DECREF_SET(__pyx_v_expr, __pyx_t_1);
11372     __pyx_t_1 = 0;
11373 
11374     /* "Cython/Compiler/Visitor.py":439
11375  *     def visit_ResultRefNode(self, node):
11376  *         expr = node.expression
11377  *         if expr is None or expr not in self._replacements:             # <<<<<<<<<<<<<<
11378  *             self.visitchildren(node)
11379  *             expr = node.expression
11380  */
11381   }
11382 
11383   /* "Cython/Compiler/Visitor.py":442
11384  *             self.visitchildren(node)
11385  *             expr = node.expression
11386  *         if expr is not None:             # <<<<<<<<<<<<<<
11387  *             node.expression = self._replacements.get(expr, expr)
11388  *         return node
11389  */
11390   __pyx_t_2 = (__pyx_v_expr != Py_None);
11391   __pyx_t_3 = (__pyx_t_2 != 0);
11392   if (__pyx_t_3) {
11393 
11394     /* "Cython/Compiler/Visitor.py":443
11395  *             expr = node.expression
11396  *         if expr is not None:
11397  *             node.expression = self._replacements.get(expr, expr)             # <<<<<<<<<<<<<<
11398  *         return node
11399  *
11400  */
11401     __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_replacements); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 443, __pyx_L1_error)
11402     __Pyx_GOTREF(__pyx_t_5);
11403     __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_get); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 443, __pyx_L1_error)
11404     __Pyx_GOTREF(__pyx_t_6);
11405     __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
11406     __pyx_t_5 = NULL;
11407     __pyx_t_7 = 0;
11408     if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) {
11409       __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_6);
11410       if (likely(__pyx_t_5)) {
11411         PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
11412         __Pyx_INCREF(__pyx_t_5);
11413         __Pyx_INCREF(function);
11414         __Pyx_DECREF_SET(__pyx_t_6, function);
11415         __pyx_t_7 = 1;
11416       }
11417     }
11418     #if CYTHON_FAST_PYCALL
11419     if (PyFunction_Check(__pyx_t_6)) {
11420       PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_v_expr, __pyx_v_expr};
11421       __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 443, __pyx_L1_error)
11422       __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
11423       __Pyx_GOTREF(__pyx_t_1);
11424     } else
11425     #endif
11426     #if CYTHON_FAST_PYCCALL
11427     if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) {
11428       PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_v_expr, __pyx_v_expr};
11429       __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 443, __pyx_L1_error)
11430       __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
11431       __Pyx_GOTREF(__pyx_t_1);
11432     } else
11433     #endif
11434     {
11435       __pyx_t_8 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 443, __pyx_L1_error)
11436       __Pyx_GOTREF(__pyx_t_8);
11437       if (__pyx_t_5) {
11438         __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_5); __pyx_t_5 = NULL;
11439       }
11440       __Pyx_INCREF(__pyx_v_expr);
11441       __Pyx_GIVEREF(__pyx_v_expr);
11442       PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_7, __pyx_v_expr);
11443       __Pyx_INCREF(__pyx_v_expr);
11444       __Pyx_GIVEREF(__pyx_v_expr);
11445       PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_7, __pyx_v_expr);
11446       __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_8, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 443, __pyx_L1_error)
11447       __Pyx_GOTREF(__pyx_t_1);
11448       __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
11449     }
11450     __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
11451     if (__Pyx_PyObject_SetAttrStr(__pyx_v_node, __pyx_n_s_expression, __pyx_t_1) < 0) __PYX_ERR(0, 443, __pyx_L1_error)
11452     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
11453 
11454     /* "Cython/Compiler/Visitor.py":442
11455  *             self.visitchildren(node)
11456  *             expr = node.expression
11457  *         if expr is not None:             # <<<<<<<<<<<<<<
11458  *             node.expression = self._replacements.get(expr, expr)
11459  *         return node
11460  */
11461   }
11462 
11463   /* "Cython/Compiler/Visitor.py":444
11464  *         if expr is not None:
11465  *             node.expression = self._replacements.get(expr, expr)
11466  *         return node             # <<<<<<<<<<<<<<
11467  *
11468  *     def replace(self, node, replacement):
11469  */
11470   __Pyx_XDECREF(__pyx_r);
11471   __Pyx_INCREF(__pyx_v_node);
11472   __pyx_r = __pyx_v_node;
11473   goto __pyx_L0;
11474 
11475   /* "Cython/Compiler/Visitor.py":437
11476  *         return node
11477  *
11478  *     def visit_ResultRefNode(self, node):             # <<<<<<<<<<<<<<
11479  *         expr = node.expression
11480  *         if expr is None or expr not in self._replacements:
11481  */
11482 
11483   /* function exit code */
11484   __pyx_L1_error:;
11485   __Pyx_XDECREF(__pyx_t_1);
11486   __Pyx_XDECREF(__pyx_t_5);
11487   __Pyx_XDECREF(__pyx_t_6);
11488   __Pyx_XDECREF(__pyx_t_8);
11489   __Pyx_AddTraceback("Cython.Compiler.Visitor.NodeRefCleanupMixin.visit_ResultRefNode", __pyx_clineno, __pyx_lineno, __pyx_filename);
11490   __pyx_r = NULL;
11491   __pyx_L0:;
11492   __Pyx_XDECREF(__pyx_v_expr);
11493   __Pyx_XGIVEREF(__pyx_r);
11494   __Pyx_RefNannyFinishContext();
11495   return __pyx_r;
11496 }
11497 
11498 /* "Cython/Compiler/Visitor.py":446
11499  *         return node
11500  *
11501  *     def replace(self, node, replacement):             # <<<<<<<<<<<<<<
11502  *         self._replacements[node] = replacement
11503  *         return replacement
11504  */
11505 
11506 /* Python wrapper */
11507 static PyObject *__pyx_pw_6Cython_8Compiler_7Visitor_19NodeRefCleanupMixin_7replace(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
11508 static PyMethodDef __pyx_mdef_6Cython_8Compiler_7Visitor_19NodeRefCleanupMixin_7replace = {"replace", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6Cython_8Compiler_7Visitor_19NodeRefCleanupMixin_7replace, METH_VARARGS|METH_KEYWORDS, 0};
__pyx_pw_6Cython_8Compiler_7Visitor_19NodeRefCleanupMixin_7replace(PyObject * __pyx_self,PyObject * __pyx_args,PyObject * __pyx_kwds)11509 static PyObject *__pyx_pw_6Cython_8Compiler_7Visitor_19NodeRefCleanupMixin_7replace(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
11510   PyObject *__pyx_v_self = 0;
11511   PyObject *__pyx_v_node = 0;
11512   PyObject *__pyx_v_replacement = 0;
11513   int __pyx_lineno = 0;
11514   const char *__pyx_filename = NULL;
11515   int __pyx_clineno = 0;
11516   PyObject *__pyx_r = 0;
11517   __Pyx_RefNannyDeclarations
11518   __Pyx_RefNannySetupContext("replace (wrapper)", 0);
11519   {
11520     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_node,&__pyx_n_s_replacement,0};
11521     PyObject* values[3] = {0,0,0};
11522     if (unlikely(__pyx_kwds)) {
11523       Py_ssize_t kw_args;
11524       const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
11525       switch (pos_args) {
11526         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
11527         CYTHON_FALLTHROUGH;
11528         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
11529         CYTHON_FALLTHROUGH;
11530         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
11531         CYTHON_FALLTHROUGH;
11532         case  0: break;
11533         default: goto __pyx_L5_argtuple_error;
11534       }
11535       kw_args = PyDict_Size(__pyx_kwds);
11536       switch (pos_args) {
11537         case  0:
11538         if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
11539         else goto __pyx_L5_argtuple_error;
11540         CYTHON_FALLTHROUGH;
11541         case  1:
11542         if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_node)) != 0)) kw_args--;
11543         else {
11544           __Pyx_RaiseArgtupleInvalid("replace", 1, 3, 3, 1); __PYX_ERR(0, 446, __pyx_L3_error)
11545         }
11546         CYTHON_FALLTHROUGH;
11547         case  2:
11548         if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_replacement)) != 0)) kw_args--;
11549         else {
11550           __Pyx_RaiseArgtupleInvalid("replace", 1, 3, 3, 2); __PYX_ERR(0, 446, __pyx_L3_error)
11551         }
11552       }
11553       if (unlikely(kw_args > 0)) {
11554         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "replace") < 0)) __PYX_ERR(0, 446, __pyx_L3_error)
11555       }
11556     } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
11557       goto __pyx_L5_argtuple_error;
11558     } else {
11559       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
11560       values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
11561       values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
11562     }
11563     __pyx_v_self = values[0];
11564     __pyx_v_node = values[1];
11565     __pyx_v_replacement = values[2];
11566   }
11567   goto __pyx_L4_argument_unpacking_done;
11568   __pyx_L5_argtuple_error:;
11569   __Pyx_RaiseArgtupleInvalid("replace", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 446, __pyx_L3_error)
11570   __pyx_L3_error:;
11571   __Pyx_AddTraceback("Cython.Compiler.Visitor.NodeRefCleanupMixin.replace", __pyx_clineno, __pyx_lineno, __pyx_filename);
11572   __Pyx_RefNannyFinishContext();
11573   return NULL;
11574   __pyx_L4_argument_unpacking_done:;
11575   __pyx_r = __pyx_pf_6Cython_8Compiler_7Visitor_19NodeRefCleanupMixin_6replace(__pyx_self, __pyx_v_self, __pyx_v_node, __pyx_v_replacement);
11576 
11577   /* function exit code */
11578   __Pyx_RefNannyFinishContext();
11579   return __pyx_r;
11580 }
11581 
__pyx_pf_6Cython_8Compiler_7Visitor_19NodeRefCleanupMixin_6replace(CYTHON_UNUSED PyObject * __pyx_self,PyObject * __pyx_v_self,PyObject * __pyx_v_node,PyObject * __pyx_v_replacement)11582 static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_19NodeRefCleanupMixin_6replace(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_node, PyObject *__pyx_v_replacement) {
11583   PyObject *__pyx_r = NULL;
11584   __Pyx_RefNannyDeclarations
11585   PyObject *__pyx_t_1 = NULL;
11586   int __pyx_lineno = 0;
11587   const char *__pyx_filename = NULL;
11588   int __pyx_clineno = 0;
11589   __Pyx_RefNannySetupContext("replace", 0);
11590 
11591   /* "Cython/Compiler/Visitor.py":447
11592  *
11593  *     def replace(self, node, replacement):
11594  *         self._replacements[node] = replacement             # <<<<<<<<<<<<<<
11595  *         return replacement
11596  *
11597  */
11598   __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_replacements); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 447, __pyx_L1_error)
11599   __Pyx_GOTREF(__pyx_t_1);
11600   if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_v_node, __pyx_v_replacement) < 0)) __PYX_ERR(0, 447, __pyx_L1_error)
11601   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
11602 
11603   /* "Cython/Compiler/Visitor.py":448
11604  *     def replace(self, node, replacement):
11605  *         self._replacements[node] = replacement
11606  *         return replacement             # <<<<<<<<<<<<<<
11607  *
11608  *
11609  */
11610   __Pyx_XDECREF(__pyx_r);
11611   __Pyx_INCREF(__pyx_v_replacement);
11612   __pyx_r = __pyx_v_replacement;
11613   goto __pyx_L0;
11614 
11615   /* "Cython/Compiler/Visitor.py":446
11616  *         return node
11617  *
11618  *     def replace(self, node, replacement):             # <<<<<<<<<<<<<<
11619  *         self._replacements[node] = replacement
11620  *         return replacement
11621  */
11622 
11623   /* function exit code */
11624   __pyx_L1_error:;
11625   __Pyx_XDECREF(__pyx_t_1);
11626   __Pyx_AddTraceback("Cython.Compiler.Visitor.NodeRefCleanupMixin.replace", __pyx_clineno, __pyx_lineno, __pyx_filename);
11627   __pyx_r = NULL;
11628   __pyx_L0:;
11629   __Pyx_XGIVEREF(__pyx_r);
11630   __Pyx_RefNannyFinishContext();
11631   return __pyx_r;
11632 }
11633 
11634 /* "Cython/Compiler/Visitor.py":496
11635  *     """
11636  *     # only visit call nodes and Python operations
11637  *     def visit_GeneralCallNode(self, node):             # <<<<<<<<<<<<<<
11638  *         self._process_children(node)
11639  *         function = node.function
11640  */
11641 
11642 /* Python wrapper */
11643 static PyObject *__pyx_pw_6Cython_8Compiler_7Visitor_25MethodDispatcherTransform_1visit_GeneralCallNode(PyObject *__pyx_v_self, PyObject *__pyx_v_node); /*proto*/
11644 static PyMethodDef __pyx_mdef_6Cython_8Compiler_7Visitor_25MethodDispatcherTransform_1visit_GeneralCallNode = {"visit_GeneralCallNode", (PyCFunction)__pyx_pw_6Cython_8Compiler_7Visitor_25MethodDispatcherTransform_1visit_GeneralCallNode, METH_O, 0};
__pyx_pw_6Cython_8Compiler_7Visitor_25MethodDispatcherTransform_1visit_GeneralCallNode(PyObject * __pyx_v_self,PyObject * __pyx_v_node)11645 static PyObject *__pyx_pw_6Cython_8Compiler_7Visitor_25MethodDispatcherTransform_1visit_GeneralCallNode(PyObject *__pyx_v_self, PyObject *__pyx_v_node) {
11646   PyObject *__pyx_r = 0;
11647   __Pyx_RefNannyDeclarations
11648   __Pyx_RefNannySetupContext("visit_GeneralCallNode (wrapper)", 0);
11649   __pyx_r = __pyx_pf_6Cython_8Compiler_7Visitor_25MethodDispatcherTransform_visit_GeneralCallNode(((struct __pyx_obj_6Cython_8Compiler_7Visitor_MethodDispatcherTransform *)__pyx_v_self), ((PyObject *)__pyx_v_node));
11650 
11651   /* function exit code */
11652   __Pyx_RefNannyFinishContext();
11653   return __pyx_r;
11654 }
11655 
__pyx_pf_6Cython_8Compiler_7Visitor_25MethodDispatcherTransform_visit_GeneralCallNode(struct __pyx_obj_6Cython_8Compiler_7Visitor_MethodDispatcherTransform * __pyx_v_self,PyObject * __pyx_v_node)11656 static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_25MethodDispatcherTransform_visit_GeneralCallNode(struct __pyx_obj_6Cython_8Compiler_7Visitor_MethodDispatcherTransform *__pyx_v_self, PyObject *__pyx_v_node) {
11657   PyObject *__pyx_v_function = NULL;
11658   PyObject *__pyx_v_arg_tuple = NULL;
11659   PyObject *__pyx_v_keyword_args = NULL;
11660   PyObject *__pyx_v_args = NULL;
11661   PyObject *__pyx_r = NULL;
11662   __Pyx_RefNannyDeclarations
11663   PyObject *__pyx_t_1 = NULL;
11664   PyObject *__pyx_t_2 = NULL;
11665   int __pyx_t_3;
11666   int __pyx_t_4;
11667   int __pyx_t_5;
11668   int __pyx_lineno = 0;
11669   const char *__pyx_filename = NULL;
11670   int __pyx_clineno = 0;
11671   __Pyx_RefNannySetupContext("visit_GeneralCallNode", 0);
11672 
11673   /* "Cython/Compiler/Visitor.py":497
11674  *     # only visit call nodes and Python operations
11675  *     def visit_GeneralCallNode(self, node):
11676  *         self._process_children(node)             # <<<<<<<<<<<<<<
11677  *         function = node.function
11678  *         if not function.type.is_pyobject:
11679  */
11680   __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_7Visitor_MethodDispatcherTransform *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.__pyx_base.__pyx_vtab)->__pyx_base.__pyx_base.__pyx_base._process_children(((struct __pyx_obj_6Cython_8Compiler_7Visitor_VisitorTransform *)__pyx_v_self), __pyx_v_node, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 497, __pyx_L1_error)
11681   __Pyx_GOTREF(__pyx_t_1);
11682   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
11683 
11684   /* "Cython/Compiler/Visitor.py":498
11685  *     def visit_GeneralCallNode(self, node):
11686  *         self._process_children(node)
11687  *         function = node.function             # <<<<<<<<<<<<<<
11688  *         if not function.type.is_pyobject:
11689  *             return node
11690  */
11691   __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_function); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 498, __pyx_L1_error)
11692   __Pyx_GOTREF(__pyx_t_1);
11693   __pyx_v_function = __pyx_t_1;
11694   __pyx_t_1 = 0;
11695 
11696   /* "Cython/Compiler/Visitor.py":499
11697  *         self._process_children(node)
11698  *         function = node.function
11699  *         if not function.type.is_pyobject:             # <<<<<<<<<<<<<<
11700  *             return node
11701  *         arg_tuple = node.positional_args
11702  */
11703   __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_function, __pyx_n_s_type); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 499, __pyx_L1_error)
11704   __Pyx_GOTREF(__pyx_t_1);
11705   __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_is_pyobject); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 499, __pyx_L1_error)
11706   __Pyx_GOTREF(__pyx_t_2);
11707   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
11708   __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 499, __pyx_L1_error)
11709   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
11710   __pyx_t_4 = ((!__pyx_t_3) != 0);
11711   if (__pyx_t_4) {
11712 
11713     /* "Cython/Compiler/Visitor.py":500
11714  *         function = node.function
11715  *         if not function.type.is_pyobject:
11716  *             return node             # <<<<<<<<<<<<<<
11717  *         arg_tuple = node.positional_args
11718  *         if not isinstance(arg_tuple, ExprNodes.TupleNode):
11719  */
11720     __Pyx_XDECREF(__pyx_r);
11721     __Pyx_INCREF(__pyx_v_node);
11722     __pyx_r = __pyx_v_node;
11723     goto __pyx_L0;
11724 
11725     /* "Cython/Compiler/Visitor.py":499
11726  *         self._process_children(node)
11727  *         function = node.function
11728  *         if not function.type.is_pyobject:             # <<<<<<<<<<<<<<
11729  *             return node
11730  *         arg_tuple = node.positional_args
11731  */
11732   }
11733 
11734   /* "Cython/Compiler/Visitor.py":501
11735  *         if not function.type.is_pyobject:
11736  *             return node
11737  *         arg_tuple = node.positional_args             # <<<<<<<<<<<<<<
11738  *         if not isinstance(arg_tuple, ExprNodes.TupleNode):
11739  *             return node
11740  */
11741   __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_positional_args); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 501, __pyx_L1_error)
11742   __Pyx_GOTREF(__pyx_t_2);
11743   __pyx_v_arg_tuple = __pyx_t_2;
11744   __pyx_t_2 = 0;
11745 
11746   /* "Cython/Compiler/Visitor.py":502
11747  *             return node
11748  *         arg_tuple = node.positional_args
11749  *         if not isinstance(arg_tuple, ExprNodes.TupleNode):             # <<<<<<<<<<<<<<
11750  *             return node
11751  *         keyword_args = node.keyword_args
11752  */
11753   __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_ExprNodes); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 502, __pyx_L1_error)
11754   __Pyx_GOTREF(__pyx_t_2);
11755   __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_TupleNode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 502, __pyx_L1_error)
11756   __Pyx_GOTREF(__pyx_t_1);
11757   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
11758   __pyx_t_4 = PyObject_IsInstance(__pyx_v_arg_tuple, __pyx_t_1); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(0, 502, __pyx_L1_error)
11759   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
11760   __pyx_t_3 = ((!(__pyx_t_4 != 0)) != 0);
11761   if (__pyx_t_3) {
11762 
11763     /* "Cython/Compiler/Visitor.py":503
11764  *         arg_tuple = node.positional_args
11765  *         if not isinstance(arg_tuple, ExprNodes.TupleNode):
11766  *             return node             # <<<<<<<<<<<<<<
11767  *         keyword_args = node.keyword_args
11768  *         if keyword_args and not isinstance(keyword_args, ExprNodes.DictNode):
11769  */
11770     __Pyx_XDECREF(__pyx_r);
11771     __Pyx_INCREF(__pyx_v_node);
11772     __pyx_r = __pyx_v_node;
11773     goto __pyx_L0;
11774 
11775     /* "Cython/Compiler/Visitor.py":502
11776  *             return node
11777  *         arg_tuple = node.positional_args
11778  *         if not isinstance(arg_tuple, ExprNodes.TupleNode):             # <<<<<<<<<<<<<<
11779  *             return node
11780  *         keyword_args = node.keyword_args
11781  */
11782   }
11783 
11784   /* "Cython/Compiler/Visitor.py":504
11785  *         if not isinstance(arg_tuple, ExprNodes.TupleNode):
11786  *             return node
11787  *         keyword_args = node.keyword_args             # <<<<<<<<<<<<<<
11788  *         if keyword_args and not isinstance(keyword_args, ExprNodes.DictNode):
11789  *             # can't handle **kwargs
11790  */
11791   __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_keyword_args); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 504, __pyx_L1_error)
11792   __Pyx_GOTREF(__pyx_t_1);
11793   __pyx_v_keyword_args = __pyx_t_1;
11794   __pyx_t_1 = 0;
11795 
11796   /* "Cython/Compiler/Visitor.py":505
11797  *             return node
11798  *         keyword_args = node.keyword_args
11799  *         if keyword_args and not isinstance(keyword_args, ExprNodes.DictNode):             # <<<<<<<<<<<<<<
11800  *             # can't handle **kwargs
11801  *             return node
11802  */
11803   __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_keyword_args); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 505, __pyx_L1_error)
11804   if (__pyx_t_4) {
11805   } else {
11806     __pyx_t_3 = __pyx_t_4;
11807     goto __pyx_L6_bool_binop_done;
11808   }
11809   __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_ExprNodes); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 505, __pyx_L1_error)
11810   __Pyx_GOTREF(__pyx_t_1);
11811   __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_DictNode); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 505, __pyx_L1_error)
11812   __Pyx_GOTREF(__pyx_t_2);
11813   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
11814   __pyx_t_4 = PyObject_IsInstance(__pyx_v_keyword_args, __pyx_t_2); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(0, 505, __pyx_L1_error)
11815   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
11816   __pyx_t_5 = ((!(__pyx_t_4 != 0)) != 0);
11817   __pyx_t_3 = __pyx_t_5;
11818   __pyx_L6_bool_binop_done:;
11819   if (__pyx_t_3) {
11820 
11821     /* "Cython/Compiler/Visitor.py":507
11822  *         if keyword_args and not isinstance(keyword_args, ExprNodes.DictNode):
11823  *             # can't handle **kwargs
11824  *             return node             # <<<<<<<<<<<<<<
11825  *         args = arg_tuple.args
11826  *         return self._dispatch_to_handler(node, function, args, keyword_args)
11827  */
11828     __Pyx_XDECREF(__pyx_r);
11829     __Pyx_INCREF(__pyx_v_node);
11830     __pyx_r = __pyx_v_node;
11831     goto __pyx_L0;
11832 
11833     /* "Cython/Compiler/Visitor.py":505
11834  *             return node
11835  *         keyword_args = node.keyword_args
11836  *         if keyword_args and not isinstance(keyword_args, ExprNodes.DictNode):             # <<<<<<<<<<<<<<
11837  *             # can't handle **kwargs
11838  *             return node
11839  */
11840   }
11841 
11842   /* "Cython/Compiler/Visitor.py":508
11843  *             # can't handle **kwargs
11844  *             return node
11845  *         args = arg_tuple.args             # <<<<<<<<<<<<<<
11846  *         return self._dispatch_to_handler(node, function, args, keyword_args)
11847  *
11848  */
11849   __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg_tuple, __pyx_n_s_args); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 508, __pyx_L1_error)
11850   __Pyx_GOTREF(__pyx_t_2);
11851   __pyx_v_args = __pyx_t_2;
11852   __pyx_t_2 = 0;
11853 
11854   /* "Cython/Compiler/Visitor.py":509
11855  *             return node
11856  *         args = arg_tuple.args
11857  *         return self._dispatch_to_handler(node, function, args, keyword_args)             # <<<<<<<<<<<<<<
11858  *
11859  *     def visit_SimpleCallNode(self, node):
11860  */
11861   __Pyx_XDECREF(__pyx_r);
11862   __pyx_t_2 = ((struct __pyx_vtabstruct_6Cython_8Compiler_7Visitor_MethodDispatcherTransform *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.__pyx_base.__pyx_vtab)->_dispatch_to_handler(__pyx_v_self, __pyx_v_node, __pyx_v_function, __pyx_v_args, __pyx_v_keyword_args); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 509, __pyx_L1_error)
11863   __Pyx_GOTREF(__pyx_t_2);
11864   __pyx_r = __pyx_t_2;
11865   __pyx_t_2 = 0;
11866   goto __pyx_L0;
11867 
11868   /* "Cython/Compiler/Visitor.py":496
11869  *     """
11870  *     # only visit call nodes and Python operations
11871  *     def visit_GeneralCallNode(self, node):             # <<<<<<<<<<<<<<
11872  *         self._process_children(node)
11873  *         function = node.function
11874  */
11875 
11876   /* function exit code */
11877   __pyx_L1_error:;
11878   __Pyx_XDECREF(__pyx_t_1);
11879   __Pyx_XDECREF(__pyx_t_2);
11880   __Pyx_AddTraceback("Cython.Compiler.Visitor.MethodDispatcherTransform.visit_GeneralCallNode", __pyx_clineno, __pyx_lineno, __pyx_filename);
11881   __pyx_r = NULL;
11882   __pyx_L0:;
11883   __Pyx_XDECREF(__pyx_v_function);
11884   __Pyx_XDECREF(__pyx_v_arg_tuple);
11885   __Pyx_XDECREF(__pyx_v_keyword_args);
11886   __Pyx_XDECREF(__pyx_v_args);
11887   __Pyx_XGIVEREF(__pyx_r);
11888   __Pyx_RefNannyFinishContext();
11889   return __pyx_r;
11890 }
11891 
11892 /* "Cython/Compiler/Visitor.py":511
11893  *         return self._dispatch_to_handler(node, function, args, keyword_args)
11894  *
11895  *     def visit_SimpleCallNode(self, node):             # <<<<<<<<<<<<<<
11896  *         self._process_children(node)
11897  *         function = node.function
11898  */
11899 
11900 /* Python wrapper */
11901 static PyObject *__pyx_pw_6Cython_8Compiler_7Visitor_25MethodDispatcherTransform_3visit_SimpleCallNode(PyObject *__pyx_v_self, PyObject *__pyx_v_node); /*proto*/
11902 static PyMethodDef __pyx_mdef_6Cython_8Compiler_7Visitor_25MethodDispatcherTransform_3visit_SimpleCallNode = {"visit_SimpleCallNode", (PyCFunction)__pyx_pw_6Cython_8Compiler_7Visitor_25MethodDispatcherTransform_3visit_SimpleCallNode, METH_O, 0};
__pyx_pw_6Cython_8Compiler_7Visitor_25MethodDispatcherTransform_3visit_SimpleCallNode(PyObject * __pyx_v_self,PyObject * __pyx_v_node)11903 static PyObject *__pyx_pw_6Cython_8Compiler_7Visitor_25MethodDispatcherTransform_3visit_SimpleCallNode(PyObject *__pyx_v_self, PyObject *__pyx_v_node) {
11904   PyObject *__pyx_r = 0;
11905   __Pyx_RefNannyDeclarations
11906   __Pyx_RefNannySetupContext("visit_SimpleCallNode (wrapper)", 0);
11907   __pyx_r = __pyx_pf_6Cython_8Compiler_7Visitor_25MethodDispatcherTransform_2visit_SimpleCallNode(((struct __pyx_obj_6Cython_8Compiler_7Visitor_MethodDispatcherTransform *)__pyx_v_self), ((PyObject *)__pyx_v_node));
11908 
11909   /* function exit code */
11910   __Pyx_RefNannyFinishContext();
11911   return __pyx_r;
11912 }
11913 
__pyx_pf_6Cython_8Compiler_7Visitor_25MethodDispatcherTransform_2visit_SimpleCallNode(struct __pyx_obj_6Cython_8Compiler_7Visitor_MethodDispatcherTransform * __pyx_v_self,PyObject * __pyx_v_node)11914 static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_25MethodDispatcherTransform_2visit_SimpleCallNode(struct __pyx_obj_6Cython_8Compiler_7Visitor_MethodDispatcherTransform *__pyx_v_self, PyObject *__pyx_v_node) {
11915   PyObject *__pyx_v_function = NULL;
11916   PyObject *__pyx_v_arg_tuple = NULL;
11917   PyObject *__pyx_v_args = NULL;
11918   PyObject *__pyx_r = NULL;
11919   __Pyx_RefNannyDeclarations
11920   PyObject *__pyx_t_1 = NULL;
11921   PyObject *__pyx_t_2 = NULL;
11922   int __pyx_t_3;
11923   int __pyx_t_4;
11924   int __pyx_lineno = 0;
11925   const char *__pyx_filename = NULL;
11926   int __pyx_clineno = 0;
11927   __Pyx_RefNannySetupContext("visit_SimpleCallNode", 0);
11928 
11929   /* "Cython/Compiler/Visitor.py":512
11930  *
11931  *     def visit_SimpleCallNode(self, node):
11932  *         self._process_children(node)             # <<<<<<<<<<<<<<
11933  *         function = node.function
11934  *         if function.type.is_pyobject:
11935  */
11936   __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_7Visitor_MethodDispatcherTransform *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.__pyx_base.__pyx_vtab)->__pyx_base.__pyx_base.__pyx_base._process_children(((struct __pyx_obj_6Cython_8Compiler_7Visitor_VisitorTransform *)__pyx_v_self), __pyx_v_node, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 512, __pyx_L1_error)
11937   __Pyx_GOTREF(__pyx_t_1);
11938   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
11939 
11940   /* "Cython/Compiler/Visitor.py":513
11941  *     def visit_SimpleCallNode(self, node):
11942  *         self._process_children(node)
11943  *         function = node.function             # <<<<<<<<<<<<<<
11944  *         if function.type.is_pyobject:
11945  *             arg_tuple = node.arg_tuple
11946  */
11947   __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_function); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 513, __pyx_L1_error)
11948   __Pyx_GOTREF(__pyx_t_1);
11949   __pyx_v_function = __pyx_t_1;
11950   __pyx_t_1 = 0;
11951 
11952   /* "Cython/Compiler/Visitor.py":514
11953  *         self._process_children(node)
11954  *         function = node.function
11955  *         if function.type.is_pyobject:             # <<<<<<<<<<<<<<
11956  *             arg_tuple = node.arg_tuple
11957  *             if not isinstance(arg_tuple, ExprNodes.TupleNode):
11958  */
11959   __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_function, __pyx_n_s_type); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 514, __pyx_L1_error)
11960   __Pyx_GOTREF(__pyx_t_1);
11961   __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_is_pyobject); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 514, __pyx_L1_error)
11962   __Pyx_GOTREF(__pyx_t_2);
11963   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
11964   __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 514, __pyx_L1_error)
11965   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
11966   if (__pyx_t_3) {
11967 
11968     /* "Cython/Compiler/Visitor.py":515
11969  *         function = node.function
11970  *         if function.type.is_pyobject:
11971  *             arg_tuple = node.arg_tuple             # <<<<<<<<<<<<<<
11972  *             if not isinstance(arg_tuple, ExprNodes.TupleNode):
11973  *                 return node
11974  */
11975     __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_arg_tuple); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 515, __pyx_L1_error)
11976     __Pyx_GOTREF(__pyx_t_2);
11977     __pyx_v_arg_tuple = __pyx_t_2;
11978     __pyx_t_2 = 0;
11979 
11980     /* "Cython/Compiler/Visitor.py":516
11981  *         if function.type.is_pyobject:
11982  *             arg_tuple = node.arg_tuple
11983  *             if not isinstance(arg_tuple, ExprNodes.TupleNode):             # <<<<<<<<<<<<<<
11984  *                 return node
11985  *             args = arg_tuple.args
11986  */
11987     __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_ExprNodes); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 516, __pyx_L1_error)
11988     __Pyx_GOTREF(__pyx_t_2);
11989     __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_TupleNode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 516, __pyx_L1_error)
11990     __Pyx_GOTREF(__pyx_t_1);
11991     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
11992     __pyx_t_3 = PyObject_IsInstance(__pyx_v_arg_tuple, __pyx_t_1); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(0, 516, __pyx_L1_error)
11993     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
11994     __pyx_t_4 = ((!(__pyx_t_3 != 0)) != 0);
11995     if (__pyx_t_4) {
11996 
11997       /* "Cython/Compiler/Visitor.py":517
11998  *             arg_tuple = node.arg_tuple
11999  *             if not isinstance(arg_tuple, ExprNodes.TupleNode):
12000  *                 return node             # <<<<<<<<<<<<<<
12001  *             args = arg_tuple.args
12002  *         else:
12003  */
12004       __Pyx_XDECREF(__pyx_r);
12005       __Pyx_INCREF(__pyx_v_node);
12006       __pyx_r = __pyx_v_node;
12007       goto __pyx_L0;
12008 
12009       /* "Cython/Compiler/Visitor.py":516
12010  *         if function.type.is_pyobject:
12011  *             arg_tuple = node.arg_tuple
12012  *             if not isinstance(arg_tuple, ExprNodes.TupleNode):             # <<<<<<<<<<<<<<
12013  *                 return node
12014  *             args = arg_tuple.args
12015  */
12016     }
12017 
12018     /* "Cython/Compiler/Visitor.py":518
12019  *             if not isinstance(arg_tuple, ExprNodes.TupleNode):
12020  *                 return node
12021  *             args = arg_tuple.args             # <<<<<<<<<<<<<<
12022  *         else:
12023  *             args = node.args
12024  */
12025     __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg_tuple, __pyx_n_s_args); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 518, __pyx_L1_error)
12026     __Pyx_GOTREF(__pyx_t_1);
12027     __pyx_v_args = __pyx_t_1;
12028     __pyx_t_1 = 0;
12029 
12030     /* "Cython/Compiler/Visitor.py":514
12031  *         self._process_children(node)
12032  *         function = node.function
12033  *         if function.type.is_pyobject:             # <<<<<<<<<<<<<<
12034  *             arg_tuple = node.arg_tuple
12035  *             if not isinstance(arg_tuple, ExprNodes.TupleNode):
12036  */
12037     goto __pyx_L3;
12038   }
12039 
12040   /* "Cython/Compiler/Visitor.py":520
12041  *             args = arg_tuple.args
12042  *         else:
12043  *             args = node.args             # <<<<<<<<<<<<<<
12044  *         return self._dispatch_to_handler(node, function, args, None)
12045  *
12046  */
12047   /*else*/ {
12048     __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_args); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 520, __pyx_L1_error)
12049     __Pyx_GOTREF(__pyx_t_1);
12050     __pyx_v_args = __pyx_t_1;
12051     __pyx_t_1 = 0;
12052   }
12053   __pyx_L3:;
12054 
12055   /* "Cython/Compiler/Visitor.py":521
12056  *         else:
12057  *             args = node.args
12058  *         return self._dispatch_to_handler(node, function, args, None)             # <<<<<<<<<<<<<<
12059  *
12060  *     def visit_PrimaryCmpNode(self, node):
12061  */
12062   __Pyx_XDECREF(__pyx_r);
12063   __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_7Visitor_MethodDispatcherTransform *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.__pyx_base.__pyx_vtab)->_dispatch_to_handler(__pyx_v_self, __pyx_v_node, __pyx_v_function, __pyx_v_args, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 521, __pyx_L1_error)
12064   __Pyx_GOTREF(__pyx_t_1);
12065   __pyx_r = __pyx_t_1;
12066   __pyx_t_1 = 0;
12067   goto __pyx_L0;
12068 
12069   /* "Cython/Compiler/Visitor.py":511
12070  *         return self._dispatch_to_handler(node, function, args, keyword_args)
12071  *
12072  *     def visit_SimpleCallNode(self, node):             # <<<<<<<<<<<<<<
12073  *         self._process_children(node)
12074  *         function = node.function
12075  */
12076 
12077   /* function exit code */
12078   __pyx_L1_error:;
12079   __Pyx_XDECREF(__pyx_t_1);
12080   __Pyx_XDECREF(__pyx_t_2);
12081   __Pyx_AddTraceback("Cython.Compiler.Visitor.MethodDispatcherTransform.visit_SimpleCallNode", __pyx_clineno, __pyx_lineno, __pyx_filename);
12082   __pyx_r = NULL;
12083   __pyx_L0:;
12084   __Pyx_XDECREF(__pyx_v_function);
12085   __Pyx_XDECREF(__pyx_v_arg_tuple);
12086   __Pyx_XDECREF(__pyx_v_args);
12087   __Pyx_XGIVEREF(__pyx_r);
12088   __Pyx_RefNannyFinishContext();
12089   return __pyx_r;
12090 }
12091 
12092 /* "Cython/Compiler/Visitor.py":523
12093  *         return self._dispatch_to_handler(node, function, args, None)
12094  *
12095  *     def visit_PrimaryCmpNode(self, node):             # <<<<<<<<<<<<<<
12096  *         if node.cascade:
12097  *             # not currently handled below
12098  */
12099 
12100 /* Python wrapper */
12101 static PyObject *__pyx_pw_6Cython_8Compiler_7Visitor_25MethodDispatcherTransform_5visit_PrimaryCmpNode(PyObject *__pyx_v_self, PyObject *__pyx_v_node); /*proto*/
12102 static PyMethodDef __pyx_mdef_6Cython_8Compiler_7Visitor_25MethodDispatcherTransform_5visit_PrimaryCmpNode = {"visit_PrimaryCmpNode", (PyCFunction)__pyx_pw_6Cython_8Compiler_7Visitor_25MethodDispatcherTransform_5visit_PrimaryCmpNode, METH_O, 0};
__pyx_pw_6Cython_8Compiler_7Visitor_25MethodDispatcherTransform_5visit_PrimaryCmpNode(PyObject * __pyx_v_self,PyObject * __pyx_v_node)12103 static PyObject *__pyx_pw_6Cython_8Compiler_7Visitor_25MethodDispatcherTransform_5visit_PrimaryCmpNode(PyObject *__pyx_v_self, PyObject *__pyx_v_node) {
12104   PyObject *__pyx_r = 0;
12105   __Pyx_RefNannyDeclarations
12106   __Pyx_RefNannySetupContext("visit_PrimaryCmpNode (wrapper)", 0);
12107   __pyx_r = __pyx_pf_6Cython_8Compiler_7Visitor_25MethodDispatcherTransform_4visit_PrimaryCmpNode(((struct __pyx_obj_6Cython_8Compiler_7Visitor_MethodDispatcherTransform *)__pyx_v_self), ((PyObject *)__pyx_v_node));
12108 
12109   /* function exit code */
12110   __Pyx_RefNannyFinishContext();
12111   return __pyx_r;
12112 }
12113 
__pyx_pf_6Cython_8Compiler_7Visitor_25MethodDispatcherTransform_4visit_PrimaryCmpNode(struct __pyx_obj_6Cython_8Compiler_7Visitor_MethodDispatcherTransform * __pyx_v_self,PyObject * __pyx_v_node)12114 static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_25MethodDispatcherTransform_4visit_PrimaryCmpNode(struct __pyx_obj_6Cython_8Compiler_7Visitor_MethodDispatcherTransform *__pyx_v_self, PyObject *__pyx_v_node) {
12115   PyObject *__pyx_r = NULL;
12116   __Pyx_RefNannyDeclarations
12117   PyObject *__pyx_t_1 = NULL;
12118   int __pyx_t_2;
12119   int __pyx_lineno = 0;
12120   const char *__pyx_filename = NULL;
12121   int __pyx_clineno = 0;
12122   __Pyx_RefNannySetupContext("visit_PrimaryCmpNode", 0);
12123 
12124   /* "Cython/Compiler/Visitor.py":524
12125  *
12126  *     def visit_PrimaryCmpNode(self, node):
12127  *         if node.cascade:             # <<<<<<<<<<<<<<
12128  *             # not currently handled below
12129  *             self._process_children(node)
12130  */
12131   __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_cascade); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 524, __pyx_L1_error)
12132   __Pyx_GOTREF(__pyx_t_1);
12133   __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 524, __pyx_L1_error)
12134   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
12135   if (__pyx_t_2) {
12136 
12137     /* "Cython/Compiler/Visitor.py":526
12138  *         if node.cascade:
12139  *             # not currently handled below
12140  *             self._process_children(node)             # <<<<<<<<<<<<<<
12141  *             return node
12142  *         return self._visit_binop_node(node)
12143  */
12144     __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_7Visitor_MethodDispatcherTransform *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.__pyx_base.__pyx_vtab)->__pyx_base.__pyx_base.__pyx_base._process_children(((struct __pyx_obj_6Cython_8Compiler_7Visitor_VisitorTransform *)__pyx_v_self), __pyx_v_node, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 526, __pyx_L1_error)
12145     __Pyx_GOTREF(__pyx_t_1);
12146     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
12147 
12148     /* "Cython/Compiler/Visitor.py":527
12149  *             # not currently handled below
12150  *             self._process_children(node)
12151  *             return node             # <<<<<<<<<<<<<<
12152  *         return self._visit_binop_node(node)
12153  *
12154  */
12155     __Pyx_XDECREF(__pyx_r);
12156     __Pyx_INCREF(__pyx_v_node);
12157     __pyx_r = __pyx_v_node;
12158     goto __pyx_L0;
12159 
12160     /* "Cython/Compiler/Visitor.py":524
12161  *
12162  *     def visit_PrimaryCmpNode(self, node):
12163  *         if node.cascade:             # <<<<<<<<<<<<<<
12164  *             # not currently handled below
12165  *             self._process_children(node)
12166  */
12167   }
12168 
12169   /* "Cython/Compiler/Visitor.py":528
12170  *             self._process_children(node)
12171  *             return node
12172  *         return self._visit_binop_node(node)             # <<<<<<<<<<<<<<
12173  *
12174  *     def visit_BinopNode(self, node):
12175  */
12176   __Pyx_XDECREF(__pyx_r);
12177   __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_7Visitor_MethodDispatcherTransform *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.__pyx_base.__pyx_vtab)->_visit_binop_node(__pyx_v_self, __pyx_v_node); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 528, __pyx_L1_error)
12178   __Pyx_GOTREF(__pyx_t_1);
12179   __pyx_r = __pyx_t_1;
12180   __pyx_t_1 = 0;
12181   goto __pyx_L0;
12182 
12183   /* "Cython/Compiler/Visitor.py":523
12184  *         return self._dispatch_to_handler(node, function, args, None)
12185  *
12186  *     def visit_PrimaryCmpNode(self, node):             # <<<<<<<<<<<<<<
12187  *         if node.cascade:
12188  *             # not currently handled below
12189  */
12190 
12191   /* function exit code */
12192   __pyx_L1_error:;
12193   __Pyx_XDECREF(__pyx_t_1);
12194   __Pyx_AddTraceback("Cython.Compiler.Visitor.MethodDispatcherTransform.visit_PrimaryCmpNode", __pyx_clineno, __pyx_lineno, __pyx_filename);
12195   __pyx_r = NULL;
12196   __pyx_L0:;
12197   __Pyx_XGIVEREF(__pyx_r);
12198   __Pyx_RefNannyFinishContext();
12199   return __pyx_r;
12200 }
12201 
12202 /* "Cython/Compiler/Visitor.py":530
12203  *         return self._visit_binop_node(node)
12204  *
12205  *     def visit_BinopNode(self, node):             # <<<<<<<<<<<<<<
12206  *         return self._visit_binop_node(node)
12207  *
12208  */
12209 
12210 /* Python wrapper */
12211 static PyObject *__pyx_pw_6Cython_8Compiler_7Visitor_25MethodDispatcherTransform_7visit_BinopNode(PyObject *__pyx_v_self, PyObject *__pyx_v_node); /*proto*/
12212 static PyMethodDef __pyx_mdef_6Cython_8Compiler_7Visitor_25MethodDispatcherTransform_7visit_BinopNode = {"visit_BinopNode", (PyCFunction)__pyx_pw_6Cython_8Compiler_7Visitor_25MethodDispatcherTransform_7visit_BinopNode, METH_O, 0};
__pyx_pw_6Cython_8Compiler_7Visitor_25MethodDispatcherTransform_7visit_BinopNode(PyObject * __pyx_v_self,PyObject * __pyx_v_node)12213 static PyObject *__pyx_pw_6Cython_8Compiler_7Visitor_25MethodDispatcherTransform_7visit_BinopNode(PyObject *__pyx_v_self, PyObject *__pyx_v_node) {
12214   PyObject *__pyx_r = 0;
12215   __Pyx_RefNannyDeclarations
12216   __Pyx_RefNannySetupContext("visit_BinopNode (wrapper)", 0);
12217   __pyx_r = __pyx_pf_6Cython_8Compiler_7Visitor_25MethodDispatcherTransform_6visit_BinopNode(((struct __pyx_obj_6Cython_8Compiler_7Visitor_MethodDispatcherTransform *)__pyx_v_self), ((PyObject *)__pyx_v_node));
12218 
12219   /* function exit code */
12220   __Pyx_RefNannyFinishContext();
12221   return __pyx_r;
12222 }
12223 
__pyx_pf_6Cython_8Compiler_7Visitor_25MethodDispatcherTransform_6visit_BinopNode(struct __pyx_obj_6Cython_8Compiler_7Visitor_MethodDispatcherTransform * __pyx_v_self,PyObject * __pyx_v_node)12224 static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_25MethodDispatcherTransform_6visit_BinopNode(struct __pyx_obj_6Cython_8Compiler_7Visitor_MethodDispatcherTransform *__pyx_v_self, PyObject *__pyx_v_node) {
12225   PyObject *__pyx_r = NULL;
12226   __Pyx_RefNannyDeclarations
12227   PyObject *__pyx_t_1 = NULL;
12228   int __pyx_lineno = 0;
12229   const char *__pyx_filename = NULL;
12230   int __pyx_clineno = 0;
12231   __Pyx_RefNannySetupContext("visit_BinopNode", 0);
12232 
12233   /* "Cython/Compiler/Visitor.py":531
12234  *
12235  *     def visit_BinopNode(self, node):
12236  *         return self._visit_binop_node(node)             # <<<<<<<<<<<<<<
12237  *
12238  *     def _visit_binop_node(self, node):
12239  */
12240   __Pyx_XDECREF(__pyx_r);
12241   __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_7Visitor_MethodDispatcherTransform *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.__pyx_base.__pyx_vtab)->_visit_binop_node(__pyx_v_self, __pyx_v_node); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 531, __pyx_L1_error)
12242   __Pyx_GOTREF(__pyx_t_1);
12243   __pyx_r = __pyx_t_1;
12244   __pyx_t_1 = 0;
12245   goto __pyx_L0;
12246 
12247   /* "Cython/Compiler/Visitor.py":530
12248  *         return self._visit_binop_node(node)
12249  *
12250  *     def visit_BinopNode(self, node):             # <<<<<<<<<<<<<<
12251  *         return self._visit_binop_node(node)
12252  *
12253  */
12254 
12255   /* function exit code */
12256   __pyx_L1_error:;
12257   __Pyx_XDECREF(__pyx_t_1);
12258   __Pyx_AddTraceback("Cython.Compiler.Visitor.MethodDispatcherTransform.visit_BinopNode", __pyx_clineno, __pyx_lineno, __pyx_filename);
12259   __pyx_r = NULL;
12260   __pyx_L0:;
12261   __Pyx_XGIVEREF(__pyx_r);
12262   __Pyx_RefNannyFinishContext();
12263   return __pyx_r;
12264 }
12265 
12266 /* "Cython/Compiler/Visitor.py":533
12267  *         return self._visit_binop_node(node)
12268  *
12269  *     def _visit_binop_node(self, node):             # <<<<<<<<<<<<<<
12270  *         self._process_children(node)
12271  *         # FIXME: could special case 'not_in'
12272  */
12273 
__pyx_f_6Cython_8Compiler_7Visitor_25MethodDispatcherTransform__visit_binop_node(struct __pyx_obj_6Cython_8Compiler_7Visitor_MethodDispatcherTransform * __pyx_v_self,PyObject * __pyx_v_node)12274 static PyObject *__pyx_f_6Cython_8Compiler_7Visitor_25MethodDispatcherTransform__visit_binop_node(struct __pyx_obj_6Cython_8Compiler_7Visitor_MethodDispatcherTransform *__pyx_v_self, PyObject *__pyx_v_node) {
12275   PyObject *__pyx_v_special_method_name = NULL;
12276   PyObject *__pyx_v_operand1 = NULL;
12277   PyObject *__pyx_v_operand2 = NULL;
12278   PyObject *__pyx_v_obj_type = NULL;
12279   PyObject *__pyx_v_type_name = NULL;
12280   PyObject *__pyx_r = NULL;
12281   __Pyx_RefNannyDeclarations
12282   PyObject *__pyx_t_1 = NULL;
12283   PyObject *__pyx_t_2 = NULL;
12284   PyObject *__pyx_t_3 = NULL;
12285   PyObject *__pyx_t_4 = NULL;
12286   int __pyx_t_5;
12287   PyObject *__pyx_t_6 = NULL;
12288   PyObject *__pyx_t_7 = NULL;
12289   PyObject *__pyx_t_8 = NULL;
12290   int __pyx_t_9;
12291   int __pyx_lineno = 0;
12292   const char *__pyx_filename = NULL;
12293   int __pyx_clineno = 0;
12294   __Pyx_RefNannySetupContext("_visit_binop_node", 0);
12295   __Pyx_INCREF(__pyx_v_node);
12296 
12297   /* "Cython/Compiler/Visitor.py":534
12298  *
12299  *     def _visit_binop_node(self, node):
12300  *         self._process_children(node)             # <<<<<<<<<<<<<<
12301  *         # FIXME: could special case 'not_in'
12302  *         special_method_name = find_special_method_for_binary_operator(node.operator)
12303  */
12304   __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_7Visitor_MethodDispatcherTransform *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.__pyx_base.__pyx_vtab)->__pyx_base.__pyx_base.__pyx_base._process_children(((struct __pyx_obj_6Cython_8Compiler_7Visitor_VisitorTransform *)__pyx_v_self), __pyx_v_node, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 534, __pyx_L1_error)
12305   __Pyx_GOTREF(__pyx_t_1);
12306   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
12307 
12308   /* "Cython/Compiler/Visitor.py":536
12309  *         self._process_children(node)
12310  *         # FIXME: could special case 'not_in'
12311  *         special_method_name = find_special_method_for_binary_operator(node.operator)             # <<<<<<<<<<<<<<
12312  *         if special_method_name:
12313  *             operand1, operand2 = node.operand1, node.operand2
12314  */
12315   __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_find_special_method_for_binary_o); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 536, __pyx_L1_error)
12316   __Pyx_GOTREF(__pyx_t_2);
12317   __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_operator); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 536, __pyx_L1_error)
12318   __Pyx_GOTREF(__pyx_t_3);
12319   __pyx_t_4 = NULL;
12320   if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
12321     __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
12322     if (likely(__pyx_t_4)) {
12323       PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
12324       __Pyx_INCREF(__pyx_t_4);
12325       __Pyx_INCREF(function);
12326       __Pyx_DECREF_SET(__pyx_t_2, function);
12327     }
12328   }
12329   __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3);
12330   __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
12331   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
12332   if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 536, __pyx_L1_error)
12333   __Pyx_GOTREF(__pyx_t_1);
12334   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
12335   __pyx_v_special_method_name = __pyx_t_1;
12336   __pyx_t_1 = 0;
12337 
12338   /* "Cython/Compiler/Visitor.py":537
12339  *         # FIXME: could special case 'not_in'
12340  *         special_method_name = find_special_method_for_binary_operator(node.operator)
12341  *         if special_method_name:             # <<<<<<<<<<<<<<
12342  *             operand1, operand2 = node.operand1, node.operand2
12343  *             if special_method_name == '__contains__':
12344  */
12345   __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_v_special_method_name); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 537, __pyx_L1_error)
12346   if (__pyx_t_5) {
12347 
12348     /* "Cython/Compiler/Visitor.py":538
12349  *         special_method_name = find_special_method_for_binary_operator(node.operator)
12350  *         if special_method_name:
12351  *             operand1, operand2 = node.operand1, node.operand2             # <<<<<<<<<<<<<<
12352  *             if special_method_name == '__contains__':
12353  *                 operand1, operand2 = operand2, operand1
12354  */
12355     __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_operand1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 538, __pyx_L1_error)
12356     __Pyx_GOTREF(__pyx_t_1);
12357     __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_operand2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 538, __pyx_L1_error)
12358     __Pyx_GOTREF(__pyx_t_2);
12359     __pyx_v_operand1 = __pyx_t_1;
12360     __pyx_t_1 = 0;
12361     __pyx_v_operand2 = __pyx_t_2;
12362     __pyx_t_2 = 0;
12363 
12364     /* "Cython/Compiler/Visitor.py":539
12365  *         if special_method_name:
12366  *             operand1, operand2 = node.operand1, node.operand2
12367  *             if special_method_name == '__contains__':             # <<<<<<<<<<<<<<
12368  *                 operand1, operand2 = operand2, operand1
12369  *             elif special_method_name == '__div__':
12370  */
12371     __pyx_t_5 = (__Pyx_PyUnicode_Equals(__pyx_v_special_method_name, __pyx_n_u_contains, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 539, __pyx_L1_error)
12372     if (__pyx_t_5) {
12373 
12374       /* "Cython/Compiler/Visitor.py":540
12375  *             operand1, operand2 = node.operand1, node.operand2
12376  *             if special_method_name == '__contains__':
12377  *                 operand1, operand2 = operand2, operand1             # <<<<<<<<<<<<<<
12378  *             elif special_method_name == '__div__':
12379  *                 if Future.division in self.current_env().global_scope().context.future_directives:
12380  */
12381       __pyx_t_6 = __pyx_v_operand2;
12382       __pyx_t_7 = __pyx_v_operand1;
12383       __pyx_v_operand1 = __pyx_t_6;
12384       __pyx_t_6 = 0;
12385       __pyx_v_operand2 = __pyx_t_7;
12386       __pyx_t_7 = 0;
12387 
12388       /* "Cython/Compiler/Visitor.py":539
12389  *         if special_method_name:
12390  *             operand1, operand2 = node.operand1, node.operand2
12391  *             if special_method_name == '__contains__':             # <<<<<<<<<<<<<<
12392  *                 operand1, operand2 = operand2, operand1
12393  *             elif special_method_name == '__div__':
12394  */
12395       goto __pyx_L4;
12396     }
12397 
12398     /* "Cython/Compiler/Visitor.py":541
12399  *             if special_method_name == '__contains__':
12400  *                 operand1, operand2 = operand2, operand1
12401  *             elif special_method_name == '__div__':             # <<<<<<<<<<<<<<
12402  *                 if Future.division in self.current_env().global_scope().context.future_directives:
12403  *                     special_method_name = '__truediv__'
12404  */
12405     __pyx_t_5 = (__Pyx_PyUnicode_Equals(__pyx_v_special_method_name, __pyx_n_u_div, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 541, __pyx_L1_error)
12406     if (__pyx_t_5) {
12407 
12408       /* "Cython/Compiler/Visitor.py":542
12409  *                 operand1, operand2 = operand2, operand1
12410  *             elif special_method_name == '__div__':
12411  *                 if Future.division in self.current_env().global_scope().context.future_directives:             # <<<<<<<<<<<<<<
12412  *                     special_method_name = '__truediv__'
12413  *             obj_type = operand1.type
12414  */
12415       __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_Future); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 542, __pyx_L1_error)
12416       __Pyx_GOTREF(__pyx_t_2);
12417       __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_division); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 542, __pyx_L1_error)
12418       __Pyx_GOTREF(__pyx_t_1);
12419       __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
12420       __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_current_env); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 542, __pyx_L1_error)
12421       __Pyx_GOTREF(__pyx_t_4);
12422       __pyx_t_8 = NULL;
12423       if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
12424         __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_4);
12425         if (likely(__pyx_t_8)) {
12426           PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
12427           __Pyx_INCREF(__pyx_t_8);
12428           __Pyx_INCREF(function);
12429           __Pyx_DECREF_SET(__pyx_t_4, function);
12430         }
12431       }
12432       __pyx_t_3 = (__pyx_t_8) ? __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_8) : __Pyx_PyObject_CallNoArg(__pyx_t_4);
12433       __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
12434       if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 542, __pyx_L1_error)
12435       __Pyx_GOTREF(__pyx_t_3);
12436       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
12437       __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_global_scope); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 542, __pyx_L1_error)
12438       __Pyx_GOTREF(__pyx_t_4);
12439       __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
12440       __pyx_t_3 = NULL;
12441       if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
12442         __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4);
12443         if (likely(__pyx_t_3)) {
12444           PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
12445           __Pyx_INCREF(__pyx_t_3);
12446           __Pyx_INCREF(function);
12447           __Pyx_DECREF_SET(__pyx_t_4, function);
12448         }
12449       }
12450       __pyx_t_2 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_4);
12451       __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
12452       if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 542, __pyx_L1_error)
12453       __Pyx_GOTREF(__pyx_t_2);
12454       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
12455       __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_context); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 542, __pyx_L1_error)
12456       __Pyx_GOTREF(__pyx_t_4);
12457       __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
12458       __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_future_directives); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 542, __pyx_L1_error)
12459       __Pyx_GOTREF(__pyx_t_2);
12460       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
12461       __pyx_t_5 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, __pyx_t_2, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 542, __pyx_L1_error)
12462       __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
12463       __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
12464       __pyx_t_9 = (__pyx_t_5 != 0);
12465       if (__pyx_t_9) {
12466 
12467         /* "Cython/Compiler/Visitor.py":543
12468  *             elif special_method_name == '__div__':
12469  *                 if Future.division in self.current_env().global_scope().context.future_directives:
12470  *                     special_method_name = '__truediv__'             # <<<<<<<<<<<<<<
12471  *             obj_type = operand1.type
12472  *             if obj_type.is_builtin_type:
12473  */
12474         __Pyx_INCREF(__pyx_n_u_truediv);
12475         __Pyx_DECREF_SET(__pyx_v_special_method_name, __pyx_n_u_truediv);
12476 
12477         /* "Cython/Compiler/Visitor.py":542
12478  *                 operand1, operand2 = operand2, operand1
12479  *             elif special_method_name == '__div__':
12480  *                 if Future.division in self.current_env().global_scope().context.future_directives:             # <<<<<<<<<<<<<<
12481  *                     special_method_name = '__truediv__'
12482  *             obj_type = operand1.type
12483  */
12484       }
12485 
12486       /* "Cython/Compiler/Visitor.py":541
12487  *             if special_method_name == '__contains__':
12488  *                 operand1, operand2 = operand2, operand1
12489  *             elif special_method_name == '__div__':             # <<<<<<<<<<<<<<
12490  *                 if Future.division in self.current_env().global_scope().context.future_directives:
12491  *                     special_method_name = '__truediv__'
12492  */
12493     }
12494     __pyx_L4:;
12495 
12496     /* "Cython/Compiler/Visitor.py":544
12497  *                 if Future.division in self.current_env().global_scope().context.future_directives:
12498  *                     special_method_name = '__truediv__'
12499  *             obj_type = operand1.type             # <<<<<<<<<<<<<<
12500  *             if obj_type.is_builtin_type:
12501  *                 type_name = obj_type.name
12502  */
12503     __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_operand1, __pyx_n_s_type); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 544, __pyx_L1_error)
12504     __Pyx_GOTREF(__pyx_t_2);
12505     __pyx_v_obj_type = __pyx_t_2;
12506     __pyx_t_2 = 0;
12507 
12508     /* "Cython/Compiler/Visitor.py":545
12509  *                     special_method_name = '__truediv__'
12510  *             obj_type = operand1.type
12511  *             if obj_type.is_builtin_type:             # <<<<<<<<<<<<<<
12512  *                 type_name = obj_type.name
12513  *             else:
12514  */
12515     __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_obj_type, __pyx_n_s_is_builtin_type); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 545, __pyx_L1_error)
12516     __Pyx_GOTREF(__pyx_t_2);
12517     __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 545, __pyx_L1_error)
12518     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
12519     if (__pyx_t_9) {
12520 
12521       /* "Cython/Compiler/Visitor.py":546
12522  *             obj_type = operand1.type
12523  *             if obj_type.is_builtin_type:
12524  *                 type_name = obj_type.name             # <<<<<<<<<<<<<<
12525  *             else:
12526  *                 type_name = "object"  # safety measure
12527  */
12528       __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_obj_type, __pyx_n_s_name_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 546, __pyx_L1_error)
12529       __Pyx_GOTREF(__pyx_t_2);
12530       __pyx_v_type_name = __pyx_t_2;
12531       __pyx_t_2 = 0;
12532 
12533       /* "Cython/Compiler/Visitor.py":545
12534  *                     special_method_name = '__truediv__'
12535  *             obj_type = operand1.type
12536  *             if obj_type.is_builtin_type:             # <<<<<<<<<<<<<<
12537  *                 type_name = obj_type.name
12538  *             else:
12539  */
12540       goto __pyx_L6;
12541     }
12542 
12543     /* "Cython/Compiler/Visitor.py":548
12544  *                 type_name = obj_type.name
12545  *             else:
12546  *                 type_name = "object"  # safety measure             # <<<<<<<<<<<<<<
12547  *             node = self._dispatch_to_method_handler(
12548  *                 special_method_name, None, False, type_name,
12549  */
12550     /*else*/ {
12551       __Pyx_INCREF(__pyx_n_u_object);
12552       __pyx_v_type_name = __pyx_n_u_object;
12553     }
12554     __pyx_L6:;
12555 
12556     /* "Cython/Compiler/Visitor.py":551
12557  *             node = self._dispatch_to_method_handler(
12558  *                 special_method_name, None, False, type_name,
12559  *                 node, None, [operand1, operand2], None)             # <<<<<<<<<<<<<<
12560  *         return node
12561  *
12562  */
12563     __pyx_t_2 = PyList_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 551, __pyx_L1_error)
12564     __Pyx_GOTREF(__pyx_t_2);
12565     __Pyx_INCREF(__pyx_v_operand1);
12566     __Pyx_GIVEREF(__pyx_v_operand1);
12567     PyList_SET_ITEM(__pyx_t_2, 0, __pyx_v_operand1);
12568     __Pyx_INCREF(__pyx_v_operand2);
12569     __Pyx_GIVEREF(__pyx_v_operand2);
12570     PyList_SET_ITEM(__pyx_t_2, 1, __pyx_v_operand2);
12571 
12572     /* "Cython/Compiler/Visitor.py":549
12573  *             else:
12574  *                 type_name = "object"  # safety measure
12575  *             node = self._dispatch_to_method_handler(             # <<<<<<<<<<<<<<
12576  *                 special_method_name, None, False, type_name,
12577  *                 node, None, [operand1, operand2], None)
12578  */
12579     __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_7Visitor_MethodDispatcherTransform *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.__pyx_base.__pyx_vtab)->_dispatch_to_method_handler(__pyx_v_self, __pyx_v_special_method_name, Py_None, Py_False, __pyx_v_type_name, __pyx_v_node, Py_None, __pyx_t_2, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 549, __pyx_L1_error)
12580     __Pyx_GOTREF(__pyx_t_1);
12581     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
12582     __Pyx_DECREF_SET(__pyx_v_node, __pyx_t_1);
12583     __pyx_t_1 = 0;
12584 
12585     /* "Cython/Compiler/Visitor.py":537
12586  *         # FIXME: could special case 'not_in'
12587  *         special_method_name = find_special_method_for_binary_operator(node.operator)
12588  *         if special_method_name:             # <<<<<<<<<<<<<<
12589  *             operand1, operand2 = node.operand1, node.operand2
12590  *             if special_method_name == '__contains__':
12591  */
12592   }
12593 
12594   /* "Cython/Compiler/Visitor.py":552
12595  *                 special_method_name, None, False, type_name,
12596  *                 node, None, [operand1, operand2], None)
12597  *         return node             # <<<<<<<<<<<<<<
12598  *
12599  *     def visit_UnopNode(self, node):
12600  */
12601   __Pyx_XDECREF(__pyx_r);
12602   __Pyx_INCREF(__pyx_v_node);
12603   __pyx_r = __pyx_v_node;
12604   goto __pyx_L0;
12605 
12606   /* "Cython/Compiler/Visitor.py":533
12607  *         return self._visit_binop_node(node)
12608  *
12609  *     def _visit_binop_node(self, node):             # <<<<<<<<<<<<<<
12610  *         self._process_children(node)
12611  *         # FIXME: could special case 'not_in'
12612  */
12613 
12614   /* function exit code */
12615   __pyx_L1_error:;
12616   __Pyx_XDECREF(__pyx_t_1);
12617   __Pyx_XDECREF(__pyx_t_2);
12618   __Pyx_XDECREF(__pyx_t_3);
12619   __Pyx_XDECREF(__pyx_t_4);
12620   __Pyx_XDECREF(__pyx_t_8);
12621   __Pyx_AddTraceback("Cython.Compiler.Visitor.MethodDispatcherTransform._visit_binop_node", __pyx_clineno, __pyx_lineno, __pyx_filename);
12622   __pyx_r = 0;
12623   __pyx_L0:;
12624   __Pyx_XDECREF(__pyx_v_special_method_name);
12625   __Pyx_XDECREF(__pyx_v_operand1);
12626   __Pyx_XDECREF(__pyx_v_operand2);
12627   __Pyx_XDECREF(__pyx_v_obj_type);
12628   __Pyx_XDECREF(__pyx_v_type_name);
12629   __Pyx_XDECREF(__pyx_v_node);
12630   __Pyx_XGIVEREF(__pyx_r);
12631   __Pyx_RefNannyFinishContext();
12632   return __pyx_r;
12633 }
12634 
12635 /* "Cython/Compiler/Visitor.py":554
12636  *         return node
12637  *
12638  *     def visit_UnopNode(self, node):             # <<<<<<<<<<<<<<
12639  *         self._process_children(node)
12640  *         special_method_name = find_special_method_for_unary_operator(node.operator)
12641  */
12642 
12643 /* Python wrapper */
12644 static PyObject *__pyx_pw_6Cython_8Compiler_7Visitor_25MethodDispatcherTransform_9visit_UnopNode(PyObject *__pyx_v_self, PyObject *__pyx_v_node); /*proto*/
12645 static PyMethodDef __pyx_mdef_6Cython_8Compiler_7Visitor_25MethodDispatcherTransform_9visit_UnopNode = {"visit_UnopNode", (PyCFunction)__pyx_pw_6Cython_8Compiler_7Visitor_25MethodDispatcherTransform_9visit_UnopNode, METH_O, 0};
__pyx_pw_6Cython_8Compiler_7Visitor_25MethodDispatcherTransform_9visit_UnopNode(PyObject * __pyx_v_self,PyObject * __pyx_v_node)12646 static PyObject *__pyx_pw_6Cython_8Compiler_7Visitor_25MethodDispatcherTransform_9visit_UnopNode(PyObject *__pyx_v_self, PyObject *__pyx_v_node) {
12647   PyObject *__pyx_r = 0;
12648   __Pyx_RefNannyDeclarations
12649   __Pyx_RefNannySetupContext("visit_UnopNode (wrapper)", 0);
12650   __pyx_r = __pyx_pf_6Cython_8Compiler_7Visitor_25MethodDispatcherTransform_8visit_UnopNode(((struct __pyx_obj_6Cython_8Compiler_7Visitor_MethodDispatcherTransform *)__pyx_v_self), ((PyObject *)__pyx_v_node));
12651 
12652   /* function exit code */
12653   __Pyx_RefNannyFinishContext();
12654   return __pyx_r;
12655 }
12656 
__pyx_pf_6Cython_8Compiler_7Visitor_25MethodDispatcherTransform_8visit_UnopNode(struct __pyx_obj_6Cython_8Compiler_7Visitor_MethodDispatcherTransform * __pyx_v_self,PyObject * __pyx_v_node)12657 static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_25MethodDispatcherTransform_8visit_UnopNode(struct __pyx_obj_6Cython_8Compiler_7Visitor_MethodDispatcherTransform *__pyx_v_self, PyObject *__pyx_v_node) {
12658   PyObject *__pyx_v_special_method_name = NULL;
12659   PyObject *__pyx_v_operand = NULL;
12660   PyObject *__pyx_v_obj_type = NULL;
12661   PyObject *__pyx_v_type_name = NULL;
12662   PyObject *__pyx_r = NULL;
12663   __Pyx_RefNannyDeclarations
12664   PyObject *__pyx_t_1 = NULL;
12665   PyObject *__pyx_t_2 = NULL;
12666   PyObject *__pyx_t_3 = NULL;
12667   PyObject *__pyx_t_4 = NULL;
12668   int __pyx_t_5;
12669   int __pyx_lineno = 0;
12670   const char *__pyx_filename = NULL;
12671   int __pyx_clineno = 0;
12672   __Pyx_RefNannySetupContext("visit_UnopNode", 0);
12673   __Pyx_INCREF(__pyx_v_node);
12674 
12675   /* "Cython/Compiler/Visitor.py":555
12676  *
12677  *     def visit_UnopNode(self, node):
12678  *         self._process_children(node)             # <<<<<<<<<<<<<<
12679  *         special_method_name = find_special_method_for_unary_operator(node.operator)
12680  *         if special_method_name:
12681  */
12682   __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_7Visitor_MethodDispatcherTransform *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.__pyx_base.__pyx_vtab)->__pyx_base.__pyx_base.__pyx_base._process_children(((struct __pyx_obj_6Cython_8Compiler_7Visitor_VisitorTransform *)__pyx_v_self), __pyx_v_node, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 555, __pyx_L1_error)
12683   __Pyx_GOTREF(__pyx_t_1);
12684   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
12685 
12686   /* "Cython/Compiler/Visitor.py":556
12687  *     def visit_UnopNode(self, node):
12688  *         self._process_children(node)
12689  *         special_method_name = find_special_method_for_unary_operator(node.operator)             # <<<<<<<<<<<<<<
12690  *         if special_method_name:
12691  *             operand = node.operand
12692  */
12693   __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_find_special_method_for_unary_op); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 556, __pyx_L1_error)
12694   __Pyx_GOTREF(__pyx_t_2);
12695   __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_operator); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 556, __pyx_L1_error)
12696   __Pyx_GOTREF(__pyx_t_3);
12697   __pyx_t_4 = NULL;
12698   if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
12699     __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
12700     if (likely(__pyx_t_4)) {
12701       PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
12702       __Pyx_INCREF(__pyx_t_4);
12703       __Pyx_INCREF(function);
12704       __Pyx_DECREF_SET(__pyx_t_2, function);
12705     }
12706   }
12707   __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3);
12708   __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
12709   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
12710   if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 556, __pyx_L1_error)
12711   __Pyx_GOTREF(__pyx_t_1);
12712   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
12713   __pyx_v_special_method_name = __pyx_t_1;
12714   __pyx_t_1 = 0;
12715 
12716   /* "Cython/Compiler/Visitor.py":557
12717  *         self._process_children(node)
12718  *         special_method_name = find_special_method_for_unary_operator(node.operator)
12719  *         if special_method_name:             # <<<<<<<<<<<<<<
12720  *             operand = node.operand
12721  *             obj_type = operand.type
12722  */
12723   __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_v_special_method_name); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 557, __pyx_L1_error)
12724   if (__pyx_t_5) {
12725 
12726     /* "Cython/Compiler/Visitor.py":558
12727  *         special_method_name = find_special_method_for_unary_operator(node.operator)
12728  *         if special_method_name:
12729  *             operand = node.operand             # <<<<<<<<<<<<<<
12730  *             obj_type = operand.type
12731  *             if obj_type.is_builtin_type:
12732  */
12733     __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_operand); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 558, __pyx_L1_error)
12734     __Pyx_GOTREF(__pyx_t_1);
12735     __pyx_v_operand = __pyx_t_1;
12736     __pyx_t_1 = 0;
12737 
12738     /* "Cython/Compiler/Visitor.py":559
12739  *         if special_method_name:
12740  *             operand = node.operand
12741  *             obj_type = operand.type             # <<<<<<<<<<<<<<
12742  *             if obj_type.is_builtin_type:
12743  *                 type_name = obj_type.name
12744  */
12745     __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_operand, __pyx_n_s_type); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 559, __pyx_L1_error)
12746     __Pyx_GOTREF(__pyx_t_1);
12747     __pyx_v_obj_type = __pyx_t_1;
12748     __pyx_t_1 = 0;
12749 
12750     /* "Cython/Compiler/Visitor.py":560
12751  *             operand = node.operand
12752  *             obj_type = operand.type
12753  *             if obj_type.is_builtin_type:             # <<<<<<<<<<<<<<
12754  *                 type_name = obj_type.name
12755  *             else:
12756  */
12757     __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_obj_type, __pyx_n_s_is_builtin_type); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 560, __pyx_L1_error)
12758     __Pyx_GOTREF(__pyx_t_1);
12759     __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 560, __pyx_L1_error)
12760     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
12761     if (__pyx_t_5) {
12762 
12763       /* "Cython/Compiler/Visitor.py":561
12764  *             obj_type = operand.type
12765  *             if obj_type.is_builtin_type:
12766  *                 type_name = obj_type.name             # <<<<<<<<<<<<<<
12767  *             else:
12768  *                 type_name = "object"  # safety measure
12769  */
12770       __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_obj_type, __pyx_n_s_name_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 561, __pyx_L1_error)
12771       __Pyx_GOTREF(__pyx_t_1);
12772       __pyx_v_type_name = __pyx_t_1;
12773       __pyx_t_1 = 0;
12774 
12775       /* "Cython/Compiler/Visitor.py":560
12776  *             operand = node.operand
12777  *             obj_type = operand.type
12778  *             if obj_type.is_builtin_type:             # <<<<<<<<<<<<<<
12779  *                 type_name = obj_type.name
12780  *             else:
12781  */
12782       goto __pyx_L4;
12783     }
12784 
12785     /* "Cython/Compiler/Visitor.py":563
12786  *                 type_name = obj_type.name
12787  *             else:
12788  *                 type_name = "object"  # safety measure             # <<<<<<<<<<<<<<
12789  *             node = self._dispatch_to_method_handler(
12790  *                 special_method_name, None, False, type_name,
12791  */
12792     /*else*/ {
12793       __Pyx_INCREF(__pyx_n_u_object);
12794       __pyx_v_type_name = __pyx_n_u_object;
12795     }
12796     __pyx_L4:;
12797 
12798     /* "Cython/Compiler/Visitor.py":566
12799  *             node = self._dispatch_to_method_handler(
12800  *                 special_method_name, None, False, type_name,
12801  *                 node, None, [operand], None)             # <<<<<<<<<<<<<<
12802  *         return node
12803  *
12804  */
12805     __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 566, __pyx_L1_error)
12806     __Pyx_GOTREF(__pyx_t_1);
12807     __Pyx_INCREF(__pyx_v_operand);
12808     __Pyx_GIVEREF(__pyx_v_operand);
12809     PyList_SET_ITEM(__pyx_t_1, 0, __pyx_v_operand);
12810 
12811     /* "Cython/Compiler/Visitor.py":564
12812  *             else:
12813  *                 type_name = "object"  # safety measure
12814  *             node = self._dispatch_to_method_handler(             # <<<<<<<<<<<<<<
12815  *                 special_method_name, None, False, type_name,
12816  *                 node, None, [operand], None)
12817  */
12818     __pyx_t_2 = ((struct __pyx_vtabstruct_6Cython_8Compiler_7Visitor_MethodDispatcherTransform *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.__pyx_base.__pyx_vtab)->_dispatch_to_method_handler(__pyx_v_self, __pyx_v_special_method_name, Py_None, Py_False, __pyx_v_type_name, __pyx_v_node, Py_None, __pyx_t_1, Py_None); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 564, __pyx_L1_error)
12819     __Pyx_GOTREF(__pyx_t_2);
12820     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
12821     __Pyx_DECREF_SET(__pyx_v_node, __pyx_t_2);
12822     __pyx_t_2 = 0;
12823 
12824     /* "Cython/Compiler/Visitor.py":557
12825  *         self._process_children(node)
12826  *         special_method_name = find_special_method_for_unary_operator(node.operator)
12827  *         if special_method_name:             # <<<<<<<<<<<<<<
12828  *             operand = node.operand
12829  *             obj_type = operand.type
12830  */
12831   }
12832 
12833   /* "Cython/Compiler/Visitor.py":567
12834  *                 special_method_name, None, False, type_name,
12835  *                 node, None, [operand], None)
12836  *         return node             # <<<<<<<<<<<<<<
12837  *
12838  *     ### dispatch to specific handlers
12839  */
12840   __Pyx_XDECREF(__pyx_r);
12841   __Pyx_INCREF(__pyx_v_node);
12842   __pyx_r = __pyx_v_node;
12843   goto __pyx_L0;
12844 
12845   /* "Cython/Compiler/Visitor.py":554
12846  *         return node
12847  *
12848  *     def visit_UnopNode(self, node):             # <<<<<<<<<<<<<<
12849  *         self._process_children(node)
12850  *         special_method_name = find_special_method_for_unary_operator(node.operator)
12851  */
12852 
12853   /* function exit code */
12854   __pyx_L1_error:;
12855   __Pyx_XDECREF(__pyx_t_1);
12856   __Pyx_XDECREF(__pyx_t_2);
12857   __Pyx_XDECREF(__pyx_t_3);
12858   __Pyx_XDECREF(__pyx_t_4);
12859   __Pyx_AddTraceback("Cython.Compiler.Visitor.MethodDispatcherTransform.visit_UnopNode", __pyx_clineno, __pyx_lineno, __pyx_filename);
12860   __pyx_r = NULL;
12861   __pyx_L0:;
12862   __Pyx_XDECREF(__pyx_v_special_method_name);
12863   __Pyx_XDECREF(__pyx_v_operand);
12864   __Pyx_XDECREF(__pyx_v_obj_type);
12865   __Pyx_XDECREF(__pyx_v_type_name);
12866   __Pyx_XDECREF(__pyx_v_node);
12867   __Pyx_XGIVEREF(__pyx_r);
12868   __Pyx_RefNannyFinishContext();
12869   return __pyx_r;
12870 }
12871 
12872 /* "Cython/Compiler/Visitor.py":571
12873  *     ### dispatch to specific handlers
12874  *
12875  *     def _find_handler(self, match_name, has_kwargs):             # <<<<<<<<<<<<<<
12876  *         call_type = has_kwargs and 'general' or 'simple'
12877  *         handler = getattr(self, '_handle_%s_%s' % (call_type, match_name), None)
12878  */
12879 
__pyx_f_6Cython_8Compiler_7Visitor_25MethodDispatcherTransform__find_handler(struct __pyx_obj_6Cython_8Compiler_7Visitor_MethodDispatcherTransform * __pyx_v_self,PyObject * __pyx_v_match_name,int __pyx_v_has_kwargs)12880 static PyObject *__pyx_f_6Cython_8Compiler_7Visitor_25MethodDispatcherTransform__find_handler(struct __pyx_obj_6Cython_8Compiler_7Visitor_MethodDispatcherTransform *__pyx_v_self, PyObject *__pyx_v_match_name, int __pyx_v_has_kwargs) {
12881   PyObject *__pyx_v_call_type = NULL;
12882   PyObject *__pyx_v_handler = NULL;
12883   PyObject *__pyx_r = NULL;
12884   __Pyx_RefNannyDeclarations
12885   PyObject *__pyx_t_1 = NULL;
12886   int __pyx_t_2;
12887   Py_ssize_t __pyx_t_3;
12888   Py_UCS4 __pyx_t_4;
12889   PyObject *__pyx_t_5 = NULL;
12890   int __pyx_t_6;
12891   int __pyx_lineno = 0;
12892   const char *__pyx_filename = NULL;
12893   int __pyx_clineno = 0;
12894   __Pyx_RefNannySetupContext("_find_handler", 0);
12895 
12896   /* "Cython/Compiler/Visitor.py":572
12897  *
12898  *     def _find_handler(self, match_name, has_kwargs):
12899  *         call_type = has_kwargs and 'general' or 'simple'             # <<<<<<<<<<<<<<
12900  *         handler = getattr(self, '_handle_%s_%s' % (call_type, match_name), None)
12901  *         if handler is None:
12902  */
12903   if (!__pyx_v_has_kwargs) {
12904     goto __pyx_L4_next_or;
12905   } else {
12906   }
12907   __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_n_u_general); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 572, __pyx_L1_error)
12908   if (!__pyx_t_2) {
12909   } else {
12910     __Pyx_INCREF(__pyx_n_u_general);
12911     __pyx_t_1 = __pyx_n_u_general;
12912     goto __pyx_L3_bool_binop_done;
12913   }
12914   __pyx_L4_next_or:;
12915   __Pyx_INCREF(__pyx_n_u_simple);
12916   __pyx_t_1 = __pyx_n_u_simple;
12917   __pyx_L3_bool_binop_done:;
12918   __pyx_v_call_type = __pyx_t_1;
12919   __pyx_t_1 = 0;
12920 
12921   /* "Cython/Compiler/Visitor.py":573
12922  *     def _find_handler(self, match_name, has_kwargs):
12923  *         call_type = has_kwargs and 'general' or 'simple'
12924  *         handler = getattr(self, '_handle_%s_%s' % (call_type, match_name), None)             # <<<<<<<<<<<<<<
12925  *         if handler is None:
12926  *             handler = getattr(self, '_handle_any_%s' % match_name, None)
12927  */
12928   __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 573, __pyx_L1_error)
12929   __Pyx_GOTREF(__pyx_t_1);
12930   __pyx_t_3 = 0;
12931   __pyx_t_4 = 127;
12932   __Pyx_INCREF(__pyx_n_u_handle);
12933   __pyx_t_3 += 8;
12934   __Pyx_GIVEREF(__pyx_n_u_handle);
12935   PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_n_u_handle);
12936   __pyx_t_5 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Unicode(__pyx_v_call_type), __pyx_empty_unicode); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 573, __pyx_L1_error)
12937   __Pyx_GOTREF(__pyx_t_5);
12938   __pyx_t_4 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5) > __pyx_t_4) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5) : __pyx_t_4;
12939   __pyx_t_3 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_5);
12940   __Pyx_GIVEREF(__pyx_t_5);
12941   PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5);
12942   __pyx_t_5 = 0;
12943   __Pyx_INCREF(__pyx_n_u__2);
12944   __pyx_t_3 += 1;
12945   __Pyx_GIVEREF(__pyx_n_u__2);
12946   PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_n_u__2);
12947   __pyx_t_5 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Unicode(__pyx_v_match_name), __pyx_empty_unicode); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 573, __pyx_L1_error)
12948   __Pyx_GOTREF(__pyx_t_5);
12949   __pyx_t_4 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5) > __pyx_t_4) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5) : __pyx_t_4;
12950   __pyx_t_3 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_5);
12951   __Pyx_GIVEREF(__pyx_t_5);
12952   PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_t_5);
12953   __pyx_t_5 = 0;
12954   __pyx_t_5 = __Pyx_PyUnicode_Join(__pyx_t_1, 4, __pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 573, __pyx_L1_error)
12955   __Pyx_GOTREF(__pyx_t_5);
12956   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
12957   __pyx_t_1 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_t_5, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 573, __pyx_L1_error)
12958   __Pyx_GOTREF(__pyx_t_1);
12959   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
12960   __pyx_v_handler = __pyx_t_1;
12961   __pyx_t_1 = 0;
12962 
12963   /* "Cython/Compiler/Visitor.py":574
12964  *         call_type = has_kwargs and 'general' or 'simple'
12965  *         handler = getattr(self, '_handle_%s_%s' % (call_type, match_name), None)
12966  *         if handler is None:             # <<<<<<<<<<<<<<
12967  *             handler = getattr(self, '_handle_any_%s' % match_name, None)
12968  *         return handler
12969  */
12970   __pyx_t_2 = (__pyx_v_handler == Py_None);
12971   __pyx_t_6 = (__pyx_t_2 != 0);
12972   if (__pyx_t_6) {
12973 
12974     /* "Cython/Compiler/Visitor.py":575
12975  *         handler = getattr(self, '_handle_%s_%s' % (call_type, match_name), None)
12976  *         if handler is None:
12977  *             handler = getattr(self, '_handle_any_%s' % match_name, None)             # <<<<<<<<<<<<<<
12978  *         return handler
12979  *
12980  */
12981     __pyx_t_1 = __Pyx_PyUnicode_FormatSafe(__pyx_kp_u_handle_any__s, __pyx_v_match_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 575, __pyx_L1_error)
12982     __Pyx_GOTREF(__pyx_t_1);
12983     __pyx_t_5 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_t_1, Py_None); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 575, __pyx_L1_error)
12984     __Pyx_GOTREF(__pyx_t_5);
12985     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
12986     __Pyx_DECREF_SET(__pyx_v_handler, __pyx_t_5);
12987     __pyx_t_5 = 0;
12988 
12989     /* "Cython/Compiler/Visitor.py":574
12990  *         call_type = has_kwargs and 'general' or 'simple'
12991  *         handler = getattr(self, '_handle_%s_%s' % (call_type, match_name), None)
12992  *         if handler is None:             # <<<<<<<<<<<<<<
12993  *             handler = getattr(self, '_handle_any_%s' % match_name, None)
12994  *         return handler
12995  */
12996   }
12997 
12998   /* "Cython/Compiler/Visitor.py":576
12999  *         if handler is None:
13000  *             handler = getattr(self, '_handle_any_%s' % match_name, None)
13001  *         return handler             # <<<<<<<<<<<<<<
13002  *
13003  *     def _delegate_to_assigned_value(self, node, function, arg_list, kwargs):
13004  */
13005   __Pyx_XDECREF(__pyx_r);
13006   __Pyx_INCREF(__pyx_v_handler);
13007   __pyx_r = __pyx_v_handler;
13008   goto __pyx_L0;
13009 
13010   /* "Cython/Compiler/Visitor.py":571
13011  *     ### dispatch to specific handlers
13012  *
13013  *     def _find_handler(self, match_name, has_kwargs):             # <<<<<<<<<<<<<<
13014  *         call_type = has_kwargs and 'general' or 'simple'
13015  *         handler = getattr(self, '_handle_%s_%s' % (call_type, match_name), None)
13016  */
13017 
13018   /* function exit code */
13019   __pyx_L1_error:;
13020   __Pyx_XDECREF(__pyx_t_1);
13021   __Pyx_XDECREF(__pyx_t_5);
13022   __Pyx_AddTraceback("Cython.Compiler.Visitor.MethodDispatcherTransform._find_handler", __pyx_clineno, __pyx_lineno, __pyx_filename);
13023   __pyx_r = 0;
13024   __pyx_L0:;
13025   __Pyx_XDECREF(__pyx_v_call_type);
13026   __Pyx_XDECREF(__pyx_v_handler);
13027   __Pyx_XGIVEREF(__pyx_r);
13028   __Pyx_RefNannyFinishContext();
13029   return __pyx_r;
13030 }
13031 
13032 /* "Cython/Compiler/Visitor.py":578
13033  *         return handler
13034  *
13035  *     def _delegate_to_assigned_value(self, node, function, arg_list, kwargs):             # <<<<<<<<<<<<<<
13036  *         assignment = function.cf_state[0]
13037  *         value = assignment.rhs
13038  */
13039 
__pyx_f_6Cython_8Compiler_7Visitor_25MethodDispatcherTransform__delegate_to_assigned_value(struct __pyx_obj_6Cython_8Compiler_7Visitor_MethodDispatcherTransform * __pyx_v_self,PyObject * __pyx_v_node,PyObject * __pyx_v_function,PyObject * __pyx_v_arg_list,PyObject * __pyx_v_kwargs)13040 static PyObject *__pyx_f_6Cython_8Compiler_7Visitor_25MethodDispatcherTransform__delegate_to_assigned_value(struct __pyx_obj_6Cython_8Compiler_7Visitor_MethodDispatcherTransform *__pyx_v_self, PyObject *__pyx_v_node, PyObject *__pyx_v_function, PyObject *__pyx_v_arg_list, PyObject *__pyx_v_kwargs) {
13041   PyObject *__pyx_v_assignment = NULL;
13042   PyObject *__pyx_v_value = NULL;
13043   PyObject *__pyx_r = NULL;
13044   __Pyx_RefNannyDeclarations
13045   PyObject *__pyx_t_1 = NULL;
13046   PyObject *__pyx_t_2 = NULL;
13047   int __pyx_t_3;
13048   int __pyx_t_4;
13049   int __pyx_t_5;
13050   Py_ssize_t __pyx_t_6;
13051   int __pyx_lineno = 0;
13052   const char *__pyx_filename = NULL;
13053   int __pyx_clineno = 0;
13054   __Pyx_RefNannySetupContext("_delegate_to_assigned_value", 0);
13055 
13056   /* "Cython/Compiler/Visitor.py":579
13057  *
13058  *     def _delegate_to_assigned_value(self, node, function, arg_list, kwargs):
13059  *         assignment = function.cf_state[0]             # <<<<<<<<<<<<<<
13060  *         value = assignment.rhs
13061  *         if value.is_name:
13062  */
13063   __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_function, __pyx_n_s_cf_state); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 579, __pyx_L1_error)
13064   __Pyx_GOTREF(__pyx_t_1);
13065   __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_1, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 579, __pyx_L1_error)
13066   __Pyx_GOTREF(__pyx_t_2);
13067   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
13068   __pyx_v_assignment = __pyx_t_2;
13069   __pyx_t_2 = 0;
13070 
13071   /* "Cython/Compiler/Visitor.py":580
13072  *     def _delegate_to_assigned_value(self, node, function, arg_list, kwargs):
13073  *         assignment = function.cf_state[0]
13074  *         value = assignment.rhs             # <<<<<<<<<<<<<<
13075  *         if value.is_name:
13076  *             if not value.entry or len(value.entry.cf_assignments) > 1:
13077  */
13078   __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_assignment, __pyx_n_s_rhs); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 580, __pyx_L1_error)
13079   __Pyx_GOTREF(__pyx_t_2);
13080   __pyx_v_value = __pyx_t_2;
13081   __pyx_t_2 = 0;
13082 
13083   /* "Cython/Compiler/Visitor.py":581
13084  *         assignment = function.cf_state[0]
13085  *         value = assignment.rhs
13086  *         if value.is_name:             # <<<<<<<<<<<<<<
13087  *             if not value.entry or len(value.entry.cf_assignments) > 1:
13088  *                 # the variable might have been reassigned => play safe
13089  */
13090   __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_value, __pyx_n_s_is_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 581, __pyx_L1_error)
13091   __Pyx_GOTREF(__pyx_t_2);
13092   __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 581, __pyx_L1_error)
13093   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
13094   if (__pyx_t_3) {
13095 
13096     /* "Cython/Compiler/Visitor.py":582
13097  *         value = assignment.rhs
13098  *         if value.is_name:
13099  *             if not value.entry or len(value.entry.cf_assignments) > 1:             # <<<<<<<<<<<<<<
13100  *                 # the variable might have been reassigned => play safe
13101  *                 return node
13102  */
13103     __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_value, __pyx_n_s_entry); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 582, __pyx_L1_error)
13104     __Pyx_GOTREF(__pyx_t_2);
13105     __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 582, __pyx_L1_error)
13106     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
13107     __pyx_t_5 = ((!__pyx_t_4) != 0);
13108     if (!__pyx_t_5) {
13109     } else {
13110       __pyx_t_3 = __pyx_t_5;
13111       goto __pyx_L5_bool_binop_done;
13112     }
13113     __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_value, __pyx_n_s_entry); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 582, __pyx_L1_error)
13114     __Pyx_GOTREF(__pyx_t_2);
13115     __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_cf_assignments); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 582, __pyx_L1_error)
13116     __Pyx_GOTREF(__pyx_t_1);
13117     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
13118     __pyx_t_6 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_6 == ((Py_ssize_t)-1))) __PYX_ERR(0, 582, __pyx_L1_error)
13119     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
13120     __pyx_t_5 = ((__pyx_t_6 > 1) != 0);
13121     __pyx_t_3 = __pyx_t_5;
13122     __pyx_L5_bool_binop_done:;
13123     if (__pyx_t_3) {
13124 
13125       /* "Cython/Compiler/Visitor.py":584
13126  *             if not value.entry or len(value.entry.cf_assignments) > 1:
13127  *                 # the variable might have been reassigned => play safe
13128  *                 return node             # <<<<<<<<<<<<<<
13129  *         elif value.is_attribute and value.obj.is_name:
13130  *             if not value.obj.entry or len(value.obj.entry.cf_assignments) > 1:
13131  */
13132       __Pyx_XDECREF(__pyx_r);
13133       __Pyx_INCREF(__pyx_v_node);
13134       __pyx_r = __pyx_v_node;
13135       goto __pyx_L0;
13136 
13137       /* "Cython/Compiler/Visitor.py":582
13138  *         value = assignment.rhs
13139  *         if value.is_name:
13140  *             if not value.entry or len(value.entry.cf_assignments) > 1:             # <<<<<<<<<<<<<<
13141  *                 # the variable might have been reassigned => play safe
13142  *                 return node
13143  */
13144     }
13145 
13146     /* "Cython/Compiler/Visitor.py":581
13147  *         assignment = function.cf_state[0]
13148  *         value = assignment.rhs
13149  *         if value.is_name:             # <<<<<<<<<<<<<<
13150  *             if not value.entry or len(value.entry.cf_assignments) > 1:
13151  *                 # the variable might have been reassigned => play safe
13152  */
13153     goto __pyx_L3;
13154   }
13155 
13156   /* "Cython/Compiler/Visitor.py":585
13157  *                 # the variable might have been reassigned => play safe
13158  *                 return node
13159  *         elif value.is_attribute and value.obj.is_name:             # <<<<<<<<<<<<<<
13160  *             if not value.obj.entry or len(value.obj.entry.cf_assignments) > 1:
13161  *                 # the underlying variable might have been reassigned => play safe
13162  */
13163   __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_value, __pyx_n_s_is_attribute); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 585, __pyx_L1_error)
13164   __Pyx_GOTREF(__pyx_t_1);
13165   __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 585, __pyx_L1_error)
13166   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
13167   if (__pyx_t_5) {
13168   } else {
13169     __pyx_t_3 = __pyx_t_5;
13170     goto __pyx_L7_bool_binop_done;
13171   }
13172   __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_value, __pyx_n_s_obj); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 585, __pyx_L1_error)
13173   __Pyx_GOTREF(__pyx_t_1);
13174   __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_is_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 585, __pyx_L1_error)
13175   __Pyx_GOTREF(__pyx_t_2);
13176   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
13177   __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 585, __pyx_L1_error)
13178   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
13179   __pyx_t_3 = __pyx_t_5;
13180   __pyx_L7_bool_binop_done:;
13181   if (__pyx_t_3) {
13182 
13183     /* "Cython/Compiler/Visitor.py":586
13184  *                 return node
13185  *         elif value.is_attribute and value.obj.is_name:
13186  *             if not value.obj.entry or len(value.obj.entry.cf_assignments) > 1:             # <<<<<<<<<<<<<<
13187  *                 # the underlying variable might have been reassigned => play safe
13188  *                 return node
13189  */
13190     __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_value, __pyx_n_s_obj); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 586, __pyx_L1_error)
13191     __Pyx_GOTREF(__pyx_t_2);
13192     __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_entry); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 586, __pyx_L1_error)
13193     __Pyx_GOTREF(__pyx_t_1);
13194     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
13195     __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 586, __pyx_L1_error)
13196     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
13197     __pyx_t_4 = ((!__pyx_t_5) != 0);
13198     if (!__pyx_t_4) {
13199     } else {
13200       __pyx_t_3 = __pyx_t_4;
13201       goto __pyx_L10_bool_binop_done;
13202     }
13203     __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_value, __pyx_n_s_obj); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 586, __pyx_L1_error)
13204     __Pyx_GOTREF(__pyx_t_1);
13205     __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_entry); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 586, __pyx_L1_error)
13206     __Pyx_GOTREF(__pyx_t_2);
13207     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
13208     __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_cf_assignments); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 586, __pyx_L1_error)
13209     __Pyx_GOTREF(__pyx_t_1);
13210     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
13211     __pyx_t_6 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_6 == ((Py_ssize_t)-1))) __PYX_ERR(0, 586, __pyx_L1_error)
13212     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
13213     __pyx_t_4 = ((__pyx_t_6 > 1) != 0);
13214     __pyx_t_3 = __pyx_t_4;
13215     __pyx_L10_bool_binop_done:;
13216     if (__pyx_t_3) {
13217 
13218       /* "Cython/Compiler/Visitor.py":588
13219  *             if not value.obj.entry or len(value.obj.entry.cf_assignments) > 1:
13220  *                 # the underlying variable might have been reassigned => play safe
13221  *                 return node             # <<<<<<<<<<<<<<
13222  *         else:
13223  *             return node
13224  */
13225       __Pyx_XDECREF(__pyx_r);
13226       __Pyx_INCREF(__pyx_v_node);
13227       __pyx_r = __pyx_v_node;
13228       goto __pyx_L0;
13229 
13230       /* "Cython/Compiler/Visitor.py":586
13231  *                 return node
13232  *         elif value.is_attribute and value.obj.is_name:
13233  *             if not value.obj.entry or len(value.obj.entry.cf_assignments) > 1:             # <<<<<<<<<<<<<<
13234  *                 # the underlying variable might have been reassigned => play safe
13235  *                 return node
13236  */
13237     }
13238 
13239     /* "Cython/Compiler/Visitor.py":585
13240  *                 # the variable might have been reassigned => play safe
13241  *                 return node
13242  *         elif value.is_attribute and value.obj.is_name:             # <<<<<<<<<<<<<<
13243  *             if not value.obj.entry or len(value.obj.entry.cf_assignments) > 1:
13244  *                 # the underlying variable might have been reassigned => play safe
13245  */
13246     goto __pyx_L3;
13247   }
13248 
13249   /* "Cython/Compiler/Visitor.py":590
13250  *                 return node
13251  *         else:
13252  *             return node             # <<<<<<<<<<<<<<
13253  *         return self._dispatch_to_handler(
13254  *             node, value, arg_list, kwargs)
13255  */
13256   /*else*/ {
13257     __Pyx_XDECREF(__pyx_r);
13258     __Pyx_INCREF(__pyx_v_node);
13259     __pyx_r = __pyx_v_node;
13260     goto __pyx_L0;
13261   }
13262   __pyx_L3:;
13263 
13264   /* "Cython/Compiler/Visitor.py":591
13265  *         else:
13266  *             return node
13267  *         return self._dispatch_to_handler(             # <<<<<<<<<<<<<<
13268  *             node, value, arg_list, kwargs)
13269  *
13270  */
13271   __Pyx_XDECREF(__pyx_r);
13272 
13273   /* "Cython/Compiler/Visitor.py":592
13274  *             return node
13275  *         return self._dispatch_to_handler(
13276  *             node, value, arg_list, kwargs)             # <<<<<<<<<<<<<<
13277  *
13278  *     def _dispatch_to_handler(self, node, function, arg_list, kwargs):
13279  */
13280   __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_7Visitor_MethodDispatcherTransform *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.__pyx_base.__pyx_vtab)->_dispatch_to_handler(__pyx_v_self, __pyx_v_node, __pyx_v_value, __pyx_v_arg_list, __pyx_v_kwargs); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 591, __pyx_L1_error)
13281   __Pyx_GOTREF(__pyx_t_1);
13282   __pyx_r = __pyx_t_1;
13283   __pyx_t_1 = 0;
13284   goto __pyx_L0;
13285 
13286   /* "Cython/Compiler/Visitor.py":578
13287  *         return handler
13288  *
13289  *     def _delegate_to_assigned_value(self, node, function, arg_list, kwargs):             # <<<<<<<<<<<<<<
13290  *         assignment = function.cf_state[0]
13291  *         value = assignment.rhs
13292  */
13293 
13294   /* function exit code */
13295   __pyx_L1_error:;
13296   __Pyx_XDECREF(__pyx_t_1);
13297   __Pyx_XDECREF(__pyx_t_2);
13298   __Pyx_AddTraceback("Cython.Compiler.Visitor.MethodDispatcherTransform._delegate_to_assigned_value", __pyx_clineno, __pyx_lineno, __pyx_filename);
13299   __pyx_r = 0;
13300   __pyx_L0:;
13301   __Pyx_XDECREF(__pyx_v_assignment);
13302   __Pyx_XDECREF(__pyx_v_value);
13303   __Pyx_XGIVEREF(__pyx_r);
13304   __Pyx_RefNannyFinishContext();
13305   return __pyx_r;
13306 }
13307 
13308 /* "Cython/Compiler/Visitor.py":594
13309  *             node, value, arg_list, kwargs)
13310  *
13311  *     def _dispatch_to_handler(self, node, function, arg_list, kwargs):             # <<<<<<<<<<<<<<
13312  *         if function.is_name:
13313  *             # we only consider functions that are either builtin
13314  */
13315 
__pyx_f_6Cython_8Compiler_7Visitor_25MethodDispatcherTransform__dispatch_to_handler(struct __pyx_obj_6Cython_8Compiler_7Visitor_MethodDispatcherTransform * __pyx_v_self,PyObject * __pyx_v_node,PyObject * __pyx_v_function,PyObject * __pyx_v_arg_list,PyObject * __pyx_v_kwargs)13316 static PyObject *__pyx_f_6Cython_8Compiler_7Visitor_25MethodDispatcherTransform__dispatch_to_handler(struct __pyx_obj_6Cython_8Compiler_7Visitor_MethodDispatcherTransform *__pyx_v_self, PyObject *__pyx_v_node, PyObject *__pyx_v_function, PyObject *__pyx_v_arg_list, PyObject *__pyx_v_kwargs) {
13317   PyObject *__pyx_v_entry = NULL;
13318   PyObject *__pyx_v_is_builtin = NULL;
13319   PyObject *__pyx_v_function_handler = NULL;
13320   PyObject *__pyx_v_attr_name = NULL;
13321   PyObject *__pyx_v_self_arg = NULL;
13322   PyObject *__pyx_v_obj_type = NULL;
13323   int __pyx_v_is_unbound_method;
13324   PyObject *__pyx_v_type_name = NULL;
13325   PyObject *__pyx_r = NULL;
13326   __Pyx_RefNannyDeclarations
13327   PyObject *__pyx_t_1 = NULL;
13328   int __pyx_t_2;
13329   int __pyx_t_3;
13330   PyObject *__pyx_t_4 = NULL;
13331   PyObject *__pyx_t_5 = NULL;
13332   PyObject *__pyx_t_6 = NULL;
13333   PyObject *__pyx_t_7 = NULL;
13334   PyObject *__pyx_t_8 = NULL;
13335   int __pyx_t_9;
13336   int __pyx_t_10;
13337   int __pyx_lineno = 0;
13338   const char *__pyx_filename = NULL;
13339   int __pyx_clineno = 0;
13340   __Pyx_RefNannySetupContext("_dispatch_to_handler", 0);
13341   __Pyx_INCREF(__pyx_v_arg_list);
13342 
13343   /* "Cython/Compiler/Visitor.py":595
13344  *
13345  *     def _dispatch_to_handler(self, node, function, arg_list, kwargs):
13346  *         if function.is_name:             # <<<<<<<<<<<<<<
13347  *             # we only consider functions that are either builtin
13348  *             # Python functions or builtins that were already replaced
13349  */
13350   __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_function, __pyx_n_s_is_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 595, __pyx_L1_error)
13351   __Pyx_GOTREF(__pyx_t_1);
13352   __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 595, __pyx_L1_error)
13353   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
13354   if (__pyx_t_2) {
13355 
13356     /* "Cython/Compiler/Visitor.py":599
13357  *             # Python functions or builtins that were already replaced
13358  *             # into a C function call (defined in the builtin scope)
13359  *             if not function.entry:             # <<<<<<<<<<<<<<
13360  *                 return node
13361  *             entry = function.entry
13362  */
13363     __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_function, __pyx_n_s_entry); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 599, __pyx_L1_error)
13364     __Pyx_GOTREF(__pyx_t_1);
13365     __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 599, __pyx_L1_error)
13366     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
13367     __pyx_t_3 = ((!__pyx_t_2) != 0);
13368     if (__pyx_t_3) {
13369 
13370       /* "Cython/Compiler/Visitor.py":600
13371  *             # into a C function call (defined in the builtin scope)
13372  *             if not function.entry:
13373  *                 return node             # <<<<<<<<<<<<<<
13374  *             entry = function.entry
13375  *             is_builtin = (
13376  */
13377       __Pyx_XDECREF(__pyx_r);
13378       __Pyx_INCREF(__pyx_v_node);
13379       __pyx_r = __pyx_v_node;
13380       goto __pyx_L0;
13381 
13382       /* "Cython/Compiler/Visitor.py":599
13383  *             # Python functions or builtins that were already replaced
13384  *             # into a C function call (defined in the builtin scope)
13385  *             if not function.entry:             # <<<<<<<<<<<<<<
13386  *                 return node
13387  *             entry = function.entry
13388  */
13389     }
13390 
13391     /* "Cython/Compiler/Visitor.py":601
13392  *             if not function.entry:
13393  *                 return node
13394  *             entry = function.entry             # <<<<<<<<<<<<<<
13395  *             is_builtin = (
13396  *                 entry.is_builtin or
13397  */
13398     __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_function, __pyx_n_s_entry); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 601, __pyx_L1_error)
13399     __Pyx_GOTREF(__pyx_t_1);
13400     __pyx_v_entry = __pyx_t_1;
13401     __pyx_t_1 = 0;
13402 
13403     /* "Cython/Compiler/Visitor.py":603
13404  *             entry = function.entry
13405  *             is_builtin = (
13406  *                 entry.is_builtin or             # <<<<<<<<<<<<<<
13407  *                 entry is self.current_env().builtin_scope().lookup_here(function.name))
13408  *             if not is_builtin:
13409  */
13410     __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_entry, __pyx_n_s_is_builtin); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 603, __pyx_L1_error)
13411     __Pyx_GOTREF(__pyx_t_4);
13412     __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 603, __pyx_L1_error)
13413     if (!__pyx_t_3) {
13414       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
13415     } else {
13416       __Pyx_INCREF(__pyx_t_4);
13417       __pyx_t_1 = __pyx_t_4;
13418       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
13419       goto __pyx_L5_bool_binop_done;
13420     }
13421 
13422     /* "Cython/Compiler/Visitor.py":604
13423  *             is_builtin = (
13424  *                 entry.is_builtin or
13425  *                 entry is self.current_env().builtin_scope().lookup_here(function.name))             # <<<<<<<<<<<<<<
13426  *             if not is_builtin:
13427  *                 if function.cf_state and function.cf_state.is_single:
13428  */
13429     __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_current_env); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 604, __pyx_L1_error)
13430     __Pyx_GOTREF(__pyx_t_7);
13431     __pyx_t_8 = NULL;
13432     if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) {
13433       __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7);
13434       if (likely(__pyx_t_8)) {
13435         PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
13436         __Pyx_INCREF(__pyx_t_8);
13437         __Pyx_INCREF(function);
13438         __Pyx_DECREF_SET(__pyx_t_7, function);
13439       }
13440     }
13441     __pyx_t_6 = (__pyx_t_8) ? __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_8) : __Pyx_PyObject_CallNoArg(__pyx_t_7);
13442     __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
13443     if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 604, __pyx_L1_error)
13444     __Pyx_GOTREF(__pyx_t_6);
13445     __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
13446     __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_builtin_scope); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 604, __pyx_L1_error)
13447     __Pyx_GOTREF(__pyx_t_7);
13448     __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
13449     __pyx_t_6 = NULL;
13450     if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) {
13451       __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_7);
13452       if (likely(__pyx_t_6)) {
13453         PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
13454         __Pyx_INCREF(__pyx_t_6);
13455         __Pyx_INCREF(function);
13456         __Pyx_DECREF_SET(__pyx_t_7, function);
13457       }
13458     }
13459     __pyx_t_5 = (__pyx_t_6) ? __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_6) : __Pyx_PyObject_CallNoArg(__pyx_t_7);
13460     __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
13461     if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 604, __pyx_L1_error)
13462     __Pyx_GOTREF(__pyx_t_5);
13463     __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
13464     __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_lookup_here); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 604, __pyx_L1_error)
13465     __Pyx_GOTREF(__pyx_t_7);
13466     __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
13467     __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_function, __pyx_n_s_name_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 604, __pyx_L1_error)
13468     __Pyx_GOTREF(__pyx_t_5);
13469     __pyx_t_6 = NULL;
13470     if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) {
13471       __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_7);
13472       if (likely(__pyx_t_6)) {
13473         PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
13474         __Pyx_INCREF(__pyx_t_6);
13475         __Pyx_INCREF(function);
13476         __Pyx_DECREF_SET(__pyx_t_7, function);
13477       }
13478     }
13479     __pyx_t_4 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_6, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_5);
13480     __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
13481     __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
13482     if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 604, __pyx_L1_error)
13483     __Pyx_GOTREF(__pyx_t_4);
13484     __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
13485     __pyx_t_3 = (__pyx_v_entry == __pyx_t_4);
13486     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
13487     __pyx_t_4 = __Pyx_PyBool_FromLong(__pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 604, __pyx_L1_error)
13488     __Pyx_GOTREF(__pyx_t_4);
13489     __pyx_t_1 = __pyx_t_4;
13490     __pyx_t_4 = 0;
13491     __pyx_L5_bool_binop_done:;
13492     __pyx_v_is_builtin = __pyx_t_1;
13493     __pyx_t_1 = 0;
13494 
13495     /* "Cython/Compiler/Visitor.py":605
13496  *                 entry.is_builtin or
13497  *                 entry is self.current_env().builtin_scope().lookup_here(function.name))
13498  *             if not is_builtin:             # <<<<<<<<<<<<<<
13499  *                 if function.cf_state and function.cf_state.is_single:
13500  *                     # we know the value of the variable
13501  */
13502     __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_is_builtin); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 605, __pyx_L1_error)
13503     __pyx_t_2 = ((!__pyx_t_3) != 0);
13504     if (__pyx_t_2) {
13505 
13506       /* "Cython/Compiler/Visitor.py":606
13507  *                 entry is self.current_env().builtin_scope().lookup_here(function.name))
13508  *             if not is_builtin:
13509  *                 if function.cf_state and function.cf_state.is_single:             # <<<<<<<<<<<<<<
13510  *                     # we know the value of the variable
13511  *                     # => see if it's usable instead
13512  */
13513       __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_function, __pyx_n_s_cf_state); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 606, __pyx_L1_error)
13514       __Pyx_GOTREF(__pyx_t_1);
13515       __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 606, __pyx_L1_error)
13516       __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
13517       if (__pyx_t_3) {
13518       } else {
13519         __pyx_t_2 = __pyx_t_3;
13520         goto __pyx_L9_bool_binop_done;
13521       }
13522       __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_function, __pyx_n_s_cf_state); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 606, __pyx_L1_error)
13523       __Pyx_GOTREF(__pyx_t_1);
13524       __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_is_single); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 606, __pyx_L1_error)
13525       __Pyx_GOTREF(__pyx_t_4);
13526       __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
13527       __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 606, __pyx_L1_error)
13528       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
13529       __pyx_t_2 = __pyx_t_3;
13530       __pyx_L9_bool_binop_done:;
13531       if (__pyx_t_2) {
13532 
13533         /* "Cython/Compiler/Visitor.py":609
13534  *                     # we know the value of the variable
13535  *                     # => see if it's usable instead
13536  *                     return self._delegate_to_assigned_value(             # <<<<<<<<<<<<<<
13537  *                         node, function, arg_list, kwargs)
13538  *                 if arg_list and entry.is_cmethod and entry.scope and entry.scope.parent_type.is_builtin_type:
13539  */
13540         __Pyx_XDECREF(__pyx_r);
13541 
13542         /* "Cython/Compiler/Visitor.py":610
13543  *                     # => see if it's usable instead
13544  *                     return self._delegate_to_assigned_value(
13545  *                         node, function, arg_list, kwargs)             # <<<<<<<<<<<<<<
13546  *                 if arg_list and entry.is_cmethod and entry.scope and entry.scope.parent_type.is_builtin_type:
13547  *                     if entry.scope.parent_type is arg_list[0].type:
13548  */
13549         __pyx_t_4 = ((struct __pyx_vtabstruct_6Cython_8Compiler_7Visitor_MethodDispatcherTransform *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.__pyx_base.__pyx_vtab)->_delegate_to_assigned_value(__pyx_v_self, __pyx_v_node, __pyx_v_function, __pyx_v_arg_list, __pyx_v_kwargs); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 609, __pyx_L1_error)
13550         __Pyx_GOTREF(__pyx_t_4);
13551         __pyx_r = __pyx_t_4;
13552         __pyx_t_4 = 0;
13553         goto __pyx_L0;
13554 
13555         /* "Cython/Compiler/Visitor.py":606
13556  *                 entry is self.current_env().builtin_scope().lookup_here(function.name))
13557  *             if not is_builtin:
13558  *                 if function.cf_state and function.cf_state.is_single:             # <<<<<<<<<<<<<<
13559  *                     # we know the value of the variable
13560  *                     # => see if it's usable instead
13561  */
13562       }
13563 
13564       /* "Cython/Compiler/Visitor.py":611
13565  *                     return self._delegate_to_assigned_value(
13566  *                         node, function, arg_list, kwargs)
13567  *                 if arg_list and entry.is_cmethod and entry.scope and entry.scope.parent_type.is_builtin_type:             # <<<<<<<<<<<<<<
13568  *                     if entry.scope.parent_type is arg_list[0].type:
13569  *                         # Optimised (unbound) method of a builtin type => try to "de-optimise".
13570  */
13571       __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_arg_list); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 611, __pyx_L1_error)
13572       if (__pyx_t_3) {
13573       } else {
13574         __pyx_t_2 = __pyx_t_3;
13575         goto __pyx_L12_bool_binop_done;
13576       }
13577       __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_entry, __pyx_n_s_is_cmethod); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 611, __pyx_L1_error)
13578       __Pyx_GOTREF(__pyx_t_4);
13579       __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 611, __pyx_L1_error)
13580       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
13581       if (__pyx_t_3) {
13582       } else {
13583         __pyx_t_2 = __pyx_t_3;
13584         goto __pyx_L12_bool_binop_done;
13585       }
13586       __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_entry, __pyx_n_s_scope); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 611, __pyx_L1_error)
13587       __Pyx_GOTREF(__pyx_t_4);
13588       __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 611, __pyx_L1_error)
13589       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
13590       if (__pyx_t_3) {
13591       } else {
13592         __pyx_t_2 = __pyx_t_3;
13593         goto __pyx_L12_bool_binop_done;
13594       }
13595       __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_entry, __pyx_n_s_scope); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 611, __pyx_L1_error)
13596       __Pyx_GOTREF(__pyx_t_4);
13597       __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_parent_type); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 611, __pyx_L1_error)
13598       __Pyx_GOTREF(__pyx_t_1);
13599       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
13600       __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_is_builtin_type); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 611, __pyx_L1_error)
13601       __Pyx_GOTREF(__pyx_t_4);
13602       __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
13603       __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 611, __pyx_L1_error)
13604       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
13605       __pyx_t_2 = __pyx_t_3;
13606       __pyx_L12_bool_binop_done:;
13607       if (__pyx_t_2) {
13608 
13609         /* "Cython/Compiler/Visitor.py":612
13610  *                         node, function, arg_list, kwargs)
13611  *                 if arg_list and entry.is_cmethod and entry.scope and entry.scope.parent_type.is_builtin_type:
13612  *                     if entry.scope.parent_type is arg_list[0].type:             # <<<<<<<<<<<<<<
13613  *                         # Optimised (unbound) method of a builtin type => try to "de-optimise".
13614  *                         return self._dispatch_to_method_handler(
13615  */
13616         __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_entry, __pyx_n_s_scope); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 612, __pyx_L1_error)
13617         __Pyx_GOTREF(__pyx_t_4);
13618         __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_parent_type); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 612, __pyx_L1_error)
13619         __Pyx_GOTREF(__pyx_t_1);
13620         __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
13621         __pyx_t_4 = __Pyx_GetItemInt(__pyx_v_arg_list, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 612, __pyx_L1_error)
13622         __Pyx_GOTREF(__pyx_t_4);
13623         __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_type); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 612, __pyx_L1_error)
13624         __Pyx_GOTREF(__pyx_t_7);
13625         __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
13626         __pyx_t_2 = (__pyx_t_1 == __pyx_t_7);
13627         __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
13628         __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
13629         __pyx_t_3 = (__pyx_t_2 != 0);
13630         if (__pyx_t_3) {
13631 
13632           /* "Cython/Compiler/Visitor.py":614
13633  *                     if entry.scope.parent_type is arg_list[0].type:
13634  *                         # Optimised (unbound) method of a builtin type => try to "de-optimise".
13635  *                         return self._dispatch_to_method_handler(             # <<<<<<<<<<<<<<
13636  *                             entry.name, self_arg=None, is_unbound_method=True,
13637  *                             type_name=entry.scope.parent_type.name,
13638  */
13639           __Pyx_XDECREF(__pyx_r);
13640 
13641           /* "Cython/Compiler/Visitor.py":615
13642  *                         # Optimised (unbound) method of a builtin type => try to "de-optimise".
13643  *                         return self._dispatch_to_method_handler(
13644  *                             entry.name, self_arg=None, is_unbound_method=True,             # <<<<<<<<<<<<<<
13645  *                             type_name=entry.scope.parent_type.name,
13646  *                             node=node, function=function, arg_list=arg_list, kwargs=kwargs)
13647  */
13648           __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_entry, __pyx_n_s_name_2); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 615, __pyx_L1_error)
13649           __Pyx_GOTREF(__pyx_t_7);
13650 
13651           /* "Cython/Compiler/Visitor.py":616
13652  *                         return self._dispatch_to_method_handler(
13653  *                             entry.name, self_arg=None, is_unbound_method=True,
13654  *                             type_name=entry.scope.parent_type.name,             # <<<<<<<<<<<<<<
13655  *                             node=node, function=function, arg_list=arg_list, kwargs=kwargs)
13656  *                 return node
13657  */
13658           __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_entry, __pyx_n_s_scope); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 616, __pyx_L1_error)
13659           __Pyx_GOTREF(__pyx_t_1);
13660           __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_parent_type); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 616, __pyx_L1_error)
13661           __Pyx_GOTREF(__pyx_t_4);
13662           __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
13663           __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_name_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 616, __pyx_L1_error)
13664           __Pyx_GOTREF(__pyx_t_1);
13665           __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
13666 
13667           /* "Cython/Compiler/Visitor.py":614
13668  *                     if entry.scope.parent_type is arg_list[0].type:
13669  *                         # Optimised (unbound) method of a builtin type => try to "de-optimise".
13670  *                         return self._dispatch_to_method_handler(             # <<<<<<<<<<<<<<
13671  *                             entry.name, self_arg=None, is_unbound_method=True,
13672  *                             type_name=entry.scope.parent_type.name,
13673  */
13674           __pyx_t_4 = ((struct __pyx_vtabstruct_6Cython_8Compiler_7Visitor_MethodDispatcherTransform *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.__pyx_base.__pyx_vtab)->_dispatch_to_method_handler(__pyx_v_self, __pyx_t_7, Py_None, Py_True, __pyx_t_1, __pyx_v_node, __pyx_v_function, __pyx_v_arg_list, __pyx_v_kwargs); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 614, __pyx_L1_error)
13675           __Pyx_GOTREF(__pyx_t_4);
13676           __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
13677           __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
13678           __pyx_r = __pyx_t_4;
13679           __pyx_t_4 = 0;
13680           goto __pyx_L0;
13681 
13682           /* "Cython/Compiler/Visitor.py":612
13683  *                         node, function, arg_list, kwargs)
13684  *                 if arg_list and entry.is_cmethod and entry.scope and entry.scope.parent_type.is_builtin_type:
13685  *                     if entry.scope.parent_type is arg_list[0].type:             # <<<<<<<<<<<<<<
13686  *                         # Optimised (unbound) method of a builtin type => try to "de-optimise".
13687  *                         return self._dispatch_to_method_handler(
13688  */
13689         }
13690 
13691         /* "Cython/Compiler/Visitor.py":611
13692  *                     return self._delegate_to_assigned_value(
13693  *                         node, function, arg_list, kwargs)
13694  *                 if arg_list and entry.is_cmethod and entry.scope and entry.scope.parent_type.is_builtin_type:             # <<<<<<<<<<<<<<
13695  *                     if entry.scope.parent_type is arg_list[0].type:
13696  *                         # Optimised (unbound) method of a builtin type => try to "de-optimise".
13697  */
13698       }
13699 
13700       /* "Cython/Compiler/Visitor.py":618
13701  *                             type_name=entry.scope.parent_type.name,
13702  *                             node=node, function=function, arg_list=arg_list, kwargs=kwargs)
13703  *                 return node             # <<<<<<<<<<<<<<
13704  *             function_handler = self._find_handler(
13705  *                 "function_%s" % function.name, kwargs)
13706  */
13707       __Pyx_XDECREF(__pyx_r);
13708       __Pyx_INCREF(__pyx_v_node);
13709       __pyx_r = __pyx_v_node;
13710       goto __pyx_L0;
13711 
13712       /* "Cython/Compiler/Visitor.py":605
13713  *                 entry.is_builtin or
13714  *                 entry is self.current_env().builtin_scope().lookup_here(function.name))
13715  *             if not is_builtin:             # <<<<<<<<<<<<<<
13716  *                 if function.cf_state and function.cf_state.is_single:
13717  *                     # we know the value of the variable
13718  */
13719     }
13720 
13721     /* "Cython/Compiler/Visitor.py":620
13722  *                 return node
13723  *             function_handler = self._find_handler(
13724  *                 "function_%s" % function.name, kwargs)             # <<<<<<<<<<<<<<
13725  *             if function_handler is None:
13726  *                 return self._handle_function(node, function.name, function, arg_list, kwargs)
13727  */
13728     __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_function, __pyx_n_s_name_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 620, __pyx_L1_error)
13729     __Pyx_GOTREF(__pyx_t_4);
13730     __pyx_t_1 = __Pyx_PyUnicode_FormatSafe(__pyx_kp_u_function__s, __pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 620, __pyx_L1_error)
13731     __Pyx_GOTREF(__pyx_t_1);
13732     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
13733     __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_kwargs); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 620, __pyx_L1_error)
13734 
13735     /* "Cython/Compiler/Visitor.py":619
13736  *                             node=node, function=function, arg_list=arg_list, kwargs=kwargs)
13737  *                 return node
13738  *             function_handler = self._find_handler(             # <<<<<<<<<<<<<<
13739  *                 "function_%s" % function.name, kwargs)
13740  *             if function_handler is None:
13741  */
13742     __pyx_t_4 = ((struct __pyx_vtabstruct_6Cython_8Compiler_7Visitor_MethodDispatcherTransform *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.__pyx_base.__pyx_vtab)->_find_handler(__pyx_v_self, __pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 619, __pyx_L1_error)
13743     __Pyx_GOTREF(__pyx_t_4);
13744     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
13745     __pyx_v_function_handler = __pyx_t_4;
13746     __pyx_t_4 = 0;
13747 
13748     /* "Cython/Compiler/Visitor.py":621
13749  *             function_handler = self._find_handler(
13750  *                 "function_%s" % function.name, kwargs)
13751  *             if function_handler is None:             # <<<<<<<<<<<<<<
13752  *                 return self._handle_function(node, function.name, function, arg_list, kwargs)
13753  *             if kwargs:
13754  */
13755     __pyx_t_3 = (__pyx_v_function_handler == Py_None);
13756     __pyx_t_2 = (__pyx_t_3 != 0);
13757     if (__pyx_t_2) {
13758 
13759       /* "Cython/Compiler/Visitor.py":622
13760  *                 "function_%s" % function.name, kwargs)
13761  *             if function_handler is None:
13762  *                 return self._handle_function(node, function.name, function, arg_list, kwargs)             # <<<<<<<<<<<<<<
13763  *             if kwargs:
13764  *                 return function_handler(node, function, arg_list, kwargs)
13765  */
13766       __Pyx_XDECREF(__pyx_r);
13767       __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_handle_function); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 622, __pyx_L1_error)
13768       __Pyx_GOTREF(__pyx_t_1);
13769       __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_function, __pyx_n_s_name_2); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 622, __pyx_L1_error)
13770       __Pyx_GOTREF(__pyx_t_7);
13771       __pyx_t_5 = NULL;
13772       __pyx_t_9 = 0;
13773       if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) {
13774         __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_1);
13775         if (likely(__pyx_t_5)) {
13776           PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
13777           __Pyx_INCREF(__pyx_t_5);
13778           __Pyx_INCREF(function);
13779           __Pyx_DECREF_SET(__pyx_t_1, function);
13780           __pyx_t_9 = 1;
13781         }
13782       }
13783       #if CYTHON_FAST_PYCALL
13784       if (PyFunction_Check(__pyx_t_1)) {
13785         PyObject *__pyx_temp[6] = {__pyx_t_5, __pyx_v_node, __pyx_t_7, __pyx_v_function, __pyx_v_arg_list, __pyx_v_kwargs};
13786         __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_9, 5+__pyx_t_9); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 622, __pyx_L1_error)
13787         __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
13788         __Pyx_GOTREF(__pyx_t_4);
13789         __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
13790       } else
13791       #endif
13792       #if CYTHON_FAST_PYCCALL
13793       if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) {
13794         PyObject *__pyx_temp[6] = {__pyx_t_5, __pyx_v_node, __pyx_t_7, __pyx_v_function, __pyx_v_arg_list, __pyx_v_kwargs};
13795         __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_9, 5+__pyx_t_9); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 622, __pyx_L1_error)
13796         __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
13797         __Pyx_GOTREF(__pyx_t_4);
13798         __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
13799       } else
13800       #endif
13801       {
13802         __pyx_t_6 = PyTuple_New(5+__pyx_t_9); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 622, __pyx_L1_error)
13803         __Pyx_GOTREF(__pyx_t_6);
13804         if (__pyx_t_5) {
13805           __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_5); __pyx_t_5 = NULL;
13806         }
13807         __Pyx_INCREF(__pyx_v_node);
13808         __Pyx_GIVEREF(__pyx_v_node);
13809         PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_9, __pyx_v_node);
13810         __Pyx_GIVEREF(__pyx_t_7);
13811         PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_9, __pyx_t_7);
13812         __Pyx_INCREF(__pyx_v_function);
13813         __Pyx_GIVEREF(__pyx_v_function);
13814         PyTuple_SET_ITEM(__pyx_t_6, 2+__pyx_t_9, __pyx_v_function);
13815         __Pyx_INCREF(__pyx_v_arg_list);
13816         __Pyx_GIVEREF(__pyx_v_arg_list);
13817         PyTuple_SET_ITEM(__pyx_t_6, 3+__pyx_t_9, __pyx_v_arg_list);
13818         __Pyx_INCREF(__pyx_v_kwargs);
13819         __Pyx_GIVEREF(__pyx_v_kwargs);
13820         PyTuple_SET_ITEM(__pyx_t_6, 4+__pyx_t_9, __pyx_v_kwargs);
13821         __pyx_t_7 = 0;
13822         __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_6, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 622, __pyx_L1_error)
13823         __Pyx_GOTREF(__pyx_t_4);
13824         __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
13825       }
13826       __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
13827       __pyx_r = __pyx_t_4;
13828       __pyx_t_4 = 0;
13829       goto __pyx_L0;
13830 
13831       /* "Cython/Compiler/Visitor.py":621
13832  *             function_handler = self._find_handler(
13833  *                 "function_%s" % function.name, kwargs)
13834  *             if function_handler is None:             # <<<<<<<<<<<<<<
13835  *                 return self._handle_function(node, function.name, function, arg_list, kwargs)
13836  *             if kwargs:
13837  */
13838     }
13839 
13840     /* "Cython/Compiler/Visitor.py":623
13841  *             if function_handler is None:
13842  *                 return self._handle_function(node, function.name, function, arg_list, kwargs)
13843  *             if kwargs:             # <<<<<<<<<<<<<<
13844  *                 return function_handler(node, function, arg_list, kwargs)
13845  *             else:
13846  */
13847     __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_kwargs); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 623, __pyx_L1_error)
13848     if (__pyx_t_2) {
13849 
13850       /* "Cython/Compiler/Visitor.py":624
13851  *                 return self._handle_function(node, function.name, function, arg_list, kwargs)
13852  *             if kwargs:
13853  *                 return function_handler(node, function, arg_list, kwargs)             # <<<<<<<<<<<<<<
13854  *             else:
13855  *                 return function_handler(node, function, arg_list)
13856  */
13857       __Pyx_XDECREF(__pyx_r);
13858       __Pyx_INCREF(__pyx_v_function_handler);
13859       __pyx_t_1 = __pyx_v_function_handler; __pyx_t_6 = NULL;
13860       __pyx_t_9 = 0;
13861       if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) {
13862         __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_1);
13863         if (likely(__pyx_t_6)) {
13864           PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
13865           __Pyx_INCREF(__pyx_t_6);
13866           __Pyx_INCREF(function);
13867           __Pyx_DECREF_SET(__pyx_t_1, function);
13868           __pyx_t_9 = 1;
13869         }
13870       }
13871       #if CYTHON_FAST_PYCALL
13872       if (PyFunction_Check(__pyx_t_1)) {
13873         PyObject *__pyx_temp[5] = {__pyx_t_6, __pyx_v_node, __pyx_v_function, __pyx_v_arg_list, __pyx_v_kwargs};
13874         __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_9, 4+__pyx_t_9); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 624, __pyx_L1_error)
13875         __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
13876         __Pyx_GOTREF(__pyx_t_4);
13877       } else
13878       #endif
13879       #if CYTHON_FAST_PYCCALL
13880       if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) {
13881         PyObject *__pyx_temp[5] = {__pyx_t_6, __pyx_v_node, __pyx_v_function, __pyx_v_arg_list, __pyx_v_kwargs};
13882         __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_9, 4+__pyx_t_9); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 624, __pyx_L1_error)
13883         __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
13884         __Pyx_GOTREF(__pyx_t_4);
13885       } else
13886       #endif
13887       {
13888         __pyx_t_7 = PyTuple_New(4+__pyx_t_9); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 624, __pyx_L1_error)
13889         __Pyx_GOTREF(__pyx_t_7);
13890         if (__pyx_t_6) {
13891           __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_6); __pyx_t_6 = NULL;
13892         }
13893         __Pyx_INCREF(__pyx_v_node);
13894         __Pyx_GIVEREF(__pyx_v_node);
13895         PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_9, __pyx_v_node);
13896         __Pyx_INCREF(__pyx_v_function);
13897         __Pyx_GIVEREF(__pyx_v_function);
13898         PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_9, __pyx_v_function);
13899         __Pyx_INCREF(__pyx_v_arg_list);
13900         __Pyx_GIVEREF(__pyx_v_arg_list);
13901         PyTuple_SET_ITEM(__pyx_t_7, 2+__pyx_t_9, __pyx_v_arg_list);
13902         __Pyx_INCREF(__pyx_v_kwargs);
13903         __Pyx_GIVEREF(__pyx_v_kwargs);
13904         PyTuple_SET_ITEM(__pyx_t_7, 3+__pyx_t_9, __pyx_v_kwargs);
13905         __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_7, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 624, __pyx_L1_error)
13906         __Pyx_GOTREF(__pyx_t_4);
13907         __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
13908       }
13909       __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
13910       __pyx_r = __pyx_t_4;
13911       __pyx_t_4 = 0;
13912       goto __pyx_L0;
13913 
13914       /* "Cython/Compiler/Visitor.py":623
13915  *             if function_handler is None:
13916  *                 return self._handle_function(node, function.name, function, arg_list, kwargs)
13917  *             if kwargs:             # <<<<<<<<<<<<<<
13918  *                 return function_handler(node, function, arg_list, kwargs)
13919  *             else:
13920  */
13921     }
13922 
13923     /* "Cython/Compiler/Visitor.py":626
13924  *                 return function_handler(node, function, arg_list, kwargs)
13925  *             else:
13926  *                 return function_handler(node, function, arg_list)             # <<<<<<<<<<<<<<
13927  *         elif function.is_attribute:
13928  *             attr_name = function.attribute
13929  */
13930     /*else*/ {
13931       __Pyx_XDECREF(__pyx_r);
13932       __Pyx_INCREF(__pyx_v_function_handler);
13933       __pyx_t_1 = __pyx_v_function_handler; __pyx_t_7 = NULL;
13934       __pyx_t_9 = 0;
13935       if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) {
13936         __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_1);
13937         if (likely(__pyx_t_7)) {
13938           PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
13939           __Pyx_INCREF(__pyx_t_7);
13940           __Pyx_INCREF(function);
13941           __Pyx_DECREF_SET(__pyx_t_1, function);
13942           __pyx_t_9 = 1;
13943         }
13944       }
13945       #if CYTHON_FAST_PYCALL
13946       if (PyFunction_Check(__pyx_t_1)) {
13947         PyObject *__pyx_temp[4] = {__pyx_t_7, __pyx_v_node, __pyx_v_function, __pyx_v_arg_list};
13948         __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_9, 3+__pyx_t_9); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 626, __pyx_L1_error)
13949         __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
13950         __Pyx_GOTREF(__pyx_t_4);
13951       } else
13952       #endif
13953       #if CYTHON_FAST_PYCCALL
13954       if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) {
13955         PyObject *__pyx_temp[4] = {__pyx_t_7, __pyx_v_node, __pyx_v_function, __pyx_v_arg_list};
13956         __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_9, 3+__pyx_t_9); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 626, __pyx_L1_error)
13957         __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
13958         __Pyx_GOTREF(__pyx_t_4);
13959       } else
13960       #endif
13961       {
13962         __pyx_t_6 = PyTuple_New(3+__pyx_t_9); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 626, __pyx_L1_error)
13963         __Pyx_GOTREF(__pyx_t_6);
13964         if (__pyx_t_7) {
13965           __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_7); __pyx_t_7 = NULL;
13966         }
13967         __Pyx_INCREF(__pyx_v_node);
13968         __Pyx_GIVEREF(__pyx_v_node);
13969         PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_9, __pyx_v_node);
13970         __Pyx_INCREF(__pyx_v_function);
13971         __Pyx_GIVEREF(__pyx_v_function);
13972         PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_9, __pyx_v_function);
13973         __Pyx_INCREF(__pyx_v_arg_list);
13974         __Pyx_GIVEREF(__pyx_v_arg_list);
13975         PyTuple_SET_ITEM(__pyx_t_6, 2+__pyx_t_9, __pyx_v_arg_list);
13976         __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_6, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 626, __pyx_L1_error)
13977         __Pyx_GOTREF(__pyx_t_4);
13978         __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
13979       }
13980       __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
13981       __pyx_r = __pyx_t_4;
13982       __pyx_t_4 = 0;
13983       goto __pyx_L0;
13984     }
13985 
13986     /* "Cython/Compiler/Visitor.py":595
13987  *
13988  *     def _dispatch_to_handler(self, node, function, arg_list, kwargs):
13989  *         if function.is_name:             # <<<<<<<<<<<<<<
13990  *             # we only consider functions that are either builtin
13991  *             # Python functions or builtins that were already replaced
13992  */
13993   }
13994 
13995   /* "Cython/Compiler/Visitor.py":627
13996  *             else:
13997  *                 return function_handler(node, function, arg_list)
13998  *         elif function.is_attribute:             # <<<<<<<<<<<<<<
13999  *             attr_name = function.attribute
14000  *             if function.type.is_pyobject:
14001  */
14002   __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_function, __pyx_n_s_is_attribute); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 627, __pyx_L1_error)
14003   __Pyx_GOTREF(__pyx_t_4);
14004   __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 627, __pyx_L1_error)
14005   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
14006   if (__pyx_t_2) {
14007 
14008     /* "Cython/Compiler/Visitor.py":628
14009  *                 return function_handler(node, function, arg_list)
14010  *         elif function.is_attribute:
14011  *             attr_name = function.attribute             # <<<<<<<<<<<<<<
14012  *             if function.type.is_pyobject:
14013  *                 self_arg = function.obj
14014  */
14015     __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_function, __pyx_n_s_attribute); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 628, __pyx_L1_error)
14016     __Pyx_GOTREF(__pyx_t_4);
14017     __pyx_v_attr_name = __pyx_t_4;
14018     __pyx_t_4 = 0;
14019 
14020     /* "Cython/Compiler/Visitor.py":629
14021  *         elif function.is_attribute:
14022  *             attr_name = function.attribute
14023  *             if function.type.is_pyobject:             # <<<<<<<<<<<<<<
14024  *                 self_arg = function.obj
14025  *             elif node.self and function.entry:
14026  */
14027     __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_function, __pyx_n_s_type); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 629, __pyx_L1_error)
14028     __Pyx_GOTREF(__pyx_t_4);
14029     __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_is_pyobject); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 629, __pyx_L1_error)
14030     __Pyx_GOTREF(__pyx_t_1);
14031     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
14032     __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 629, __pyx_L1_error)
14033     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
14034     if (__pyx_t_2) {
14035 
14036       /* "Cython/Compiler/Visitor.py":630
14037  *             attr_name = function.attribute
14038  *             if function.type.is_pyobject:
14039  *                 self_arg = function.obj             # <<<<<<<<<<<<<<
14040  *             elif node.self and function.entry:
14041  *                 entry = function.entry.as_variable
14042  */
14043       __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_function, __pyx_n_s_obj); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 630, __pyx_L1_error)
14044       __Pyx_GOTREF(__pyx_t_1);
14045       __pyx_v_self_arg = __pyx_t_1;
14046       __pyx_t_1 = 0;
14047 
14048       /* "Cython/Compiler/Visitor.py":629
14049  *         elif function.is_attribute:
14050  *             attr_name = function.attribute
14051  *             if function.type.is_pyobject:             # <<<<<<<<<<<<<<
14052  *                 self_arg = function.obj
14053  *             elif node.self and function.entry:
14054  */
14055       goto __pyx_L19;
14056     }
14057 
14058     /* "Cython/Compiler/Visitor.py":631
14059  *             if function.type.is_pyobject:
14060  *                 self_arg = function.obj
14061  *             elif node.self and function.entry:             # <<<<<<<<<<<<<<
14062  *                 entry = function.entry.as_variable
14063  *                 if not entry or not entry.is_builtin:
14064  */
14065     __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_self); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 631, __pyx_L1_error)
14066     __Pyx_GOTREF(__pyx_t_1);
14067     __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 631, __pyx_L1_error)
14068     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
14069     if (__pyx_t_3) {
14070     } else {
14071       __pyx_t_2 = __pyx_t_3;
14072       goto __pyx_L20_bool_binop_done;
14073     }
14074     __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_function, __pyx_n_s_entry); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 631, __pyx_L1_error)
14075     __Pyx_GOTREF(__pyx_t_1);
14076     __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 631, __pyx_L1_error)
14077     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
14078     __pyx_t_2 = __pyx_t_3;
14079     __pyx_L20_bool_binop_done:;
14080     if (__pyx_t_2) {
14081 
14082       /* "Cython/Compiler/Visitor.py":632
14083  *                 self_arg = function.obj
14084  *             elif node.self and function.entry:
14085  *                 entry = function.entry.as_variable             # <<<<<<<<<<<<<<
14086  *                 if not entry or not entry.is_builtin:
14087  *                     return node
14088  */
14089       __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_function, __pyx_n_s_entry); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 632, __pyx_L1_error)
14090       __Pyx_GOTREF(__pyx_t_1);
14091       __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_as_variable); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 632, __pyx_L1_error)
14092       __Pyx_GOTREF(__pyx_t_4);
14093       __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
14094       __pyx_v_entry = __pyx_t_4;
14095       __pyx_t_4 = 0;
14096 
14097       /* "Cython/Compiler/Visitor.py":633
14098  *             elif node.self and function.entry:
14099  *                 entry = function.entry.as_variable
14100  *                 if not entry or not entry.is_builtin:             # <<<<<<<<<<<<<<
14101  *                     return node
14102  *                 # C implementation of a Python builtin method - see if we find further matches
14103  */
14104       __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_entry); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 633, __pyx_L1_error)
14105       __pyx_t_10 = ((!__pyx_t_3) != 0);
14106       if (!__pyx_t_10) {
14107       } else {
14108         __pyx_t_2 = __pyx_t_10;
14109         goto __pyx_L23_bool_binop_done;
14110       }
14111       __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_entry, __pyx_n_s_is_builtin); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 633, __pyx_L1_error)
14112       __Pyx_GOTREF(__pyx_t_4);
14113       __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 633, __pyx_L1_error)
14114       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
14115       __pyx_t_3 = ((!__pyx_t_10) != 0);
14116       __pyx_t_2 = __pyx_t_3;
14117       __pyx_L23_bool_binop_done:;
14118       if (__pyx_t_2) {
14119 
14120         /* "Cython/Compiler/Visitor.py":634
14121  *                 entry = function.entry.as_variable
14122  *                 if not entry or not entry.is_builtin:
14123  *                     return node             # <<<<<<<<<<<<<<
14124  *                 # C implementation of a Python builtin method - see if we find further matches
14125  *                 self_arg = node.self
14126  */
14127         __Pyx_XDECREF(__pyx_r);
14128         __Pyx_INCREF(__pyx_v_node);
14129         __pyx_r = __pyx_v_node;
14130         goto __pyx_L0;
14131 
14132         /* "Cython/Compiler/Visitor.py":633
14133  *             elif node.self and function.entry:
14134  *                 entry = function.entry.as_variable
14135  *                 if not entry or not entry.is_builtin:             # <<<<<<<<<<<<<<
14136  *                     return node
14137  *                 # C implementation of a Python builtin method - see if we find further matches
14138  */
14139       }
14140 
14141       /* "Cython/Compiler/Visitor.py":636
14142  *                     return node
14143  *                 # C implementation of a Python builtin method - see if we find further matches
14144  *                 self_arg = node.self             # <<<<<<<<<<<<<<
14145  *                 arg_list = arg_list[1:]  # drop CloneNode of self argument
14146  *             else:
14147  */
14148       __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_self); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 636, __pyx_L1_error)
14149       __Pyx_GOTREF(__pyx_t_4);
14150       __pyx_v_self_arg = __pyx_t_4;
14151       __pyx_t_4 = 0;
14152 
14153       /* "Cython/Compiler/Visitor.py":637
14154  *                 # C implementation of a Python builtin method - see if we find further matches
14155  *                 self_arg = node.self
14156  *                 arg_list = arg_list[1:]  # drop CloneNode of self argument             # <<<<<<<<<<<<<<
14157  *             else:
14158  *                 return node
14159  */
14160       __pyx_t_4 = __Pyx_PyObject_GetSlice(__pyx_v_arg_list, 1, 0, NULL, NULL, &__pyx_slice__12, 1, 0, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 637, __pyx_L1_error)
14161       __Pyx_GOTREF(__pyx_t_4);
14162       __Pyx_DECREF_SET(__pyx_v_arg_list, __pyx_t_4);
14163       __pyx_t_4 = 0;
14164 
14165       /* "Cython/Compiler/Visitor.py":631
14166  *             if function.type.is_pyobject:
14167  *                 self_arg = function.obj
14168  *             elif node.self and function.entry:             # <<<<<<<<<<<<<<
14169  *                 entry = function.entry.as_variable
14170  *                 if not entry or not entry.is_builtin:
14171  */
14172       goto __pyx_L19;
14173     }
14174 
14175     /* "Cython/Compiler/Visitor.py":639
14176  *                 arg_list = arg_list[1:]  # drop CloneNode of self argument
14177  *             else:
14178  *                 return node             # <<<<<<<<<<<<<<
14179  *             obj_type = self_arg.type
14180  *             is_unbound_method = False
14181  */
14182     /*else*/ {
14183       __Pyx_XDECREF(__pyx_r);
14184       __Pyx_INCREF(__pyx_v_node);
14185       __pyx_r = __pyx_v_node;
14186       goto __pyx_L0;
14187     }
14188     __pyx_L19:;
14189 
14190     /* "Cython/Compiler/Visitor.py":640
14191  *             else:
14192  *                 return node
14193  *             obj_type = self_arg.type             # <<<<<<<<<<<<<<
14194  *             is_unbound_method = False
14195  *             if obj_type.is_builtin_type:
14196  */
14197     __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self_arg, __pyx_n_s_type); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 640, __pyx_L1_error)
14198     __Pyx_GOTREF(__pyx_t_4);
14199     __pyx_v_obj_type = __pyx_t_4;
14200     __pyx_t_4 = 0;
14201 
14202     /* "Cython/Compiler/Visitor.py":641
14203  *                 return node
14204  *             obj_type = self_arg.type
14205  *             is_unbound_method = False             # <<<<<<<<<<<<<<
14206  *             if obj_type.is_builtin_type:
14207  *                 if obj_type is Builtin.type_type and self_arg.is_name and arg_list and arg_list[0].type.is_pyobject:
14208  */
14209     __pyx_v_is_unbound_method = 0;
14210 
14211     /* "Cython/Compiler/Visitor.py":642
14212  *             obj_type = self_arg.type
14213  *             is_unbound_method = False
14214  *             if obj_type.is_builtin_type:             # <<<<<<<<<<<<<<
14215  *                 if obj_type is Builtin.type_type and self_arg.is_name and arg_list and arg_list[0].type.is_pyobject:
14216  *                     # calling an unbound method like 'list.append(L,x)'
14217  */
14218     __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_obj_type, __pyx_n_s_is_builtin_type); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 642, __pyx_L1_error)
14219     __Pyx_GOTREF(__pyx_t_4);
14220     __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 642, __pyx_L1_error)
14221     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
14222     if (__pyx_t_2) {
14223 
14224       /* "Cython/Compiler/Visitor.py":643
14225  *             is_unbound_method = False
14226  *             if obj_type.is_builtin_type:
14227  *                 if obj_type is Builtin.type_type and self_arg.is_name and arg_list and arg_list[0].type.is_pyobject:             # <<<<<<<<<<<<<<
14228  *                     # calling an unbound method like 'list.append(L,x)'
14229  *                     # (ignoring 'type.mro()' here ...)
14230  */
14231       __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_Builtin); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 643, __pyx_L1_error)
14232       __Pyx_GOTREF(__pyx_t_4);
14233       __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_type_type); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 643, __pyx_L1_error)
14234       __Pyx_GOTREF(__pyx_t_1);
14235       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
14236       __pyx_t_3 = (__pyx_v_obj_type == __pyx_t_1);
14237       __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
14238       __pyx_t_10 = (__pyx_t_3 != 0);
14239       if (__pyx_t_10) {
14240       } else {
14241         __pyx_t_2 = __pyx_t_10;
14242         goto __pyx_L27_bool_binop_done;
14243       }
14244       __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self_arg, __pyx_n_s_is_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 643, __pyx_L1_error)
14245       __Pyx_GOTREF(__pyx_t_1);
14246       __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 643, __pyx_L1_error)
14247       __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
14248       if (__pyx_t_10) {
14249       } else {
14250         __pyx_t_2 = __pyx_t_10;
14251         goto __pyx_L27_bool_binop_done;
14252       }
14253       __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_v_arg_list); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 643, __pyx_L1_error)
14254       if (__pyx_t_10) {
14255       } else {
14256         __pyx_t_2 = __pyx_t_10;
14257         goto __pyx_L27_bool_binop_done;
14258       }
14259       __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_arg_list, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 643, __pyx_L1_error)
14260       __Pyx_GOTREF(__pyx_t_1);
14261       __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_type); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 643, __pyx_L1_error)
14262       __Pyx_GOTREF(__pyx_t_4);
14263       __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
14264       __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_is_pyobject); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 643, __pyx_L1_error)
14265       __Pyx_GOTREF(__pyx_t_1);
14266       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
14267       __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 643, __pyx_L1_error)
14268       __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
14269       __pyx_t_2 = __pyx_t_10;
14270       __pyx_L27_bool_binop_done:;
14271       if (__pyx_t_2) {
14272 
14273         /* "Cython/Compiler/Visitor.py":646
14274  *                     # calling an unbound method like 'list.append(L,x)'
14275  *                     # (ignoring 'type.mro()' here ...)
14276  *                     type_name = self_arg.name             # <<<<<<<<<<<<<<
14277  *                     self_arg = None
14278  *                     is_unbound_method = True
14279  */
14280         __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self_arg, __pyx_n_s_name_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 646, __pyx_L1_error)
14281         __Pyx_GOTREF(__pyx_t_1);
14282         __pyx_v_type_name = __pyx_t_1;
14283         __pyx_t_1 = 0;
14284 
14285         /* "Cython/Compiler/Visitor.py":647
14286  *                     # (ignoring 'type.mro()' here ...)
14287  *                     type_name = self_arg.name
14288  *                     self_arg = None             # <<<<<<<<<<<<<<
14289  *                     is_unbound_method = True
14290  *                 else:
14291  */
14292         __Pyx_INCREF(Py_None);
14293         __Pyx_DECREF_SET(__pyx_v_self_arg, Py_None);
14294 
14295         /* "Cython/Compiler/Visitor.py":648
14296  *                     type_name = self_arg.name
14297  *                     self_arg = None
14298  *                     is_unbound_method = True             # <<<<<<<<<<<<<<
14299  *                 else:
14300  *                     type_name = obj_type.name
14301  */
14302         __pyx_v_is_unbound_method = 1;
14303 
14304         /* "Cython/Compiler/Visitor.py":643
14305  *             is_unbound_method = False
14306  *             if obj_type.is_builtin_type:
14307  *                 if obj_type is Builtin.type_type and self_arg.is_name and arg_list and arg_list[0].type.is_pyobject:             # <<<<<<<<<<<<<<
14308  *                     # calling an unbound method like 'list.append(L,x)'
14309  *                     # (ignoring 'type.mro()' here ...)
14310  */
14311         goto __pyx_L26;
14312       }
14313 
14314       /* "Cython/Compiler/Visitor.py":650
14315  *                     is_unbound_method = True
14316  *                 else:
14317  *                     type_name = obj_type.name             # <<<<<<<<<<<<<<
14318  *             else:
14319  *                 type_name = "object"  # safety measure
14320  */
14321       /*else*/ {
14322         __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_obj_type, __pyx_n_s_name_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 650, __pyx_L1_error)
14323         __Pyx_GOTREF(__pyx_t_1);
14324         __pyx_v_type_name = __pyx_t_1;
14325         __pyx_t_1 = 0;
14326       }
14327       __pyx_L26:;
14328 
14329       /* "Cython/Compiler/Visitor.py":642
14330  *             obj_type = self_arg.type
14331  *             is_unbound_method = False
14332  *             if obj_type.is_builtin_type:             # <<<<<<<<<<<<<<
14333  *                 if obj_type is Builtin.type_type and self_arg.is_name and arg_list and arg_list[0].type.is_pyobject:
14334  *                     # calling an unbound method like 'list.append(L,x)'
14335  */
14336       goto __pyx_L25;
14337     }
14338 
14339     /* "Cython/Compiler/Visitor.py":652
14340  *                     type_name = obj_type.name
14341  *             else:
14342  *                 type_name = "object"  # safety measure             # <<<<<<<<<<<<<<
14343  *             return self._dispatch_to_method_handler(
14344  *                 attr_name, self_arg, is_unbound_method, type_name,
14345  */
14346     /*else*/ {
14347       __Pyx_INCREF(__pyx_n_u_object);
14348       __pyx_v_type_name = __pyx_n_u_object;
14349     }
14350     __pyx_L25:;
14351 
14352     /* "Cython/Compiler/Visitor.py":653
14353  *             else:
14354  *                 type_name = "object"  # safety measure
14355  *             return self._dispatch_to_method_handler(             # <<<<<<<<<<<<<<
14356  *                 attr_name, self_arg, is_unbound_method, type_name,
14357  *                 node, function, arg_list, kwargs)
14358  */
14359     __Pyx_XDECREF(__pyx_r);
14360 
14361     /* "Cython/Compiler/Visitor.py":654
14362  *                 type_name = "object"  # safety measure
14363  *             return self._dispatch_to_method_handler(
14364  *                 attr_name, self_arg, is_unbound_method, type_name,             # <<<<<<<<<<<<<<
14365  *                 node, function, arg_list, kwargs)
14366  *         else:
14367  */
14368     __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_is_unbound_method); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 654, __pyx_L1_error)
14369     __Pyx_GOTREF(__pyx_t_1);
14370 
14371     /* "Cython/Compiler/Visitor.py":653
14372  *             else:
14373  *                 type_name = "object"  # safety measure
14374  *             return self._dispatch_to_method_handler(             # <<<<<<<<<<<<<<
14375  *                 attr_name, self_arg, is_unbound_method, type_name,
14376  *                 node, function, arg_list, kwargs)
14377  */
14378     __pyx_t_4 = ((struct __pyx_vtabstruct_6Cython_8Compiler_7Visitor_MethodDispatcherTransform *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.__pyx_base.__pyx_vtab)->_dispatch_to_method_handler(__pyx_v_self, __pyx_v_attr_name, __pyx_v_self_arg, __pyx_t_1, __pyx_v_type_name, __pyx_v_node, __pyx_v_function, __pyx_v_arg_list, __pyx_v_kwargs); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 653, __pyx_L1_error)
14379     __Pyx_GOTREF(__pyx_t_4);
14380     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
14381     __pyx_r = __pyx_t_4;
14382     __pyx_t_4 = 0;
14383     goto __pyx_L0;
14384 
14385     /* "Cython/Compiler/Visitor.py":627
14386  *             else:
14387  *                 return function_handler(node, function, arg_list)
14388  *         elif function.is_attribute:             # <<<<<<<<<<<<<<
14389  *             attr_name = function.attribute
14390  *             if function.type.is_pyobject:
14391  */
14392   }
14393 
14394   /* "Cython/Compiler/Visitor.py":657
14395  *                 node, function, arg_list, kwargs)
14396  *         else:
14397  *             return node             # <<<<<<<<<<<<<<
14398  *
14399  *     def _dispatch_to_method_handler(self, attr_name, self_arg,
14400  */
14401   /*else*/ {
14402     __Pyx_XDECREF(__pyx_r);
14403     __Pyx_INCREF(__pyx_v_node);
14404     __pyx_r = __pyx_v_node;
14405     goto __pyx_L0;
14406   }
14407 
14408   /* "Cython/Compiler/Visitor.py":594
14409  *             node, value, arg_list, kwargs)
14410  *
14411  *     def _dispatch_to_handler(self, node, function, arg_list, kwargs):             # <<<<<<<<<<<<<<
14412  *         if function.is_name:
14413  *             # we only consider functions that are either builtin
14414  */
14415 
14416   /* function exit code */
14417   __pyx_L1_error:;
14418   __Pyx_XDECREF(__pyx_t_1);
14419   __Pyx_XDECREF(__pyx_t_4);
14420   __Pyx_XDECREF(__pyx_t_5);
14421   __Pyx_XDECREF(__pyx_t_6);
14422   __Pyx_XDECREF(__pyx_t_7);
14423   __Pyx_XDECREF(__pyx_t_8);
14424   __Pyx_AddTraceback("Cython.Compiler.Visitor.MethodDispatcherTransform._dispatch_to_handler", __pyx_clineno, __pyx_lineno, __pyx_filename);
14425   __pyx_r = 0;
14426   __pyx_L0:;
14427   __Pyx_XDECREF(__pyx_v_entry);
14428   __Pyx_XDECREF(__pyx_v_is_builtin);
14429   __Pyx_XDECREF(__pyx_v_function_handler);
14430   __Pyx_XDECREF(__pyx_v_attr_name);
14431   __Pyx_XDECREF(__pyx_v_self_arg);
14432   __Pyx_XDECREF(__pyx_v_obj_type);
14433   __Pyx_XDECREF(__pyx_v_type_name);
14434   __Pyx_XDECREF(__pyx_v_arg_list);
14435   __Pyx_XGIVEREF(__pyx_r);
14436   __Pyx_RefNannyFinishContext();
14437   return __pyx_r;
14438 }
14439 
14440 /* "Cython/Compiler/Visitor.py":659
14441  *             return node
14442  *
14443  *     def _dispatch_to_method_handler(self, attr_name, self_arg,             # <<<<<<<<<<<<<<
14444  *                                     is_unbound_method, type_name,
14445  *                                     node, function, arg_list, kwargs):
14446  */
14447 
__pyx_f_6Cython_8Compiler_7Visitor_25MethodDispatcherTransform__dispatch_to_method_handler(struct __pyx_obj_6Cython_8Compiler_7Visitor_MethodDispatcherTransform * __pyx_v_self,PyObject * __pyx_v_attr_name,PyObject * __pyx_v_self_arg,PyObject * __pyx_v_is_unbound_method,PyObject * __pyx_v_type_name,PyObject * __pyx_v_node,PyObject * __pyx_v_function,PyObject * __pyx_v_arg_list,PyObject * __pyx_v_kwargs)14448 static PyObject *__pyx_f_6Cython_8Compiler_7Visitor_25MethodDispatcherTransform__dispatch_to_method_handler(struct __pyx_obj_6Cython_8Compiler_7Visitor_MethodDispatcherTransform *__pyx_v_self, PyObject *__pyx_v_attr_name, PyObject *__pyx_v_self_arg, PyObject *__pyx_v_is_unbound_method, PyObject *__pyx_v_type_name, PyObject *__pyx_v_node, PyObject *__pyx_v_function, PyObject *__pyx_v_arg_list, PyObject *__pyx_v_kwargs) {
14449   PyObject *__pyx_v_method_handler = NULL;
14450   PyObject *__pyx_v_result = NULL;
14451   PyObject *__pyx_r = NULL;
14452   __Pyx_RefNannyDeclarations
14453   PyObject *__pyx_t_1 = NULL;
14454   Py_ssize_t __pyx_t_2;
14455   Py_UCS4 __pyx_t_3;
14456   PyObject *__pyx_t_4 = NULL;
14457   int __pyx_t_5;
14458   int __pyx_t_6;
14459   int __pyx_t_7;
14460   PyObject *__pyx_t_8 = NULL;
14461   int __pyx_t_9;
14462   PyObject *__pyx_t_10 = NULL;
14463   int __pyx_lineno = 0;
14464   const char *__pyx_filename = NULL;
14465   int __pyx_clineno = 0;
14466   __Pyx_RefNannySetupContext("_dispatch_to_method_handler", 0);
14467   __Pyx_INCREF(__pyx_v_arg_list);
14468 
14469   /* "Cython/Compiler/Visitor.py":663
14470  *                                     node, function, arg_list, kwargs):
14471  *         method_handler = self._find_handler(
14472  *             "method_%s_%s" % (type_name, attr_name), kwargs)             # <<<<<<<<<<<<<<
14473  *         if method_handler is None:
14474  *             if (attr_name in TypeSlots.method_name_to_slot
14475  */
14476   __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 663, __pyx_L1_error)
14477   __Pyx_GOTREF(__pyx_t_1);
14478   __pyx_t_2 = 0;
14479   __pyx_t_3 = 127;
14480   __Pyx_INCREF(__pyx_n_u_method);
14481   __pyx_t_2 += 7;
14482   __Pyx_GIVEREF(__pyx_n_u_method);
14483   PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_n_u_method);
14484   __pyx_t_4 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Unicode(__pyx_v_type_name), __pyx_empty_unicode); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 663, __pyx_L1_error)
14485   __Pyx_GOTREF(__pyx_t_4);
14486   __pyx_t_3 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_4) > __pyx_t_3) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_4) : __pyx_t_3;
14487   __pyx_t_2 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_4);
14488   __Pyx_GIVEREF(__pyx_t_4);
14489   PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_4);
14490   __pyx_t_4 = 0;
14491   __Pyx_INCREF(__pyx_n_u__2);
14492   __pyx_t_2 += 1;
14493   __Pyx_GIVEREF(__pyx_n_u__2);
14494   PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_n_u__2);
14495   __pyx_t_4 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Unicode(__pyx_v_attr_name), __pyx_empty_unicode); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 663, __pyx_L1_error)
14496   __Pyx_GOTREF(__pyx_t_4);
14497   __pyx_t_3 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_4) > __pyx_t_3) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_4) : __pyx_t_3;
14498   __pyx_t_2 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_4);
14499   __Pyx_GIVEREF(__pyx_t_4);
14500   PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_t_4);
14501   __pyx_t_4 = 0;
14502   __pyx_t_4 = __Pyx_PyUnicode_Join(__pyx_t_1, 4, __pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 663, __pyx_L1_error)
14503   __Pyx_GOTREF(__pyx_t_4);
14504   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
14505   __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_v_kwargs); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L1_error)
14506 
14507   /* "Cython/Compiler/Visitor.py":662
14508  *                                     is_unbound_method, type_name,
14509  *                                     node, function, arg_list, kwargs):
14510  *         method_handler = self._find_handler(             # <<<<<<<<<<<<<<
14511  *             "method_%s_%s" % (type_name, attr_name), kwargs)
14512  *         if method_handler is None:
14513  */
14514   __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_7Visitor_MethodDispatcherTransform *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.__pyx_base.__pyx_vtab)->_find_handler(__pyx_v_self, __pyx_t_4, __pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 662, __pyx_L1_error)
14515   __Pyx_GOTREF(__pyx_t_1);
14516   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
14517   __pyx_v_method_handler = __pyx_t_1;
14518   __pyx_t_1 = 0;
14519 
14520   /* "Cython/Compiler/Visitor.py":664
14521  *         method_handler = self._find_handler(
14522  *             "method_%s_%s" % (type_name, attr_name), kwargs)
14523  *         if method_handler is None:             # <<<<<<<<<<<<<<
14524  *             if (attr_name in TypeSlots.method_name_to_slot
14525  *                     or attr_name == '__new__'):
14526  */
14527   __pyx_t_5 = (__pyx_v_method_handler == Py_None);
14528   __pyx_t_6 = (__pyx_t_5 != 0);
14529   if (__pyx_t_6) {
14530 
14531     /* "Cython/Compiler/Visitor.py":665
14532  *             "method_%s_%s" % (type_name, attr_name), kwargs)
14533  *         if method_handler is None:
14534  *             if (attr_name in TypeSlots.method_name_to_slot             # <<<<<<<<<<<<<<
14535  *                     or attr_name == '__new__'):
14536  *                 method_handler = self._find_handler(
14537  */
14538     __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_TypeSlots); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 665, __pyx_L1_error)
14539     __Pyx_GOTREF(__pyx_t_1);
14540     __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_method_name_to_slot); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 665, __pyx_L1_error)
14541     __Pyx_GOTREF(__pyx_t_4);
14542     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
14543     __pyx_t_5 = (__Pyx_PySequence_ContainsTF(__pyx_v_attr_name, __pyx_t_4, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 665, __pyx_L1_error)
14544     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
14545     __pyx_t_7 = (__pyx_t_5 != 0);
14546     if (!__pyx_t_7) {
14547     } else {
14548       __pyx_t_6 = __pyx_t_7;
14549       goto __pyx_L5_bool_binop_done;
14550     }
14551 
14552     /* "Cython/Compiler/Visitor.py":666
14553  *         if method_handler is None:
14554  *             if (attr_name in TypeSlots.method_name_to_slot
14555  *                     or attr_name == '__new__'):             # <<<<<<<<<<<<<<
14556  *                 method_handler = self._find_handler(
14557  *                     "slot%s" % attr_name, kwargs)
14558  */
14559     __pyx_t_7 = (__Pyx_PyUnicode_Equals(__pyx_v_attr_name, __pyx_n_u_new, Py_EQ)); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 666, __pyx_L1_error)
14560     __pyx_t_6 = __pyx_t_7;
14561     __pyx_L5_bool_binop_done:;
14562 
14563     /* "Cython/Compiler/Visitor.py":665
14564  *             "method_%s_%s" % (type_name, attr_name), kwargs)
14565  *         if method_handler is None:
14566  *             if (attr_name in TypeSlots.method_name_to_slot             # <<<<<<<<<<<<<<
14567  *                     or attr_name == '__new__'):
14568  *                 method_handler = self._find_handler(
14569  */
14570     if (__pyx_t_6) {
14571 
14572       /* "Cython/Compiler/Visitor.py":668
14573  *                     or attr_name == '__new__'):
14574  *                 method_handler = self._find_handler(
14575  *                     "slot%s" % attr_name, kwargs)             # <<<<<<<<<<<<<<
14576  *             if method_handler is None:
14577  *                 return self._handle_method(
14578  */
14579       __pyx_t_4 = __Pyx_PyUnicode_FormatSafe(__pyx_kp_u_slot_s, __pyx_v_attr_name); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 668, __pyx_L1_error)
14580       __Pyx_GOTREF(__pyx_t_4);
14581       __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v_kwargs); if (unlikely((__pyx_t_6 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 668, __pyx_L1_error)
14582 
14583       /* "Cython/Compiler/Visitor.py":667
14584  *             if (attr_name in TypeSlots.method_name_to_slot
14585  *                     or attr_name == '__new__'):
14586  *                 method_handler = self._find_handler(             # <<<<<<<<<<<<<<
14587  *                     "slot%s" % attr_name, kwargs)
14588  *             if method_handler is None:
14589  */
14590       __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_7Visitor_MethodDispatcherTransform *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.__pyx_base.__pyx_vtab)->_find_handler(__pyx_v_self, __pyx_t_4, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 667, __pyx_L1_error)
14591       __Pyx_GOTREF(__pyx_t_1);
14592       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
14593       __Pyx_DECREF_SET(__pyx_v_method_handler, __pyx_t_1);
14594       __pyx_t_1 = 0;
14595 
14596       /* "Cython/Compiler/Visitor.py":665
14597  *             "method_%s_%s" % (type_name, attr_name), kwargs)
14598  *         if method_handler is None:
14599  *             if (attr_name in TypeSlots.method_name_to_slot             # <<<<<<<<<<<<<<
14600  *                     or attr_name == '__new__'):
14601  *                 method_handler = self._find_handler(
14602  */
14603     }
14604 
14605     /* "Cython/Compiler/Visitor.py":669
14606  *                 method_handler = self._find_handler(
14607  *                     "slot%s" % attr_name, kwargs)
14608  *             if method_handler is None:             # <<<<<<<<<<<<<<
14609  *                 return self._handle_method(
14610  *                     node, type_name, attr_name, function,
14611  */
14612     __pyx_t_6 = (__pyx_v_method_handler == Py_None);
14613     __pyx_t_7 = (__pyx_t_6 != 0);
14614     if (__pyx_t_7) {
14615 
14616       /* "Cython/Compiler/Visitor.py":670
14617  *                     "slot%s" % attr_name, kwargs)
14618  *             if method_handler is None:
14619  *                 return self._handle_method(             # <<<<<<<<<<<<<<
14620  *                     node, type_name, attr_name, function,
14621  *                     arg_list, is_unbound_method, kwargs)
14622  */
14623       __Pyx_XDECREF(__pyx_r);
14624       __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_handle_method); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 670, __pyx_L1_error)
14625       __Pyx_GOTREF(__pyx_t_4);
14626 
14627       /* "Cython/Compiler/Visitor.py":672
14628  *                 return self._handle_method(
14629  *                     node, type_name, attr_name, function,
14630  *                     arg_list, is_unbound_method, kwargs)             # <<<<<<<<<<<<<<
14631  *         if self_arg is not None:
14632  *             arg_list = [self_arg] + list(arg_list)
14633  */
14634       __pyx_t_8 = NULL;
14635       __pyx_t_9 = 0;
14636       if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
14637         __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_4);
14638         if (likely(__pyx_t_8)) {
14639           PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
14640           __Pyx_INCREF(__pyx_t_8);
14641           __Pyx_INCREF(function);
14642           __Pyx_DECREF_SET(__pyx_t_4, function);
14643           __pyx_t_9 = 1;
14644         }
14645       }
14646       #if CYTHON_FAST_PYCALL
14647       if (PyFunction_Check(__pyx_t_4)) {
14648         PyObject *__pyx_temp[8] = {__pyx_t_8, __pyx_v_node, __pyx_v_type_name, __pyx_v_attr_name, __pyx_v_function, __pyx_v_arg_list, __pyx_v_is_unbound_method, __pyx_v_kwargs};
14649         __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_9, 7+__pyx_t_9); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 670, __pyx_L1_error)
14650         __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
14651         __Pyx_GOTREF(__pyx_t_1);
14652       } else
14653       #endif
14654       #if CYTHON_FAST_PYCCALL
14655       if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) {
14656         PyObject *__pyx_temp[8] = {__pyx_t_8, __pyx_v_node, __pyx_v_type_name, __pyx_v_attr_name, __pyx_v_function, __pyx_v_arg_list, __pyx_v_is_unbound_method, __pyx_v_kwargs};
14657         __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_9, 7+__pyx_t_9); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 670, __pyx_L1_error)
14658         __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
14659         __Pyx_GOTREF(__pyx_t_1);
14660       } else
14661       #endif
14662       {
14663         __pyx_t_10 = PyTuple_New(7+__pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 670, __pyx_L1_error)
14664         __Pyx_GOTREF(__pyx_t_10);
14665         if (__pyx_t_8) {
14666           __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_8); __pyx_t_8 = NULL;
14667         }
14668         __Pyx_INCREF(__pyx_v_node);
14669         __Pyx_GIVEREF(__pyx_v_node);
14670         PyTuple_SET_ITEM(__pyx_t_10, 0+__pyx_t_9, __pyx_v_node);
14671         __Pyx_INCREF(__pyx_v_type_name);
14672         __Pyx_GIVEREF(__pyx_v_type_name);
14673         PyTuple_SET_ITEM(__pyx_t_10, 1+__pyx_t_9, __pyx_v_type_name);
14674         __Pyx_INCREF(__pyx_v_attr_name);
14675         __Pyx_GIVEREF(__pyx_v_attr_name);
14676         PyTuple_SET_ITEM(__pyx_t_10, 2+__pyx_t_9, __pyx_v_attr_name);
14677         __Pyx_INCREF(__pyx_v_function);
14678         __Pyx_GIVEREF(__pyx_v_function);
14679         PyTuple_SET_ITEM(__pyx_t_10, 3+__pyx_t_9, __pyx_v_function);
14680         __Pyx_INCREF(__pyx_v_arg_list);
14681         __Pyx_GIVEREF(__pyx_v_arg_list);
14682         PyTuple_SET_ITEM(__pyx_t_10, 4+__pyx_t_9, __pyx_v_arg_list);
14683         __Pyx_INCREF(__pyx_v_is_unbound_method);
14684         __Pyx_GIVEREF(__pyx_v_is_unbound_method);
14685         PyTuple_SET_ITEM(__pyx_t_10, 5+__pyx_t_9, __pyx_v_is_unbound_method);
14686         __Pyx_INCREF(__pyx_v_kwargs);
14687         __Pyx_GIVEREF(__pyx_v_kwargs);
14688         PyTuple_SET_ITEM(__pyx_t_10, 6+__pyx_t_9, __pyx_v_kwargs);
14689         __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_10, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 670, __pyx_L1_error)
14690         __Pyx_GOTREF(__pyx_t_1);
14691         __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
14692       }
14693       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
14694       __pyx_r = __pyx_t_1;
14695       __pyx_t_1 = 0;
14696       goto __pyx_L0;
14697 
14698       /* "Cython/Compiler/Visitor.py":669
14699  *                 method_handler = self._find_handler(
14700  *                     "slot%s" % attr_name, kwargs)
14701  *             if method_handler is None:             # <<<<<<<<<<<<<<
14702  *                 return self._handle_method(
14703  *                     node, type_name, attr_name, function,
14704  */
14705     }
14706 
14707     /* "Cython/Compiler/Visitor.py":664
14708  *         method_handler = self._find_handler(
14709  *             "method_%s_%s" % (type_name, attr_name), kwargs)
14710  *         if method_handler is None:             # <<<<<<<<<<<<<<
14711  *             if (attr_name in TypeSlots.method_name_to_slot
14712  *                     or attr_name == '__new__'):
14713  */
14714   }
14715 
14716   /* "Cython/Compiler/Visitor.py":673
14717  *                     node, type_name, attr_name, function,
14718  *                     arg_list, is_unbound_method, kwargs)
14719  *         if self_arg is not None:             # <<<<<<<<<<<<<<
14720  *             arg_list = [self_arg] + list(arg_list)
14721  *         if kwargs:
14722  */
14723   __pyx_t_7 = (__pyx_v_self_arg != Py_None);
14724   __pyx_t_6 = (__pyx_t_7 != 0);
14725   if (__pyx_t_6) {
14726 
14727     /* "Cython/Compiler/Visitor.py":674
14728  *                     arg_list, is_unbound_method, kwargs)
14729  *         if self_arg is not None:
14730  *             arg_list = [self_arg] + list(arg_list)             # <<<<<<<<<<<<<<
14731  *         if kwargs:
14732  *             result = method_handler(
14733  */
14734     __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 674, __pyx_L1_error)
14735     __Pyx_GOTREF(__pyx_t_1);
14736     __Pyx_INCREF(__pyx_v_self_arg);
14737     __Pyx_GIVEREF(__pyx_v_self_arg);
14738     PyList_SET_ITEM(__pyx_t_1, 0, __pyx_v_self_arg);
14739     __pyx_t_4 = PySequence_List(__pyx_v_arg_list); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 674, __pyx_L1_error)
14740     __Pyx_GOTREF(__pyx_t_4);
14741     __pyx_t_10 = PyNumber_Add(__pyx_t_1, __pyx_t_4); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 674, __pyx_L1_error)
14742     __Pyx_GOTREF(__pyx_t_10);
14743     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
14744     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
14745     __Pyx_DECREF_SET(__pyx_v_arg_list, __pyx_t_10);
14746     __pyx_t_10 = 0;
14747 
14748     /* "Cython/Compiler/Visitor.py":673
14749  *                     node, type_name, attr_name, function,
14750  *                     arg_list, is_unbound_method, kwargs)
14751  *         if self_arg is not None:             # <<<<<<<<<<<<<<
14752  *             arg_list = [self_arg] + list(arg_list)
14753  *         if kwargs:
14754  */
14755   }
14756 
14757   /* "Cython/Compiler/Visitor.py":675
14758  *         if self_arg is not None:
14759  *             arg_list = [self_arg] + list(arg_list)
14760  *         if kwargs:             # <<<<<<<<<<<<<<
14761  *             result = method_handler(
14762  *                 node, function, arg_list, is_unbound_method, kwargs)
14763  */
14764   __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v_kwargs); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 675, __pyx_L1_error)
14765   if (__pyx_t_6) {
14766 
14767     /* "Cython/Compiler/Visitor.py":677
14768  *         if kwargs:
14769  *             result = method_handler(
14770  *                 node, function, arg_list, is_unbound_method, kwargs)             # <<<<<<<<<<<<<<
14771  *         else:
14772  *             result = method_handler(
14773  */
14774     __Pyx_INCREF(__pyx_v_method_handler);
14775     __pyx_t_4 = __pyx_v_method_handler; __pyx_t_1 = NULL;
14776     __pyx_t_9 = 0;
14777     if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
14778       __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_4);
14779       if (likely(__pyx_t_1)) {
14780         PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
14781         __Pyx_INCREF(__pyx_t_1);
14782         __Pyx_INCREF(function);
14783         __Pyx_DECREF_SET(__pyx_t_4, function);
14784         __pyx_t_9 = 1;
14785       }
14786     }
14787     #if CYTHON_FAST_PYCALL
14788     if (PyFunction_Check(__pyx_t_4)) {
14789       PyObject *__pyx_temp[6] = {__pyx_t_1, __pyx_v_node, __pyx_v_function, __pyx_v_arg_list, __pyx_v_is_unbound_method, __pyx_v_kwargs};
14790       __pyx_t_10 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_9, 5+__pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 676, __pyx_L1_error)
14791       __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
14792       __Pyx_GOTREF(__pyx_t_10);
14793     } else
14794     #endif
14795     #if CYTHON_FAST_PYCCALL
14796     if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) {
14797       PyObject *__pyx_temp[6] = {__pyx_t_1, __pyx_v_node, __pyx_v_function, __pyx_v_arg_list, __pyx_v_is_unbound_method, __pyx_v_kwargs};
14798       __pyx_t_10 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_9, 5+__pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 676, __pyx_L1_error)
14799       __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
14800       __Pyx_GOTREF(__pyx_t_10);
14801     } else
14802     #endif
14803     {
14804       __pyx_t_8 = PyTuple_New(5+__pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 676, __pyx_L1_error)
14805       __Pyx_GOTREF(__pyx_t_8);
14806       if (__pyx_t_1) {
14807         __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_1); __pyx_t_1 = NULL;
14808       }
14809       __Pyx_INCREF(__pyx_v_node);
14810       __Pyx_GIVEREF(__pyx_v_node);
14811       PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_9, __pyx_v_node);
14812       __Pyx_INCREF(__pyx_v_function);
14813       __Pyx_GIVEREF(__pyx_v_function);
14814       PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_9, __pyx_v_function);
14815       __Pyx_INCREF(__pyx_v_arg_list);
14816       __Pyx_GIVEREF(__pyx_v_arg_list);
14817       PyTuple_SET_ITEM(__pyx_t_8, 2+__pyx_t_9, __pyx_v_arg_list);
14818       __Pyx_INCREF(__pyx_v_is_unbound_method);
14819       __Pyx_GIVEREF(__pyx_v_is_unbound_method);
14820       PyTuple_SET_ITEM(__pyx_t_8, 3+__pyx_t_9, __pyx_v_is_unbound_method);
14821       __Pyx_INCREF(__pyx_v_kwargs);
14822       __Pyx_GIVEREF(__pyx_v_kwargs);
14823       PyTuple_SET_ITEM(__pyx_t_8, 4+__pyx_t_9, __pyx_v_kwargs);
14824       __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_8, NULL); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 676, __pyx_L1_error)
14825       __Pyx_GOTREF(__pyx_t_10);
14826       __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
14827     }
14828     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
14829     __pyx_v_result = __pyx_t_10;
14830     __pyx_t_10 = 0;
14831 
14832     /* "Cython/Compiler/Visitor.py":675
14833  *         if self_arg is not None:
14834  *             arg_list = [self_arg] + list(arg_list)
14835  *         if kwargs:             # <<<<<<<<<<<<<<
14836  *             result = method_handler(
14837  *                 node, function, arg_list, is_unbound_method, kwargs)
14838  */
14839     goto __pyx_L9;
14840   }
14841 
14842   /* "Cython/Compiler/Visitor.py":679
14843  *                 node, function, arg_list, is_unbound_method, kwargs)
14844  *         else:
14845  *             result = method_handler(             # <<<<<<<<<<<<<<
14846  *                 node, function, arg_list, is_unbound_method)
14847  *         return result
14848  */
14849   /*else*/ {
14850 
14851     /* "Cython/Compiler/Visitor.py":680
14852  *         else:
14853  *             result = method_handler(
14854  *                 node, function, arg_list, is_unbound_method)             # <<<<<<<<<<<<<<
14855  *         return result
14856  *
14857  */
14858     __Pyx_INCREF(__pyx_v_method_handler);
14859     __pyx_t_4 = __pyx_v_method_handler; __pyx_t_8 = NULL;
14860     __pyx_t_9 = 0;
14861     if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
14862       __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_4);
14863       if (likely(__pyx_t_8)) {
14864         PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
14865         __Pyx_INCREF(__pyx_t_8);
14866         __Pyx_INCREF(function);
14867         __Pyx_DECREF_SET(__pyx_t_4, function);
14868         __pyx_t_9 = 1;
14869       }
14870     }
14871     #if CYTHON_FAST_PYCALL
14872     if (PyFunction_Check(__pyx_t_4)) {
14873       PyObject *__pyx_temp[5] = {__pyx_t_8, __pyx_v_node, __pyx_v_function, __pyx_v_arg_list, __pyx_v_is_unbound_method};
14874       __pyx_t_10 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_9, 4+__pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 679, __pyx_L1_error)
14875       __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
14876       __Pyx_GOTREF(__pyx_t_10);
14877     } else
14878     #endif
14879     #if CYTHON_FAST_PYCCALL
14880     if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) {
14881       PyObject *__pyx_temp[5] = {__pyx_t_8, __pyx_v_node, __pyx_v_function, __pyx_v_arg_list, __pyx_v_is_unbound_method};
14882       __pyx_t_10 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_9, 4+__pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 679, __pyx_L1_error)
14883       __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
14884       __Pyx_GOTREF(__pyx_t_10);
14885     } else
14886     #endif
14887     {
14888       __pyx_t_1 = PyTuple_New(4+__pyx_t_9); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 679, __pyx_L1_error)
14889       __Pyx_GOTREF(__pyx_t_1);
14890       if (__pyx_t_8) {
14891         __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_8); __pyx_t_8 = NULL;
14892       }
14893       __Pyx_INCREF(__pyx_v_node);
14894       __Pyx_GIVEREF(__pyx_v_node);
14895       PyTuple_SET_ITEM(__pyx_t_1, 0+__pyx_t_9, __pyx_v_node);
14896       __Pyx_INCREF(__pyx_v_function);
14897       __Pyx_GIVEREF(__pyx_v_function);
14898       PyTuple_SET_ITEM(__pyx_t_1, 1+__pyx_t_9, __pyx_v_function);
14899       __Pyx_INCREF(__pyx_v_arg_list);
14900       __Pyx_GIVEREF(__pyx_v_arg_list);
14901       PyTuple_SET_ITEM(__pyx_t_1, 2+__pyx_t_9, __pyx_v_arg_list);
14902       __Pyx_INCREF(__pyx_v_is_unbound_method);
14903       __Pyx_GIVEREF(__pyx_v_is_unbound_method);
14904       PyTuple_SET_ITEM(__pyx_t_1, 3+__pyx_t_9, __pyx_v_is_unbound_method);
14905       __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_1, NULL); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 679, __pyx_L1_error)
14906       __Pyx_GOTREF(__pyx_t_10);
14907       __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
14908     }
14909     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
14910     __pyx_v_result = __pyx_t_10;
14911     __pyx_t_10 = 0;
14912   }
14913   __pyx_L9:;
14914 
14915   /* "Cython/Compiler/Visitor.py":681
14916  *             result = method_handler(
14917  *                 node, function, arg_list, is_unbound_method)
14918  *         return result             # <<<<<<<<<<<<<<
14919  *
14920  *     def _handle_function(self, node, function_name, function, arg_list, kwargs):
14921  */
14922   __Pyx_XDECREF(__pyx_r);
14923   __Pyx_INCREF(__pyx_v_result);
14924   __pyx_r = __pyx_v_result;
14925   goto __pyx_L0;
14926 
14927   /* "Cython/Compiler/Visitor.py":659
14928  *             return node
14929  *
14930  *     def _dispatch_to_method_handler(self, attr_name, self_arg,             # <<<<<<<<<<<<<<
14931  *                                     is_unbound_method, type_name,
14932  *                                     node, function, arg_list, kwargs):
14933  */
14934 
14935   /* function exit code */
14936   __pyx_L1_error:;
14937   __Pyx_XDECREF(__pyx_t_1);
14938   __Pyx_XDECREF(__pyx_t_4);
14939   __Pyx_XDECREF(__pyx_t_8);
14940   __Pyx_XDECREF(__pyx_t_10);
14941   __Pyx_AddTraceback("Cython.Compiler.Visitor.MethodDispatcherTransform._dispatch_to_method_handler", __pyx_clineno, __pyx_lineno, __pyx_filename);
14942   __pyx_r = 0;
14943   __pyx_L0:;
14944   __Pyx_XDECREF(__pyx_v_method_handler);
14945   __Pyx_XDECREF(__pyx_v_result);
14946   __Pyx_XDECREF(__pyx_v_arg_list);
14947   __Pyx_XGIVEREF(__pyx_r);
14948   __Pyx_RefNannyFinishContext();
14949   return __pyx_r;
14950 }
14951 
14952 /* "Cython/Compiler/Visitor.py":683
14953  *         return result
14954  *
14955  *     def _handle_function(self, node, function_name, function, arg_list, kwargs):             # <<<<<<<<<<<<<<
14956  *         """Fallback handler"""
14957  *         return node
14958  */
14959 
14960 /* Python wrapper */
14961 static PyObject *__pyx_pw_6Cython_8Compiler_7Visitor_25MethodDispatcherTransform_11_handle_function(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
14962 static char __pyx_doc_6Cython_8Compiler_7Visitor_25MethodDispatcherTransform_10_handle_function[] = "Fallback handler";
14963 static PyMethodDef __pyx_mdef_6Cython_8Compiler_7Visitor_25MethodDispatcherTransform_11_handle_function = {"_handle_function", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6Cython_8Compiler_7Visitor_25MethodDispatcherTransform_11_handle_function, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6Cython_8Compiler_7Visitor_25MethodDispatcherTransform_10_handle_function};
__pyx_pw_6Cython_8Compiler_7Visitor_25MethodDispatcherTransform_11_handle_function(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)14964 static PyObject *__pyx_pw_6Cython_8Compiler_7Visitor_25MethodDispatcherTransform_11_handle_function(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
14965   PyObject *__pyx_v_node = 0;
14966   CYTHON_UNUSED PyObject *__pyx_v_function_name = 0;
14967   CYTHON_UNUSED PyObject *__pyx_v_function = 0;
14968   CYTHON_UNUSED PyObject *__pyx_v_arg_list = 0;
14969   CYTHON_UNUSED PyObject *__pyx_v_kwargs = 0;
14970   int __pyx_lineno = 0;
14971   const char *__pyx_filename = NULL;
14972   int __pyx_clineno = 0;
14973   PyObject *__pyx_r = 0;
14974   __Pyx_RefNannyDeclarations
14975   __Pyx_RefNannySetupContext("_handle_function (wrapper)", 0);
14976   {
14977     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_node,&__pyx_n_s_function_name,&__pyx_n_s_function,&__pyx_n_s_arg_list,&__pyx_n_s_kwargs,0};
14978     PyObject* values[5] = {0,0,0,0,0};
14979     if (unlikely(__pyx_kwds)) {
14980       Py_ssize_t kw_args;
14981       const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
14982       switch (pos_args) {
14983         case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
14984         CYTHON_FALLTHROUGH;
14985         case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
14986         CYTHON_FALLTHROUGH;
14987         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
14988         CYTHON_FALLTHROUGH;
14989         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
14990         CYTHON_FALLTHROUGH;
14991         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
14992         CYTHON_FALLTHROUGH;
14993         case  0: break;
14994         default: goto __pyx_L5_argtuple_error;
14995       }
14996       kw_args = PyDict_Size(__pyx_kwds);
14997       switch (pos_args) {
14998         case  0:
14999         if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_node)) != 0)) kw_args--;
15000         else goto __pyx_L5_argtuple_error;
15001         CYTHON_FALLTHROUGH;
15002         case  1:
15003         if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_function_name)) != 0)) kw_args--;
15004         else {
15005           __Pyx_RaiseArgtupleInvalid("_handle_function", 1, 5, 5, 1); __PYX_ERR(0, 683, __pyx_L3_error)
15006         }
15007         CYTHON_FALLTHROUGH;
15008         case  2:
15009         if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_function)) != 0)) kw_args--;
15010         else {
15011           __Pyx_RaiseArgtupleInvalid("_handle_function", 1, 5, 5, 2); __PYX_ERR(0, 683, __pyx_L3_error)
15012         }
15013         CYTHON_FALLTHROUGH;
15014         case  3:
15015         if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_arg_list)) != 0)) kw_args--;
15016         else {
15017           __Pyx_RaiseArgtupleInvalid("_handle_function", 1, 5, 5, 3); __PYX_ERR(0, 683, __pyx_L3_error)
15018         }
15019         CYTHON_FALLTHROUGH;
15020         case  4:
15021         if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kwargs)) != 0)) kw_args--;
15022         else {
15023           __Pyx_RaiseArgtupleInvalid("_handle_function", 1, 5, 5, 4); __PYX_ERR(0, 683, __pyx_L3_error)
15024         }
15025       }
15026       if (unlikely(kw_args > 0)) {
15027         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "_handle_function") < 0)) __PYX_ERR(0, 683, __pyx_L3_error)
15028       }
15029     } else if (PyTuple_GET_SIZE(__pyx_args) != 5) {
15030       goto __pyx_L5_argtuple_error;
15031     } else {
15032       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
15033       values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
15034       values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
15035       values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
15036       values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
15037     }
15038     __pyx_v_node = values[0];
15039     __pyx_v_function_name = values[1];
15040     __pyx_v_function = values[2];
15041     __pyx_v_arg_list = values[3];
15042     __pyx_v_kwargs = values[4];
15043   }
15044   goto __pyx_L4_argument_unpacking_done;
15045   __pyx_L5_argtuple_error:;
15046   __Pyx_RaiseArgtupleInvalid("_handle_function", 1, 5, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 683, __pyx_L3_error)
15047   __pyx_L3_error:;
15048   __Pyx_AddTraceback("Cython.Compiler.Visitor.MethodDispatcherTransform._handle_function", __pyx_clineno, __pyx_lineno, __pyx_filename);
15049   __Pyx_RefNannyFinishContext();
15050   return NULL;
15051   __pyx_L4_argument_unpacking_done:;
15052   __pyx_r = __pyx_pf_6Cython_8Compiler_7Visitor_25MethodDispatcherTransform_10_handle_function(((struct __pyx_obj_6Cython_8Compiler_7Visitor_MethodDispatcherTransform *)__pyx_v_self), __pyx_v_node, __pyx_v_function_name, __pyx_v_function, __pyx_v_arg_list, __pyx_v_kwargs);
15053 
15054   /* function exit code */
15055   __Pyx_RefNannyFinishContext();
15056   return __pyx_r;
15057 }
15058 
__pyx_pf_6Cython_8Compiler_7Visitor_25MethodDispatcherTransform_10_handle_function(CYTHON_UNUSED struct __pyx_obj_6Cython_8Compiler_7Visitor_MethodDispatcherTransform * __pyx_v_self,PyObject * __pyx_v_node,CYTHON_UNUSED PyObject * __pyx_v_function_name,CYTHON_UNUSED PyObject * __pyx_v_function,CYTHON_UNUSED PyObject * __pyx_v_arg_list,CYTHON_UNUSED PyObject * __pyx_v_kwargs)15059 static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_25MethodDispatcherTransform_10_handle_function(CYTHON_UNUSED struct __pyx_obj_6Cython_8Compiler_7Visitor_MethodDispatcherTransform *__pyx_v_self, PyObject *__pyx_v_node, CYTHON_UNUSED PyObject *__pyx_v_function_name, CYTHON_UNUSED PyObject *__pyx_v_function, CYTHON_UNUSED PyObject *__pyx_v_arg_list, CYTHON_UNUSED PyObject *__pyx_v_kwargs) {
15060   PyObject *__pyx_r = NULL;
15061   __Pyx_RefNannyDeclarations
15062   __Pyx_RefNannySetupContext("_handle_function", 0);
15063 
15064   /* "Cython/Compiler/Visitor.py":685
15065  *     def _handle_function(self, node, function_name, function, arg_list, kwargs):
15066  *         """Fallback handler"""
15067  *         return node             # <<<<<<<<<<<<<<
15068  *
15069  *     def _handle_method(self, node, type_name, attr_name, function,
15070  */
15071   __Pyx_XDECREF(__pyx_r);
15072   __Pyx_INCREF(__pyx_v_node);
15073   __pyx_r = __pyx_v_node;
15074   goto __pyx_L0;
15075 
15076   /* "Cython/Compiler/Visitor.py":683
15077  *         return result
15078  *
15079  *     def _handle_function(self, node, function_name, function, arg_list, kwargs):             # <<<<<<<<<<<<<<
15080  *         """Fallback handler"""
15081  *         return node
15082  */
15083 
15084   /* function exit code */
15085   __pyx_L0:;
15086   __Pyx_XGIVEREF(__pyx_r);
15087   __Pyx_RefNannyFinishContext();
15088   return __pyx_r;
15089 }
15090 
15091 /* "Cython/Compiler/Visitor.py":687
15092  *         return node
15093  *
15094  *     def _handle_method(self, node, type_name, attr_name, function,             # <<<<<<<<<<<<<<
15095  *                        arg_list, is_unbound_method, kwargs):
15096  *         """Fallback handler"""
15097  */
15098 
15099 /* Python wrapper */
15100 static PyObject *__pyx_pw_6Cython_8Compiler_7Visitor_25MethodDispatcherTransform_13_handle_method(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
15101 static char __pyx_doc_6Cython_8Compiler_7Visitor_25MethodDispatcherTransform_12_handle_method[] = "Fallback handler";
15102 static PyMethodDef __pyx_mdef_6Cython_8Compiler_7Visitor_25MethodDispatcherTransform_13_handle_method = {"_handle_method", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6Cython_8Compiler_7Visitor_25MethodDispatcherTransform_13_handle_method, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6Cython_8Compiler_7Visitor_25MethodDispatcherTransform_12_handle_method};
__pyx_pw_6Cython_8Compiler_7Visitor_25MethodDispatcherTransform_13_handle_method(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)15103 static PyObject *__pyx_pw_6Cython_8Compiler_7Visitor_25MethodDispatcherTransform_13_handle_method(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
15104   PyObject *__pyx_v_node = 0;
15105   CYTHON_UNUSED PyObject *__pyx_v_type_name = 0;
15106   CYTHON_UNUSED PyObject *__pyx_v_attr_name = 0;
15107   CYTHON_UNUSED PyObject *__pyx_v_function = 0;
15108   CYTHON_UNUSED PyObject *__pyx_v_arg_list = 0;
15109   CYTHON_UNUSED PyObject *__pyx_v_is_unbound_method = 0;
15110   CYTHON_UNUSED PyObject *__pyx_v_kwargs = 0;
15111   int __pyx_lineno = 0;
15112   const char *__pyx_filename = NULL;
15113   int __pyx_clineno = 0;
15114   PyObject *__pyx_r = 0;
15115   __Pyx_RefNannyDeclarations
15116   __Pyx_RefNannySetupContext("_handle_method (wrapper)", 0);
15117   {
15118     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_node,&__pyx_n_s_type_name,&__pyx_n_s_attr_name,&__pyx_n_s_function,&__pyx_n_s_arg_list,&__pyx_n_s_is_unbound_method,&__pyx_n_s_kwargs,0};
15119     PyObject* values[7] = {0,0,0,0,0,0,0};
15120     if (unlikely(__pyx_kwds)) {
15121       Py_ssize_t kw_args;
15122       const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
15123       switch (pos_args) {
15124         case  7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
15125         CYTHON_FALLTHROUGH;
15126         case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
15127         CYTHON_FALLTHROUGH;
15128         case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
15129         CYTHON_FALLTHROUGH;
15130         case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
15131         CYTHON_FALLTHROUGH;
15132         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
15133         CYTHON_FALLTHROUGH;
15134         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
15135         CYTHON_FALLTHROUGH;
15136         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
15137         CYTHON_FALLTHROUGH;
15138         case  0: break;
15139         default: goto __pyx_L5_argtuple_error;
15140       }
15141       kw_args = PyDict_Size(__pyx_kwds);
15142       switch (pos_args) {
15143         case  0:
15144         if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_node)) != 0)) kw_args--;
15145         else goto __pyx_L5_argtuple_error;
15146         CYTHON_FALLTHROUGH;
15147         case  1:
15148         if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_type_name)) != 0)) kw_args--;
15149         else {
15150           __Pyx_RaiseArgtupleInvalid("_handle_method", 1, 7, 7, 1); __PYX_ERR(0, 687, __pyx_L3_error)
15151         }
15152         CYTHON_FALLTHROUGH;
15153         case  2:
15154         if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_attr_name)) != 0)) kw_args--;
15155         else {
15156           __Pyx_RaiseArgtupleInvalid("_handle_method", 1, 7, 7, 2); __PYX_ERR(0, 687, __pyx_L3_error)
15157         }
15158         CYTHON_FALLTHROUGH;
15159         case  3:
15160         if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_function)) != 0)) kw_args--;
15161         else {
15162           __Pyx_RaiseArgtupleInvalid("_handle_method", 1, 7, 7, 3); __PYX_ERR(0, 687, __pyx_L3_error)
15163         }
15164         CYTHON_FALLTHROUGH;
15165         case  4:
15166         if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_arg_list)) != 0)) kw_args--;
15167         else {
15168           __Pyx_RaiseArgtupleInvalid("_handle_method", 1, 7, 7, 4); __PYX_ERR(0, 687, __pyx_L3_error)
15169         }
15170         CYTHON_FALLTHROUGH;
15171         case  5:
15172         if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_is_unbound_method)) != 0)) kw_args--;
15173         else {
15174           __Pyx_RaiseArgtupleInvalid("_handle_method", 1, 7, 7, 5); __PYX_ERR(0, 687, __pyx_L3_error)
15175         }
15176         CYTHON_FALLTHROUGH;
15177         case  6:
15178         if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kwargs)) != 0)) kw_args--;
15179         else {
15180           __Pyx_RaiseArgtupleInvalid("_handle_method", 1, 7, 7, 6); __PYX_ERR(0, 687, __pyx_L3_error)
15181         }
15182       }
15183       if (unlikely(kw_args > 0)) {
15184         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "_handle_method") < 0)) __PYX_ERR(0, 687, __pyx_L3_error)
15185       }
15186     } else if (PyTuple_GET_SIZE(__pyx_args) != 7) {
15187       goto __pyx_L5_argtuple_error;
15188     } else {
15189       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
15190       values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
15191       values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
15192       values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
15193       values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
15194       values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
15195       values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
15196     }
15197     __pyx_v_node = values[0];
15198     __pyx_v_type_name = values[1];
15199     __pyx_v_attr_name = values[2];
15200     __pyx_v_function = values[3];
15201     __pyx_v_arg_list = values[4];
15202     __pyx_v_is_unbound_method = values[5];
15203     __pyx_v_kwargs = values[6];
15204   }
15205   goto __pyx_L4_argument_unpacking_done;
15206   __pyx_L5_argtuple_error:;
15207   __Pyx_RaiseArgtupleInvalid("_handle_method", 1, 7, 7, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 687, __pyx_L3_error)
15208   __pyx_L3_error:;
15209   __Pyx_AddTraceback("Cython.Compiler.Visitor.MethodDispatcherTransform._handle_method", __pyx_clineno, __pyx_lineno, __pyx_filename);
15210   __Pyx_RefNannyFinishContext();
15211   return NULL;
15212   __pyx_L4_argument_unpacking_done:;
15213   __pyx_r = __pyx_pf_6Cython_8Compiler_7Visitor_25MethodDispatcherTransform_12_handle_method(((struct __pyx_obj_6Cython_8Compiler_7Visitor_MethodDispatcherTransform *)__pyx_v_self), __pyx_v_node, __pyx_v_type_name, __pyx_v_attr_name, __pyx_v_function, __pyx_v_arg_list, __pyx_v_is_unbound_method, __pyx_v_kwargs);
15214 
15215   /* function exit code */
15216   __Pyx_RefNannyFinishContext();
15217   return __pyx_r;
15218 }
15219 
__pyx_pf_6Cython_8Compiler_7Visitor_25MethodDispatcherTransform_12_handle_method(CYTHON_UNUSED struct __pyx_obj_6Cython_8Compiler_7Visitor_MethodDispatcherTransform * __pyx_v_self,PyObject * __pyx_v_node,CYTHON_UNUSED PyObject * __pyx_v_type_name,CYTHON_UNUSED PyObject * __pyx_v_attr_name,CYTHON_UNUSED PyObject * __pyx_v_function,CYTHON_UNUSED PyObject * __pyx_v_arg_list,CYTHON_UNUSED PyObject * __pyx_v_is_unbound_method,CYTHON_UNUSED PyObject * __pyx_v_kwargs)15220 static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_25MethodDispatcherTransform_12_handle_method(CYTHON_UNUSED struct __pyx_obj_6Cython_8Compiler_7Visitor_MethodDispatcherTransform *__pyx_v_self, PyObject *__pyx_v_node, CYTHON_UNUSED PyObject *__pyx_v_type_name, CYTHON_UNUSED PyObject *__pyx_v_attr_name, CYTHON_UNUSED PyObject *__pyx_v_function, CYTHON_UNUSED PyObject *__pyx_v_arg_list, CYTHON_UNUSED PyObject *__pyx_v_is_unbound_method, CYTHON_UNUSED PyObject *__pyx_v_kwargs) {
15221   PyObject *__pyx_r = NULL;
15222   __Pyx_RefNannyDeclarations
15223   __Pyx_RefNannySetupContext("_handle_method", 0);
15224 
15225   /* "Cython/Compiler/Visitor.py":690
15226  *                        arg_list, is_unbound_method, kwargs):
15227  *         """Fallback handler"""
15228  *         return node             # <<<<<<<<<<<<<<
15229  *
15230  *
15231  */
15232   __Pyx_XDECREF(__pyx_r);
15233   __Pyx_INCREF(__pyx_v_node);
15234   __pyx_r = __pyx_v_node;
15235   goto __pyx_L0;
15236 
15237   /* "Cython/Compiler/Visitor.py":687
15238  *         return node
15239  *
15240  *     def _handle_method(self, node, type_name, attr_name, function,             # <<<<<<<<<<<<<<
15241  *                        arg_list, is_unbound_method, kwargs):
15242  *         """Fallback handler"""
15243  */
15244 
15245   /* function exit code */
15246   __pyx_L0:;
15247   __Pyx_XGIVEREF(__pyx_r);
15248   __Pyx_RefNannyFinishContext();
15249   return __pyx_r;
15250 }
15251 
15252 /* "Cython/Compiler/Visitor.py":698
15253  *     another node.
15254  *     """
15255  *     def __init__(self, orig_node, new_node):             # <<<<<<<<<<<<<<
15256  *         super(RecursiveNodeReplacer, self).__init__()
15257  *         self.orig_node, self.new_node = orig_node, new_node
15258  */
15259 
15260 /* Python wrapper */
15261 static int __pyx_pw_6Cython_8Compiler_7Visitor_21RecursiveNodeReplacer_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
__pyx_pw_6Cython_8Compiler_7Visitor_21RecursiveNodeReplacer_1__init__(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)15262 static int __pyx_pw_6Cython_8Compiler_7Visitor_21RecursiveNodeReplacer_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
15263   PyObject *__pyx_v_orig_node = 0;
15264   PyObject *__pyx_v_new_node = 0;
15265   int __pyx_lineno = 0;
15266   const char *__pyx_filename = NULL;
15267   int __pyx_clineno = 0;
15268   int __pyx_r;
15269   __Pyx_RefNannyDeclarations
15270   __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
15271   {
15272     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_orig_node,&__pyx_n_s_new_node,0};
15273     PyObject* values[2] = {0,0};
15274     if (unlikely(__pyx_kwds)) {
15275       Py_ssize_t kw_args;
15276       const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
15277       switch (pos_args) {
15278         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
15279         CYTHON_FALLTHROUGH;
15280         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
15281         CYTHON_FALLTHROUGH;
15282         case  0: break;
15283         default: goto __pyx_L5_argtuple_error;
15284       }
15285       kw_args = PyDict_Size(__pyx_kwds);
15286       switch (pos_args) {
15287         case  0:
15288         if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_orig_node)) != 0)) kw_args--;
15289         else goto __pyx_L5_argtuple_error;
15290         CYTHON_FALLTHROUGH;
15291         case  1:
15292         if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_new_node)) != 0)) kw_args--;
15293         else {
15294           __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, 1); __PYX_ERR(0, 698, __pyx_L3_error)
15295         }
15296       }
15297       if (unlikely(kw_args > 0)) {
15298         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 698, __pyx_L3_error)
15299       }
15300     } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
15301       goto __pyx_L5_argtuple_error;
15302     } else {
15303       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
15304       values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
15305     }
15306     __pyx_v_orig_node = values[0];
15307     __pyx_v_new_node = values[1];
15308   }
15309   goto __pyx_L4_argument_unpacking_done;
15310   __pyx_L5_argtuple_error:;
15311   __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 698, __pyx_L3_error)
15312   __pyx_L3_error:;
15313   __Pyx_AddTraceback("Cython.Compiler.Visitor.RecursiveNodeReplacer.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
15314   __Pyx_RefNannyFinishContext();
15315   return -1;
15316   __pyx_L4_argument_unpacking_done:;
15317   __pyx_r = __pyx_pf_6Cython_8Compiler_7Visitor_21RecursiveNodeReplacer___init__(((struct __pyx_obj_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer *)__pyx_v_self), __pyx_v_orig_node, __pyx_v_new_node);
15318 
15319   /* function exit code */
15320   __Pyx_RefNannyFinishContext();
15321   return __pyx_r;
15322 }
15323 
__pyx_pf_6Cython_8Compiler_7Visitor_21RecursiveNodeReplacer___init__(struct __pyx_obj_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer * __pyx_v_self,PyObject * __pyx_v_orig_node,PyObject * __pyx_v_new_node)15324 static int __pyx_pf_6Cython_8Compiler_7Visitor_21RecursiveNodeReplacer___init__(struct __pyx_obj_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer *__pyx_v_self, PyObject *__pyx_v_orig_node, PyObject *__pyx_v_new_node) {
15325   int __pyx_r;
15326   __Pyx_RefNannyDeclarations
15327   PyObject *__pyx_t_1 = NULL;
15328   PyObject *__pyx_t_2 = NULL;
15329   PyObject *__pyx_t_3 = NULL;
15330   int __pyx_lineno = 0;
15331   const char *__pyx_filename = NULL;
15332   int __pyx_clineno = 0;
15333   __Pyx_RefNannySetupContext("__init__", 0);
15334 
15335   /* "Cython/Compiler/Visitor.py":699
15336  *     """
15337  *     def __init__(self, orig_node, new_node):
15338  *         super(RecursiveNodeReplacer, self).__init__()             # <<<<<<<<<<<<<<
15339  *         self.orig_node, self.new_node = orig_node, new_node
15340  *
15341  */
15342   __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 699, __pyx_L1_error)
15343   __Pyx_GOTREF(__pyx_t_2);
15344   __Pyx_INCREF(((PyObject *)__pyx_ptype_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer));
15345   __Pyx_GIVEREF(((PyObject *)__pyx_ptype_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer));
15346   PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_ptype_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer));
15347   __Pyx_INCREF(((PyObject *)__pyx_v_self));
15348   __Pyx_GIVEREF(((PyObject *)__pyx_v_self));
15349   PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_v_self));
15350   __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 699, __pyx_L1_error)
15351   __Pyx_GOTREF(__pyx_t_3);
15352   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
15353   __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_init); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 699, __pyx_L1_error)
15354   __Pyx_GOTREF(__pyx_t_2);
15355   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
15356   __pyx_t_3 = NULL;
15357   if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
15358     __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
15359     if (likely(__pyx_t_3)) {
15360       PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
15361       __Pyx_INCREF(__pyx_t_3);
15362       __Pyx_INCREF(function);
15363       __Pyx_DECREF_SET(__pyx_t_2, function);
15364     }
15365   }
15366   __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
15367   __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
15368   if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 699, __pyx_L1_error)
15369   __Pyx_GOTREF(__pyx_t_1);
15370   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
15371   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
15372 
15373   /* "Cython/Compiler/Visitor.py":700
15374  *     def __init__(self, orig_node, new_node):
15375  *         super(RecursiveNodeReplacer, self).__init__()
15376  *         self.orig_node, self.new_node = orig_node, new_node             # <<<<<<<<<<<<<<
15377  *
15378  *     def visit_CloneNode(self, node):
15379  */
15380   __pyx_t_1 = __pyx_v_orig_node;
15381   __Pyx_INCREF(__pyx_t_1);
15382   __pyx_t_2 = __pyx_v_new_node;
15383   __Pyx_INCREF(__pyx_t_2);
15384   __Pyx_GIVEREF(__pyx_t_1);
15385   __Pyx_GOTREF(__pyx_v_self->orig_node);
15386   __Pyx_DECREF(__pyx_v_self->orig_node);
15387   __pyx_v_self->orig_node = __pyx_t_1;
15388   __pyx_t_1 = 0;
15389   __Pyx_GIVEREF(__pyx_t_2);
15390   __Pyx_GOTREF(__pyx_v_self->new_node);
15391   __Pyx_DECREF(__pyx_v_self->new_node);
15392   __pyx_v_self->new_node = __pyx_t_2;
15393   __pyx_t_2 = 0;
15394 
15395   /* "Cython/Compiler/Visitor.py":698
15396  *     another node.
15397  *     """
15398  *     def __init__(self, orig_node, new_node):             # <<<<<<<<<<<<<<
15399  *         super(RecursiveNodeReplacer, self).__init__()
15400  *         self.orig_node, self.new_node = orig_node, new_node
15401  */
15402 
15403   /* function exit code */
15404   __pyx_r = 0;
15405   goto __pyx_L0;
15406   __pyx_L1_error:;
15407   __Pyx_XDECREF(__pyx_t_1);
15408   __Pyx_XDECREF(__pyx_t_2);
15409   __Pyx_XDECREF(__pyx_t_3);
15410   __Pyx_AddTraceback("Cython.Compiler.Visitor.RecursiveNodeReplacer.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
15411   __pyx_r = -1;
15412   __pyx_L0:;
15413   __Pyx_RefNannyFinishContext();
15414   return __pyx_r;
15415 }
15416 
15417 /* "Cython/Compiler/Visitor.py":702
15418  *         self.orig_node, self.new_node = orig_node, new_node
15419  *
15420  *     def visit_CloneNode(self, node):             # <<<<<<<<<<<<<<
15421  *         if node is self.orig_node:
15422  *             return self.new_node
15423  */
15424 
15425 /* Python wrapper */
15426 static PyObject *__pyx_pw_6Cython_8Compiler_7Visitor_21RecursiveNodeReplacer_3visit_CloneNode(PyObject *__pyx_v_self, PyObject *__pyx_v_node); /*proto*/
15427 static PyMethodDef __pyx_mdef_6Cython_8Compiler_7Visitor_21RecursiveNodeReplacer_3visit_CloneNode = {"visit_CloneNode", (PyCFunction)__pyx_pw_6Cython_8Compiler_7Visitor_21RecursiveNodeReplacer_3visit_CloneNode, METH_O, 0};
__pyx_pw_6Cython_8Compiler_7Visitor_21RecursiveNodeReplacer_3visit_CloneNode(PyObject * __pyx_v_self,PyObject * __pyx_v_node)15428 static PyObject *__pyx_pw_6Cython_8Compiler_7Visitor_21RecursiveNodeReplacer_3visit_CloneNode(PyObject *__pyx_v_self, PyObject *__pyx_v_node) {
15429   PyObject *__pyx_r = 0;
15430   __Pyx_RefNannyDeclarations
15431   __Pyx_RefNannySetupContext("visit_CloneNode (wrapper)", 0);
15432   __pyx_r = __pyx_pf_6Cython_8Compiler_7Visitor_21RecursiveNodeReplacer_2visit_CloneNode(((struct __pyx_obj_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer *)__pyx_v_self), ((PyObject *)__pyx_v_node));
15433 
15434   /* function exit code */
15435   __Pyx_RefNannyFinishContext();
15436   return __pyx_r;
15437 }
15438 
__pyx_pf_6Cython_8Compiler_7Visitor_21RecursiveNodeReplacer_2visit_CloneNode(struct __pyx_obj_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer * __pyx_v_self,PyObject * __pyx_v_node)15439 static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_21RecursiveNodeReplacer_2visit_CloneNode(struct __pyx_obj_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer *__pyx_v_self, PyObject *__pyx_v_node) {
15440   PyObject *__pyx_r = NULL;
15441   __Pyx_RefNannyDeclarations
15442   int __pyx_t_1;
15443   int __pyx_t_2;
15444   PyObject *__pyx_t_3 = NULL;
15445   int __pyx_lineno = 0;
15446   const char *__pyx_filename = NULL;
15447   int __pyx_clineno = 0;
15448   __Pyx_RefNannySetupContext("visit_CloneNode", 0);
15449 
15450   /* "Cython/Compiler/Visitor.py":703
15451  *
15452  *     def visit_CloneNode(self, node):
15453  *         if node is self.orig_node:             # <<<<<<<<<<<<<<
15454  *             return self.new_node
15455  *         if node.arg is self.orig_node:
15456  */
15457   __pyx_t_1 = (__pyx_v_node == __pyx_v_self->orig_node);
15458   __pyx_t_2 = (__pyx_t_1 != 0);
15459   if (__pyx_t_2) {
15460 
15461     /* "Cython/Compiler/Visitor.py":704
15462  *     def visit_CloneNode(self, node):
15463  *         if node is self.orig_node:
15464  *             return self.new_node             # <<<<<<<<<<<<<<
15465  *         if node.arg is self.orig_node:
15466  *             node.arg = self.new_node
15467  */
15468     __Pyx_XDECREF(__pyx_r);
15469     __Pyx_INCREF(__pyx_v_self->new_node);
15470     __pyx_r = __pyx_v_self->new_node;
15471     goto __pyx_L0;
15472 
15473     /* "Cython/Compiler/Visitor.py":703
15474  *
15475  *     def visit_CloneNode(self, node):
15476  *         if node is self.orig_node:             # <<<<<<<<<<<<<<
15477  *             return self.new_node
15478  *         if node.arg is self.orig_node:
15479  */
15480   }
15481 
15482   /* "Cython/Compiler/Visitor.py":705
15483  *         if node is self.orig_node:
15484  *             return self.new_node
15485  *         if node.arg is self.orig_node:             # <<<<<<<<<<<<<<
15486  *             node.arg = self.new_node
15487  *         return node
15488  */
15489   __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_arg); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 705, __pyx_L1_error)
15490   __Pyx_GOTREF(__pyx_t_3);
15491   __pyx_t_2 = (__pyx_t_3 == __pyx_v_self->orig_node);
15492   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
15493   __pyx_t_1 = (__pyx_t_2 != 0);
15494   if (__pyx_t_1) {
15495 
15496     /* "Cython/Compiler/Visitor.py":706
15497  *             return self.new_node
15498  *         if node.arg is self.orig_node:
15499  *             node.arg = self.new_node             # <<<<<<<<<<<<<<
15500  *         return node
15501  *
15502  */
15503     __pyx_t_3 = __pyx_v_self->new_node;
15504     __Pyx_INCREF(__pyx_t_3);
15505     if (__Pyx_PyObject_SetAttrStr(__pyx_v_node, __pyx_n_s_arg, __pyx_t_3) < 0) __PYX_ERR(0, 706, __pyx_L1_error)
15506     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
15507 
15508     /* "Cython/Compiler/Visitor.py":705
15509  *         if node is self.orig_node:
15510  *             return self.new_node
15511  *         if node.arg is self.orig_node:             # <<<<<<<<<<<<<<
15512  *             node.arg = self.new_node
15513  *         return node
15514  */
15515   }
15516 
15517   /* "Cython/Compiler/Visitor.py":707
15518  *         if node.arg is self.orig_node:
15519  *             node.arg = self.new_node
15520  *         return node             # <<<<<<<<<<<<<<
15521  *
15522  *     def visit_Node(self, node):
15523  */
15524   __Pyx_XDECREF(__pyx_r);
15525   __Pyx_INCREF(__pyx_v_node);
15526   __pyx_r = __pyx_v_node;
15527   goto __pyx_L0;
15528 
15529   /* "Cython/Compiler/Visitor.py":702
15530  *         self.orig_node, self.new_node = orig_node, new_node
15531  *
15532  *     def visit_CloneNode(self, node):             # <<<<<<<<<<<<<<
15533  *         if node is self.orig_node:
15534  *             return self.new_node
15535  */
15536 
15537   /* function exit code */
15538   __pyx_L1_error:;
15539   __Pyx_XDECREF(__pyx_t_3);
15540   __Pyx_AddTraceback("Cython.Compiler.Visitor.RecursiveNodeReplacer.visit_CloneNode", __pyx_clineno, __pyx_lineno, __pyx_filename);
15541   __pyx_r = NULL;
15542   __pyx_L0:;
15543   __Pyx_XGIVEREF(__pyx_r);
15544   __Pyx_RefNannyFinishContext();
15545   return __pyx_r;
15546 }
15547 
15548 /* "Cython/Compiler/Visitor.py":709
15549  *         return node
15550  *
15551  *     def visit_Node(self, node):             # <<<<<<<<<<<<<<
15552  *         self._process_children(node)
15553  *         if node is self.orig_node:
15554  */
15555 
15556 /* Python wrapper */
15557 static PyObject *__pyx_pw_6Cython_8Compiler_7Visitor_21RecursiveNodeReplacer_5visit_Node(PyObject *__pyx_v_self, PyObject *__pyx_v_node); /*proto*/
15558 static PyMethodDef __pyx_mdef_6Cython_8Compiler_7Visitor_21RecursiveNodeReplacer_5visit_Node = {"visit_Node", (PyCFunction)__pyx_pw_6Cython_8Compiler_7Visitor_21RecursiveNodeReplacer_5visit_Node, METH_O, 0};
__pyx_pw_6Cython_8Compiler_7Visitor_21RecursiveNodeReplacer_5visit_Node(PyObject * __pyx_v_self,PyObject * __pyx_v_node)15559 static PyObject *__pyx_pw_6Cython_8Compiler_7Visitor_21RecursiveNodeReplacer_5visit_Node(PyObject *__pyx_v_self, PyObject *__pyx_v_node) {
15560   PyObject *__pyx_r = 0;
15561   __Pyx_RefNannyDeclarations
15562   __Pyx_RefNannySetupContext("visit_Node (wrapper)", 0);
15563   __pyx_r = __pyx_pf_6Cython_8Compiler_7Visitor_21RecursiveNodeReplacer_4visit_Node(((struct __pyx_obj_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer *)__pyx_v_self), ((PyObject *)__pyx_v_node));
15564 
15565   /* function exit code */
15566   __Pyx_RefNannyFinishContext();
15567   return __pyx_r;
15568 }
15569 
__pyx_pf_6Cython_8Compiler_7Visitor_21RecursiveNodeReplacer_4visit_Node(struct __pyx_obj_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer * __pyx_v_self,PyObject * __pyx_v_node)15570 static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_21RecursiveNodeReplacer_4visit_Node(struct __pyx_obj_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer *__pyx_v_self, PyObject *__pyx_v_node) {
15571   PyObject *__pyx_r = NULL;
15572   __Pyx_RefNannyDeclarations
15573   PyObject *__pyx_t_1 = NULL;
15574   int __pyx_t_2;
15575   int __pyx_t_3;
15576   int __pyx_lineno = 0;
15577   const char *__pyx_filename = NULL;
15578   int __pyx_clineno = 0;
15579   __Pyx_RefNannySetupContext("visit_Node", 0);
15580 
15581   /* "Cython/Compiler/Visitor.py":710
15582  *
15583  *     def visit_Node(self, node):
15584  *         self._process_children(node)             # <<<<<<<<<<<<<<
15585  *         if node is self.orig_node:
15586  *             return self.new_node
15587  */
15588   __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_vtab)->__pyx_base._process_children(((struct __pyx_obj_6Cython_8Compiler_7Visitor_VisitorTransform *)__pyx_v_self), __pyx_v_node, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 710, __pyx_L1_error)
15589   __Pyx_GOTREF(__pyx_t_1);
15590   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
15591 
15592   /* "Cython/Compiler/Visitor.py":711
15593  *     def visit_Node(self, node):
15594  *         self._process_children(node)
15595  *         if node is self.orig_node:             # <<<<<<<<<<<<<<
15596  *             return self.new_node
15597  *         else:
15598  */
15599   __pyx_t_2 = (__pyx_v_node == __pyx_v_self->orig_node);
15600   __pyx_t_3 = (__pyx_t_2 != 0);
15601   if (__pyx_t_3) {
15602 
15603     /* "Cython/Compiler/Visitor.py":712
15604  *         self._process_children(node)
15605  *         if node is self.orig_node:
15606  *             return self.new_node             # <<<<<<<<<<<<<<
15607  *         else:
15608  *             return node
15609  */
15610     __Pyx_XDECREF(__pyx_r);
15611     __Pyx_INCREF(__pyx_v_self->new_node);
15612     __pyx_r = __pyx_v_self->new_node;
15613     goto __pyx_L0;
15614 
15615     /* "Cython/Compiler/Visitor.py":711
15616  *     def visit_Node(self, node):
15617  *         self._process_children(node)
15618  *         if node is self.orig_node:             # <<<<<<<<<<<<<<
15619  *             return self.new_node
15620  *         else:
15621  */
15622   }
15623 
15624   /* "Cython/Compiler/Visitor.py":714
15625  *             return self.new_node
15626  *         else:
15627  *             return node             # <<<<<<<<<<<<<<
15628  *
15629  * def recursively_replace_node(tree, old_node, new_node):
15630  */
15631   /*else*/ {
15632     __Pyx_XDECREF(__pyx_r);
15633     __Pyx_INCREF(__pyx_v_node);
15634     __pyx_r = __pyx_v_node;
15635     goto __pyx_L0;
15636   }
15637 
15638   /* "Cython/Compiler/Visitor.py":709
15639  *         return node
15640  *
15641  *     def visit_Node(self, node):             # <<<<<<<<<<<<<<
15642  *         self._process_children(node)
15643  *         if node is self.orig_node:
15644  */
15645 
15646   /* function exit code */
15647   __pyx_L1_error:;
15648   __Pyx_XDECREF(__pyx_t_1);
15649   __Pyx_AddTraceback("Cython.Compiler.Visitor.RecursiveNodeReplacer.visit_Node", __pyx_clineno, __pyx_lineno, __pyx_filename);
15650   __pyx_r = NULL;
15651   __pyx_L0:;
15652   __Pyx_XGIVEREF(__pyx_r);
15653   __Pyx_RefNannyFinishContext();
15654   return __pyx_r;
15655 }
15656 
15657 /* "Cython/Compiler/Visitor.pxd":50
15658  *
15659  * cdef class RecursiveNodeReplacer(VisitorTransform):
15660  *      cdef public orig_node             # <<<<<<<<<<<<<<
15661  *      cdef public new_node
15662  *
15663  */
15664 
15665 /* Python wrapper */
15666 static PyObject *__pyx_pw_6Cython_8Compiler_7Visitor_21RecursiveNodeReplacer_9orig_node_1__get__(PyObject *__pyx_v_self); /*proto*/
__pyx_pw_6Cython_8Compiler_7Visitor_21RecursiveNodeReplacer_9orig_node_1__get__(PyObject * __pyx_v_self)15667 static PyObject *__pyx_pw_6Cython_8Compiler_7Visitor_21RecursiveNodeReplacer_9orig_node_1__get__(PyObject *__pyx_v_self) {
15668   PyObject *__pyx_r = 0;
15669   __Pyx_RefNannyDeclarations
15670   __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
15671   __pyx_r = __pyx_pf_6Cython_8Compiler_7Visitor_21RecursiveNodeReplacer_9orig_node___get__(((struct __pyx_obj_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer *)__pyx_v_self));
15672 
15673   /* function exit code */
15674   __Pyx_RefNannyFinishContext();
15675   return __pyx_r;
15676 }
15677 
__pyx_pf_6Cython_8Compiler_7Visitor_21RecursiveNodeReplacer_9orig_node___get__(struct __pyx_obj_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer * __pyx_v_self)15678 static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_21RecursiveNodeReplacer_9orig_node___get__(struct __pyx_obj_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer *__pyx_v_self) {
15679   PyObject *__pyx_r = NULL;
15680   __Pyx_RefNannyDeclarations
15681   __Pyx_RefNannySetupContext("__get__", 0);
15682   __Pyx_XDECREF(__pyx_r);
15683   __Pyx_INCREF(__pyx_v_self->orig_node);
15684   __pyx_r = __pyx_v_self->orig_node;
15685   goto __pyx_L0;
15686 
15687   /* function exit code */
15688   __pyx_L0:;
15689   __Pyx_XGIVEREF(__pyx_r);
15690   __Pyx_RefNannyFinishContext();
15691   return __pyx_r;
15692 }
15693 
15694 /* Python wrapper */
15695 static int __pyx_pw_6Cython_8Compiler_7Visitor_21RecursiveNodeReplacer_9orig_node_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
__pyx_pw_6Cython_8Compiler_7Visitor_21RecursiveNodeReplacer_9orig_node_3__set__(PyObject * __pyx_v_self,PyObject * __pyx_v_value)15696 static int __pyx_pw_6Cython_8Compiler_7Visitor_21RecursiveNodeReplacer_9orig_node_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
15697   int __pyx_r;
15698   __Pyx_RefNannyDeclarations
15699   __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
15700   __pyx_r = __pyx_pf_6Cython_8Compiler_7Visitor_21RecursiveNodeReplacer_9orig_node_2__set__(((struct __pyx_obj_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer *)__pyx_v_self), ((PyObject *)__pyx_v_value));
15701 
15702   /* function exit code */
15703   __Pyx_RefNannyFinishContext();
15704   return __pyx_r;
15705 }
15706 
__pyx_pf_6Cython_8Compiler_7Visitor_21RecursiveNodeReplacer_9orig_node_2__set__(struct __pyx_obj_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer * __pyx_v_self,PyObject * __pyx_v_value)15707 static int __pyx_pf_6Cython_8Compiler_7Visitor_21RecursiveNodeReplacer_9orig_node_2__set__(struct __pyx_obj_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer *__pyx_v_self, PyObject *__pyx_v_value) {
15708   int __pyx_r;
15709   __Pyx_RefNannyDeclarations
15710   __Pyx_RefNannySetupContext("__set__", 0);
15711   __Pyx_INCREF(__pyx_v_value);
15712   __Pyx_GIVEREF(__pyx_v_value);
15713   __Pyx_GOTREF(__pyx_v_self->orig_node);
15714   __Pyx_DECREF(__pyx_v_self->orig_node);
15715   __pyx_v_self->orig_node = __pyx_v_value;
15716 
15717   /* function exit code */
15718   __pyx_r = 0;
15719   __Pyx_RefNannyFinishContext();
15720   return __pyx_r;
15721 }
15722 
15723 /* Python wrapper */
15724 static int __pyx_pw_6Cython_8Compiler_7Visitor_21RecursiveNodeReplacer_9orig_node_5__del__(PyObject *__pyx_v_self); /*proto*/
__pyx_pw_6Cython_8Compiler_7Visitor_21RecursiveNodeReplacer_9orig_node_5__del__(PyObject * __pyx_v_self)15725 static int __pyx_pw_6Cython_8Compiler_7Visitor_21RecursiveNodeReplacer_9orig_node_5__del__(PyObject *__pyx_v_self) {
15726   int __pyx_r;
15727   __Pyx_RefNannyDeclarations
15728   __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
15729   __pyx_r = __pyx_pf_6Cython_8Compiler_7Visitor_21RecursiveNodeReplacer_9orig_node_4__del__(((struct __pyx_obj_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer *)__pyx_v_self));
15730 
15731   /* function exit code */
15732   __Pyx_RefNannyFinishContext();
15733   return __pyx_r;
15734 }
15735 
__pyx_pf_6Cython_8Compiler_7Visitor_21RecursiveNodeReplacer_9orig_node_4__del__(struct __pyx_obj_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer * __pyx_v_self)15736 static int __pyx_pf_6Cython_8Compiler_7Visitor_21RecursiveNodeReplacer_9orig_node_4__del__(struct __pyx_obj_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer *__pyx_v_self) {
15737   int __pyx_r;
15738   __Pyx_RefNannyDeclarations
15739   __Pyx_RefNannySetupContext("__del__", 0);
15740   __Pyx_INCREF(Py_None);
15741   __Pyx_GIVEREF(Py_None);
15742   __Pyx_GOTREF(__pyx_v_self->orig_node);
15743   __Pyx_DECREF(__pyx_v_self->orig_node);
15744   __pyx_v_self->orig_node = Py_None;
15745 
15746   /* function exit code */
15747   __pyx_r = 0;
15748   __Pyx_RefNannyFinishContext();
15749   return __pyx_r;
15750 }
15751 
15752 /* "Cython/Compiler/Visitor.pxd":51
15753  * cdef class RecursiveNodeReplacer(VisitorTransform):
15754  *      cdef public orig_node
15755  *      cdef public new_node             # <<<<<<<<<<<<<<
15756  *
15757  * cdef class NodeFinder(TreeVisitor):
15758  */
15759 
15760 /* Python wrapper */
15761 static PyObject *__pyx_pw_6Cython_8Compiler_7Visitor_21RecursiveNodeReplacer_8new_node_1__get__(PyObject *__pyx_v_self); /*proto*/
__pyx_pw_6Cython_8Compiler_7Visitor_21RecursiveNodeReplacer_8new_node_1__get__(PyObject * __pyx_v_self)15762 static PyObject *__pyx_pw_6Cython_8Compiler_7Visitor_21RecursiveNodeReplacer_8new_node_1__get__(PyObject *__pyx_v_self) {
15763   PyObject *__pyx_r = 0;
15764   __Pyx_RefNannyDeclarations
15765   __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
15766   __pyx_r = __pyx_pf_6Cython_8Compiler_7Visitor_21RecursiveNodeReplacer_8new_node___get__(((struct __pyx_obj_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer *)__pyx_v_self));
15767 
15768   /* function exit code */
15769   __Pyx_RefNannyFinishContext();
15770   return __pyx_r;
15771 }
15772 
__pyx_pf_6Cython_8Compiler_7Visitor_21RecursiveNodeReplacer_8new_node___get__(struct __pyx_obj_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer * __pyx_v_self)15773 static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_21RecursiveNodeReplacer_8new_node___get__(struct __pyx_obj_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer *__pyx_v_self) {
15774   PyObject *__pyx_r = NULL;
15775   __Pyx_RefNannyDeclarations
15776   __Pyx_RefNannySetupContext("__get__", 0);
15777   __Pyx_XDECREF(__pyx_r);
15778   __Pyx_INCREF(__pyx_v_self->new_node);
15779   __pyx_r = __pyx_v_self->new_node;
15780   goto __pyx_L0;
15781 
15782   /* function exit code */
15783   __pyx_L0:;
15784   __Pyx_XGIVEREF(__pyx_r);
15785   __Pyx_RefNannyFinishContext();
15786   return __pyx_r;
15787 }
15788 
15789 /* Python wrapper */
15790 static int __pyx_pw_6Cython_8Compiler_7Visitor_21RecursiveNodeReplacer_8new_node_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
__pyx_pw_6Cython_8Compiler_7Visitor_21RecursiveNodeReplacer_8new_node_3__set__(PyObject * __pyx_v_self,PyObject * __pyx_v_value)15791 static int __pyx_pw_6Cython_8Compiler_7Visitor_21RecursiveNodeReplacer_8new_node_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
15792   int __pyx_r;
15793   __Pyx_RefNannyDeclarations
15794   __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
15795   __pyx_r = __pyx_pf_6Cython_8Compiler_7Visitor_21RecursiveNodeReplacer_8new_node_2__set__(((struct __pyx_obj_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer *)__pyx_v_self), ((PyObject *)__pyx_v_value));
15796 
15797   /* function exit code */
15798   __Pyx_RefNannyFinishContext();
15799   return __pyx_r;
15800 }
15801 
__pyx_pf_6Cython_8Compiler_7Visitor_21RecursiveNodeReplacer_8new_node_2__set__(struct __pyx_obj_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer * __pyx_v_self,PyObject * __pyx_v_value)15802 static int __pyx_pf_6Cython_8Compiler_7Visitor_21RecursiveNodeReplacer_8new_node_2__set__(struct __pyx_obj_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer *__pyx_v_self, PyObject *__pyx_v_value) {
15803   int __pyx_r;
15804   __Pyx_RefNannyDeclarations
15805   __Pyx_RefNannySetupContext("__set__", 0);
15806   __Pyx_INCREF(__pyx_v_value);
15807   __Pyx_GIVEREF(__pyx_v_value);
15808   __Pyx_GOTREF(__pyx_v_self->new_node);
15809   __Pyx_DECREF(__pyx_v_self->new_node);
15810   __pyx_v_self->new_node = __pyx_v_value;
15811 
15812   /* function exit code */
15813   __pyx_r = 0;
15814   __Pyx_RefNannyFinishContext();
15815   return __pyx_r;
15816 }
15817 
15818 /* Python wrapper */
15819 static int __pyx_pw_6Cython_8Compiler_7Visitor_21RecursiveNodeReplacer_8new_node_5__del__(PyObject *__pyx_v_self); /*proto*/
__pyx_pw_6Cython_8Compiler_7Visitor_21RecursiveNodeReplacer_8new_node_5__del__(PyObject * __pyx_v_self)15820 static int __pyx_pw_6Cython_8Compiler_7Visitor_21RecursiveNodeReplacer_8new_node_5__del__(PyObject *__pyx_v_self) {
15821   int __pyx_r;
15822   __Pyx_RefNannyDeclarations
15823   __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
15824   __pyx_r = __pyx_pf_6Cython_8Compiler_7Visitor_21RecursiveNodeReplacer_8new_node_4__del__(((struct __pyx_obj_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer *)__pyx_v_self));
15825 
15826   /* function exit code */
15827   __Pyx_RefNannyFinishContext();
15828   return __pyx_r;
15829 }
15830 
__pyx_pf_6Cython_8Compiler_7Visitor_21RecursiveNodeReplacer_8new_node_4__del__(struct __pyx_obj_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer * __pyx_v_self)15831 static int __pyx_pf_6Cython_8Compiler_7Visitor_21RecursiveNodeReplacer_8new_node_4__del__(struct __pyx_obj_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer *__pyx_v_self) {
15832   int __pyx_r;
15833   __Pyx_RefNannyDeclarations
15834   __Pyx_RefNannySetupContext("__del__", 0);
15835   __Pyx_INCREF(Py_None);
15836   __Pyx_GIVEREF(Py_None);
15837   __Pyx_GOTREF(__pyx_v_self->new_node);
15838   __Pyx_DECREF(__pyx_v_self->new_node);
15839   __pyx_v_self->new_node = Py_None;
15840 
15841   /* function exit code */
15842   __pyx_r = 0;
15843   __Pyx_RefNannyFinishContext();
15844   return __pyx_r;
15845 }
15846 
15847 /* "Cython/Compiler/Visitor.py":716
15848  *             return node
15849  *
15850  * def recursively_replace_node(tree, old_node, new_node):             # <<<<<<<<<<<<<<
15851  *     replace_in = RecursiveNodeReplacer(old_node, new_node)
15852  *     replace_in(tree)
15853  */
15854 
15855 /* Python wrapper */
15856 static PyObject *__pyx_pw_6Cython_8Compiler_7Visitor_1recursively_replace_node(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
15857 static PyMethodDef __pyx_mdef_6Cython_8Compiler_7Visitor_1recursively_replace_node = {"recursively_replace_node", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6Cython_8Compiler_7Visitor_1recursively_replace_node, METH_VARARGS|METH_KEYWORDS, 0};
__pyx_pw_6Cython_8Compiler_7Visitor_1recursively_replace_node(PyObject * __pyx_self,PyObject * __pyx_args,PyObject * __pyx_kwds)15858 static PyObject *__pyx_pw_6Cython_8Compiler_7Visitor_1recursively_replace_node(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
15859   PyObject *__pyx_v_tree = 0;
15860   PyObject *__pyx_v_old_node = 0;
15861   PyObject *__pyx_v_new_node = 0;
15862   int __pyx_lineno = 0;
15863   const char *__pyx_filename = NULL;
15864   int __pyx_clineno = 0;
15865   PyObject *__pyx_r = 0;
15866   __Pyx_RefNannyDeclarations
15867   __Pyx_RefNannySetupContext("recursively_replace_node (wrapper)", 0);
15868   {
15869     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_tree,&__pyx_n_s_old_node,&__pyx_n_s_new_node,0};
15870     PyObject* values[3] = {0,0,0};
15871     if (unlikely(__pyx_kwds)) {
15872       Py_ssize_t kw_args;
15873       const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
15874       switch (pos_args) {
15875         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
15876         CYTHON_FALLTHROUGH;
15877         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
15878         CYTHON_FALLTHROUGH;
15879         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
15880         CYTHON_FALLTHROUGH;
15881         case  0: break;
15882         default: goto __pyx_L5_argtuple_error;
15883       }
15884       kw_args = PyDict_Size(__pyx_kwds);
15885       switch (pos_args) {
15886         case  0:
15887         if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tree)) != 0)) kw_args--;
15888         else goto __pyx_L5_argtuple_error;
15889         CYTHON_FALLTHROUGH;
15890         case  1:
15891         if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_old_node)) != 0)) kw_args--;
15892         else {
15893           __Pyx_RaiseArgtupleInvalid("recursively_replace_node", 1, 3, 3, 1); __PYX_ERR(0, 716, __pyx_L3_error)
15894         }
15895         CYTHON_FALLTHROUGH;
15896         case  2:
15897         if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_new_node)) != 0)) kw_args--;
15898         else {
15899           __Pyx_RaiseArgtupleInvalid("recursively_replace_node", 1, 3, 3, 2); __PYX_ERR(0, 716, __pyx_L3_error)
15900         }
15901       }
15902       if (unlikely(kw_args > 0)) {
15903         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "recursively_replace_node") < 0)) __PYX_ERR(0, 716, __pyx_L3_error)
15904       }
15905     } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
15906       goto __pyx_L5_argtuple_error;
15907     } else {
15908       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
15909       values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
15910       values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
15911     }
15912     __pyx_v_tree = values[0];
15913     __pyx_v_old_node = values[1];
15914     __pyx_v_new_node = values[2];
15915   }
15916   goto __pyx_L4_argument_unpacking_done;
15917   __pyx_L5_argtuple_error:;
15918   __Pyx_RaiseArgtupleInvalid("recursively_replace_node", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 716, __pyx_L3_error)
15919   __pyx_L3_error:;
15920   __Pyx_AddTraceback("Cython.Compiler.Visitor.recursively_replace_node", __pyx_clineno, __pyx_lineno, __pyx_filename);
15921   __Pyx_RefNannyFinishContext();
15922   return NULL;
15923   __pyx_L4_argument_unpacking_done:;
15924   __pyx_r = __pyx_pf_6Cython_8Compiler_7Visitor_recursively_replace_node(__pyx_self, __pyx_v_tree, __pyx_v_old_node, __pyx_v_new_node);
15925 
15926   /* function exit code */
15927   __Pyx_RefNannyFinishContext();
15928   return __pyx_r;
15929 }
15930 
__pyx_pf_6Cython_8Compiler_7Visitor_recursively_replace_node(CYTHON_UNUSED PyObject * __pyx_self,PyObject * __pyx_v_tree,PyObject * __pyx_v_old_node,PyObject * __pyx_v_new_node)15931 static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_recursively_replace_node(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_tree, PyObject *__pyx_v_old_node, PyObject *__pyx_v_new_node) {
15932   struct __pyx_obj_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer *__pyx_v_replace_in = NULL;
15933   PyObject *__pyx_r = NULL;
15934   __Pyx_RefNannyDeclarations
15935   PyObject *__pyx_t_1 = NULL;
15936   PyObject *__pyx_t_2 = NULL;
15937   PyObject *__pyx_t_3 = NULL;
15938   int __pyx_lineno = 0;
15939   const char *__pyx_filename = NULL;
15940   int __pyx_clineno = 0;
15941   __Pyx_RefNannySetupContext("recursively_replace_node", 0);
15942 
15943   /* "Cython/Compiler/Visitor.py":717
15944  *
15945  * def recursively_replace_node(tree, old_node, new_node):
15946  *     replace_in = RecursiveNodeReplacer(old_node, new_node)             # <<<<<<<<<<<<<<
15947  *     replace_in(tree)
15948  *
15949  */
15950   __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 717, __pyx_L1_error)
15951   __Pyx_GOTREF(__pyx_t_1);
15952   __Pyx_INCREF(__pyx_v_old_node);
15953   __Pyx_GIVEREF(__pyx_v_old_node);
15954   PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_old_node);
15955   __Pyx_INCREF(__pyx_v_new_node);
15956   __Pyx_GIVEREF(__pyx_v_new_node);
15957   PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_new_node);
15958   __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 717, __pyx_L1_error)
15959   __Pyx_GOTREF(__pyx_t_2);
15960   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
15961   __pyx_v_replace_in = ((struct __pyx_obj_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer *)__pyx_t_2);
15962   __pyx_t_2 = 0;
15963 
15964   /* "Cython/Compiler/Visitor.py":718
15965  * def recursively_replace_node(tree, old_node, new_node):
15966  *     replace_in = RecursiveNodeReplacer(old_node, new_node)
15967  *     replace_in(tree)             # <<<<<<<<<<<<<<
15968  *
15969  *
15970  */
15971   __Pyx_INCREF(((PyObject *)__pyx_v_replace_in));
15972   __pyx_t_1 = ((PyObject *)__pyx_v_replace_in); __pyx_t_3 = NULL;
15973   if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) {
15974     __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_1);
15975     if (likely(__pyx_t_3)) {
15976       PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
15977       __Pyx_INCREF(__pyx_t_3);
15978       __Pyx_INCREF(function);
15979       __Pyx_DECREF_SET(__pyx_t_1, function);
15980     }
15981   }
15982   __pyx_t_2 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_3, __pyx_v_tree) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_v_tree);
15983   __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
15984   if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 718, __pyx_L1_error)
15985   __Pyx_GOTREF(__pyx_t_2);
15986   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
15987   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
15988 
15989   /* "Cython/Compiler/Visitor.py":716
15990  *             return node
15991  *
15992  * def recursively_replace_node(tree, old_node, new_node):             # <<<<<<<<<<<<<<
15993  *     replace_in = RecursiveNodeReplacer(old_node, new_node)
15994  *     replace_in(tree)
15995  */
15996 
15997   /* function exit code */
15998   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
15999   goto __pyx_L0;
16000   __pyx_L1_error:;
16001   __Pyx_XDECREF(__pyx_t_1);
16002   __Pyx_XDECREF(__pyx_t_2);
16003   __Pyx_XDECREF(__pyx_t_3);
16004   __Pyx_AddTraceback("Cython.Compiler.Visitor.recursively_replace_node", __pyx_clineno, __pyx_lineno, __pyx_filename);
16005   __pyx_r = NULL;
16006   __pyx_L0:;
16007   __Pyx_XDECREF((PyObject *)__pyx_v_replace_in);
16008   __Pyx_XGIVEREF(__pyx_r);
16009   __Pyx_RefNannyFinishContext();
16010   return __pyx_r;
16011 }
16012 
16013 /* "Cython/Compiler/Visitor.py":725
16014  *     Find out if a node appears in a subtree.
16015  *     """
16016  *     def __init__(self, node):             # <<<<<<<<<<<<<<
16017  *         super(NodeFinder, self).__init__()
16018  *         self.node = node
16019  */
16020 
16021 /* Python wrapper */
16022 static int __pyx_pw_6Cython_8Compiler_7Visitor_10NodeFinder_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
__pyx_pw_6Cython_8Compiler_7Visitor_10NodeFinder_1__init__(PyObject * __pyx_v_self,PyObject * __pyx_args,PyObject * __pyx_kwds)16023 static int __pyx_pw_6Cython_8Compiler_7Visitor_10NodeFinder_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
16024   PyObject *__pyx_v_node = 0;
16025   int __pyx_lineno = 0;
16026   const char *__pyx_filename = NULL;
16027   int __pyx_clineno = 0;
16028   int __pyx_r;
16029   __Pyx_RefNannyDeclarations
16030   __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
16031   {
16032     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_node,0};
16033     PyObject* values[1] = {0};
16034     if (unlikely(__pyx_kwds)) {
16035       Py_ssize_t kw_args;
16036       const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
16037       switch (pos_args) {
16038         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
16039         CYTHON_FALLTHROUGH;
16040         case  0: break;
16041         default: goto __pyx_L5_argtuple_error;
16042       }
16043       kw_args = PyDict_Size(__pyx_kwds);
16044       switch (pos_args) {
16045         case  0:
16046         if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_node)) != 0)) kw_args--;
16047         else goto __pyx_L5_argtuple_error;
16048       }
16049       if (unlikely(kw_args > 0)) {
16050         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 725, __pyx_L3_error)
16051       }
16052     } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
16053       goto __pyx_L5_argtuple_error;
16054     } else {
16055       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
16056     }
16057     __pyx_v_node = values[0];
16058   }
16059   goto __pyx_L4_argument_unpacking_done;
16060   __pyx_L5_argtuple_error:;
16061   __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 725, __pyx_L3_error)
16062   __pyx_L3_error:;
16063   __Pyx_AddTraceback("Cython.Compiler.Visitor.NodeFinder.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
16064   __Pyx_RefNannyFinishContext();
16065   return -1;
16066   __pyx_L4_argument_unpacking_done:;
16067   __pyx_r = __pyx_pf_6Cython_8Compiler_7Visitor_10NodeFinder___init__(((struct __pyx_obj_6Cython_8Compiler_7Visitor_NodeFinder *)__pyx_v_self), __pyx_v_node);
16068 
16069   /* function exit code */
16070   __Pyx_RefNannyFinishContext();
16071   return __pyx_r;
16072 }
16073 
__pyx_pf_6Cython_8Compiler_7Visitor_10NodeFinder___init__(struct __pyx_obj_6Cython_8Compiler_7Visitor_NodeFinder * __pyx_v_self,PyObject * __pyx_v_node)16074 static int __pyx_pf_6Cython_8Compiler_7Visitor_10NodeFinder___init__(struct __pyx_obj_6Cython_8Compiler_7Visitor_NodeFinder *__pyx_v_self, PyObject *__pyx_v_node) {
16075   int __pyx_r;
16076   __Pyx_RefNannyDeclarations
16077   PyObject *__pyx_t_1 = NULL;
16078   PyObject *__pyx_t_2 = NULL;
16079   PyObject *__pyx_t_3 = NULL;
16080   int __pyx_lineno = 0;
16081   const char *__pyx_filename = NULL;
16082   int __pyx_clineno = 0;
16083   __Pyx_RefNannySetupContext("__init__", 0);
16084 
16085   /* "Cython/Compiler/Visitor.py":726
16086  *     """
16087  *     def __init__(self, node):
16088  *         super(NodeFinder, self).__init__()             # <<<<<<<<<<<<<<
16089  *         self.node = node
16090  *         self.found = False
16091  */
16092   __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 726, __pyx_L1_error)
16093   __Pyx_GOTREF(__pyx_t_2);
16094   __Pyx_INCREF(((PyObject *)__pyx_ptype_6Cython_8Compiler_7Visitor_NodeFinder));
16095   __Pyx_GIVEREF(((PyObject *)__pyx_ptype_6Cython_8Compiler_7Visitor_NodeFinder));
16096   PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_ptype_6Cython_8Compiler_7Visitor_NodeFinder));
16097   __Pyx_INCREF(((PyObject *)__pyx_v_self));
16098   __Pyx_GIVEREF(((PyObject *)__pyx_v_self));
16099   PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_v_self));
16100   __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 726, __pyx_L1_error)
16101   __Pyx_GOTREF(__pyx_t_3);
16102   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
16103   __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_init); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 726, __pyx_L1_error)
16104   __Pyx_GOTREF(__pyx_t_2);
16105   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
16106   __pyx_t_3 = NULL;
16107   if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
16108     __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
16109     if (likely(__pyx_t_3)) {
16110       PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
16111       __Pyx_INCREF(__pyx_t_3);
16112       __Pyx_INCREF(function);
16113       __Pyx_DECREF_SET(__pyx_t_2, function);
16114     }
16115   }
16116   __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
16117   __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
16118   if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 726, __pyx_L1_error)
16119   __Pyx_GOTREF(__pyx_t_1);
16120   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
16121   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
16122 
16123   /* "Cython/Compiler/Visitor.py":727
16124  *     def __init__(self, node):
16125  *         super(NodeFinder, self).__init__()
16126  *         self.node = node             # <<<<<<<<<<<<<<
16127  *         self.found = False
16128  *
16129  */
16130   __Pyx_INCREF(__pyx_v_node);
16131   __Pyx_GIVEREF(__pyx_v_node);
16132   __Pyx_GOTREF(__pyx_v_self->node);
16133   __Pyx_DECREF(__pyx_v_self->node);
16134   __pyx_v_self->node = __pyx_v_node;
16135 
16136   /* "Cython/Compiler/Visitor.py":728
16137  *         super(NodeFinder, self).__init__()
16138  *         self.node = node
16139  *         self.found = False             # <<<<<<<<<<<<<<
16140  *
16141  *     def visit_Node(self, node):
16142  */
16143   __pyx_v_self->found = 0;
16144 
16145   /* "Cython/Compiler/Visitor.py":725
16146  *     Find out if a node appears in a subtree.
16147  *     """
16148  *     def __init__(self, node):             # <<<<<<<<<<<<<<
16149  *         super(NodeFinder, self).__init__()
16150  *         self.node = node
16151  */
16152 
16153   /* function exit code */
16154   __pyx_r = 0;
16155   goto __pyx_L0;
16156   __pyx_L1_error:;
16157   __Pyx_XDECREF(__pyx_t_1);
16158   __Pyx_XDECREF(__pyx_t_2);
16159   __Pyx_XDECREF(__pyx_t_3);
16160   __Pyx_AddTraceback("Cython.Compiler.Visitor.NodeFinder.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
16161   __pyx_r = -1;
16162   __pyx_L0:;
16163   __Pyx_RefNannyFinishContext();
16164   return __pyx_r;
16165 }
16166 
16167 /* "Cython/Compiler/Visitor.py":730
16168  *         self.found = False
16169  *
16170  *     def visit_Node(self, node):             # <<<<<<<<<<<<<<
16171  *         if self.found:
16172  *             pass  # short-circuit
16173  */
16174 
16175 /* Python wrapper */
16176 static PyObject *__pyx_pw_6Cython_8Compiler_7Visitor_10NodeFinder_3visit_Node(PyObject *__pyx_v_self, PyObject *__pyx_v_node); /*proto*/
16177 static PyMethodDef __pyx_mdef_6Cython_8Compiler_7Visitor_10NodeFinder_3visit_Node = {"visit_Node", (PyCFunction)__pyx_pw_6Cython_8Compiler_7Visitor_10NodeFinder_3visit_Node, METH_O, 0};
__pyx_pw_6Cython_8Compiler_7Visitor_10NodeFinder_3visit_Node(PyObject * __pyx_v_self,PyObject * __pyx_v_node)16178 static PyObject *__pyx_pw_6Cython_8Compiler_7Visitor_10NodeFinder_3visit_Node(PyObject *__pyx_v_self, PyObject *__pyx_v_node) {
16179   PyObject *__pyx_r = 0;
16180   __Pyx_RefNannyDeclarations
16181   __Pyx_RefNannySetupContext("visit_Node (wrapper)", 0);
16182   __pyx_r = __pyx_pf_6Cython_8Compiler_7Visitor_10NodeFinder_2visit_Node(((struct __pyx_obj_6Cython_8Compiler_7Visitor_NodeFinder *)__pyx_v_self), ((PyObject *)__pyx_v_node));
16183 
16184   /* function exit code */
16185   __Pyx_RefNannyFinishContext();
16186   return __pyx_r;
16187 }
16188 
__pyx_pf_6Cython_8Compiler_7Visitor_10NodeFinder_2visit_Node(struct __pyx_obj_6Cython_8Compiler_7Visitor_NodeFinder * __pyx_v_self,PyObject * __pyx_v_node)16189 static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_10NodeFinder_2visit_Node(struct __pyx_obj_6Cython_8Compiler_7Visitor_NodeFinder *__pyx_v_self, PyObject *__pyx_v_node) {
16190   PyObject *__pyx_r = NULL;
16191   __Pyx_RefNannyDeclarations
16192   int __pyx_t_1;
16193   int __pyx_t_2;
16194   PyObject *__pyx_t_3 = NULL;
16195   int __pyx_lineno = 0;
16196   const char *__pyx_filename = NULL;
16197   int __pyx_clineno = 0;
16198   __Pyx_RefNannySetupContext("visit_Node", 0);
16199 
16200   /* "Cython/Compiler/Visitor.py":731
16201  *
16202  *     def visit_Node(self, node):
16203  *         if self.found:             # <<<<<<<<<<<<<<
16204  *             pass  # short-circuit
16205  *         elif node is self.node:
16206  */
16207   __pyx_t_1 = (__pyx_v_self->found != 0);
16208   if (__pyx_t_1) {
16209     goto __pyx_L3;
16210   }
16211 
16212   /* "Cython/Compiler/Visitor.py":733
16213  *         if self.found:
16214  *             pass  # short-circuit
16215  *         elif node is self.node:             # <<<<<<<<<<<<<<
16216  *             self.found = True
16217  *         else:
16218  */
16219   __pyx_t_1 = (__pyx_v_node == __pyx_v_self->node);
16220   __pyx_t_2 = (__pyx_t_1 != 0);
16221   if (__pyx_t_2) {
16222 
16223     /* "Cython/Compiler/Visitor.py":734
16224  *             pass  # short-circuit
16225  *         elif node is self.node:
16226  *             self.found = True             # <<<<<<<<<<<<<<
16227  *         else:
16228  *             self._visitchildren(node, None)
16229  */
16230     __pyx_v_self->found = 1;
16231 
16232     /* "Cython/Compiler/Visitor.py":733
16233  *         if self.found:
16234  *             pass  # short-circuit
16235  *         elif node is self.node:             # <<<<<<<<<<<<<<
16236  *             self.found = True
16237  *         else:
16238  */
16239     goto __pyx_L3;
16240   }
16241 
16242   /* "Cython/Compiler/Visitor.py":736
16243  *             self.found = True
16244  *         else:
16245  *             self._visitchildren(node, None)             # <<<<<<<<<<<<<<
16246  *
16247  * def tree_contains(tree, node):
16248  */
16249   /*else*/ {
16250     __pyx_t_3 = ((struct __pyx_vtabstruct_6Cython_8Compiler_7Visitor_NodeFinder *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base._visitchildren(((struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor *)__pyx_v_self), __pyx_v_node, Py_None); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 736, __pyx_L1_error)
16251     __Pyx_GOTREF(__pyx_t_3);
16252     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
16253   }
16254   __pyx_L3:;
16255 
16256   /* "Cython/Compiler/Visitor.py":730
16257  *         self.found = False
16258  *
16259  *     def visit_Node(self, node):             # <<<<<<<<<<<<<<
16260  *         if self.found:
16261  *             pass  # short-circuit
16262  */
16263 
16264   /* function exit code */
16265   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
16266   goto __pyx_L0;
16267   __pyx_L1_error:;
16268   __Pyx_XDECREF(__pyx_t_3);
16269   __Pyx_AddTraceback("Cython.Compiler.Visitor.NodeFinder.visit_Node", __pyx_clineno, __pyx_lineno, __pyx_filename);
16270   __pyx_r = NULL;
16271   __pyx_L0:;
16272   __Pyx_XGIVEREF(__pyx_r);
16273   __Pyx_RefNannyFinishContext();
16274   return __pyx_r;
16275 }
16276 
16277 /* "Cython/Compiler/Visitor.pxd":55
16278  * cdef class NodeFinder(TreeVisitor):
16279  *     cdef node
16280  *     cdef public bint found             # <<<<<<<<<<<<<<
16281  */
16282 
16283 /* Python wrapper */
16284 static PyObject *__pyx_pw_6Cython_8Compiler_7Visitor_10NodeFinder_5found_1__get__(PyObject *__pyx_v_self); /*proto*/
__pyx_pw_6Cython_8Compiler_7Visitor_10NodeFinder_5found_1__get__(PyObject * __pyx_v_self)16285 static PyObject *__pyx_pw_6Cython_8Compiler_7Visitor_10NodeFinder_5found_1__get__(PyObject *__pyx_v_self) {
16286   PyObject *__pyx_r = 0;
16287   __Pyx_RefNannyDeclarations
16288   __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
16289   __pyx_r = __pyx_pf_6Cython_8Compiler_7Visitor_10NodeFinder_5found___get__(((struct __pyx_obj_6Cython_8Compiler_7Visitor_NodeFinder *)__pyx_v_self));
16290 
16291   /* function exit code */
16292   __Pyx_RefNannyFinishContext();
16293   return __pyx_r;
16294 }
16295 
__pyx_pf_6Cython_8Compiler_7Visitor_10NodeFinder_5found___get__(struct __pyx_obj_6Cython_8Compiler_7Visitor_NodeFinder * __pyx_v_self)16296 static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_10NodeFinder_5found___get__(struct __pyx_obj_6Cython_8Compiler_7Visitor_NodeFinder *__pyx_v_self) {
16297   PyObject *__pyx_r = NULL;
16298   __Pyx_RefNannyDeclarations
16299   PyObject *__pyx_t_1 = NULL;
16300   int __pyx_lineno = 0;
16301   const char *__pyx_filename = NULL;
16302   int __pyx_clineno = 0;
16303   __Pyx_RefNannySetupContext("__get__", 0);
16304   __Pyx_XDECREF(__pyx_r);
16305   __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_self->found); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 55, __pyx_L1_error)
16306   __Pyx_GOTREF(__pyx_t_1);
16307   __pyx_r = __pyx_t_1;
16308   __pyx_t_1 = 0;
16309   goto __pyx_L0;
16310 
16311   /* function exit code */
16312   __pyx_L1_error:;
16313   __Pyx_XDECREF(__pyx_t_1);
16314   __Pyx_AddTraceback("Cython.Compiler.Visitor.NodeFinder.found.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
16315   __pyx_r = NULL;
16316   __pyx_L0:;
16317   __Pyx_XGIVEREF(__pyx_r);
16318   __Pyx_RefNannyFinishContext();
16319   return __pyx_r;
16320 }
16321 
16322 /* Python wrapper */
16323 static int __pyx_pw_6Cython_8Compiler_7Visitor_10NodeFinder_5found_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
__pyx_pw_6Cython_8Compiler_7Visitor_10NodeFinder_5found_3__set__(PyObject * __pyx_v_self,PyObject * __pyx_v_value)16324 static int __pyx_pw_6Cython_8Compiler_7Visitor_10NodeFinder_5found_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
16325   int __pyx_r;
16326   __Pyx_RefNannyDeclarations
16327   __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
16328   __pyx_r = __pyx_pf_6Cython_8Compiler_7Visitor_10NodeFinder_5found_2__set__(((struct __pyx_obj_6Cython_8Compiler_7Visitor_NodeFinder *)__pyx_v_self), ((PyObject *)__pyx_v_value));
16329 
16330   /* function exit code */
16331   __Pyx_RefNannyFinishContext();
16332   return __pyx_r;
16333 }
16334 
__pyx_pf_6Cython_8Compiler_7Visitor_10NodeFinder_5found_2__set__(struct __pyx_obj_6Cython_8Compiler_7Visitor_NodeFinder * __pyx_v_self,PyObject * __pyx_v_value)16335 static int __pyx_pf_6Cython_8Compiler_7Visitor_10NodeFinder_5found_2__set__(struct __pyx_obj_6Cython_8Compiler_7Visitor_NodeFinder *__pyx_v_self, PyObject *__pyx_v_value) {
16336   int __pyx_r;
16337   __Pyx_RefNannyDeclarations
16338   int __pyx_t_1;
16339   int __pyx_lineno = 0;
16340   const char *__pyx_filename = NULL;
16341   int __pyx_clineno = 0;
16342   __Pyx_RefNannySetupContext("__set__", 0);
16343   __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_value); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 55, __pyx_L1_error)
16344   __pyx_v_self->found = __pyx_t_1;
16345 
16346   /* function exit code */
16347   __pyx_r = 0;
16348   goto __pyx_L0;
16349   __pyx_L1_error:;
16350   __Pyx_AddTraceback("Cython.Compiler.Visitor.NodeFinder.found.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
16351   __pyx_r = -1;
16352   __pyx_L0:;
16353   __Pyx_RefNannyFinishContext();
16354   return __pyx_r;
16355 }
16356 
16357 /* "Cython/Compiler/Visitor.py":738
16358  *             self._visitchildren(node, None)
16359  *
16360  * def tree_contains(tree, node):             # <<<<<<<<<<<<<<
16361  *     finder = NodeFinder(node)
16362  *     finder.visit(tree)
16363  */
16364 
16365 /* Python wrapper */
16366 static PyObject *__pyx_pw_6Cython_8Compiler_7Visitor_3tree_contains(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
16367 static PyMethodDef __pyx_mdef_6Cython_8Compiler_7Visitor_3tree_contains = {"tree_contains", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6Cython_8Compiler_7Visitor_3tree_contains, METH_VARARGS|METH_KEYWORDS, 0};
__pyx_pw_6Cython_8Compiler_7Visitor_3tree_contains(PyObject * __pyx_self,PyObject * __pyx_args,PyObject * __pyx_kwds)16368 static PyObject *__pyx_pw_6Cython_8Compiler_7Visitor_3tree_contains(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
16369   PyObject *__pyx_v_tree = 0;
16370   PyObject *__pyx_v_node = 0;
16371   int __pyx_lineno = 0;
16372   const char *__pyx_filename = NULL;
16373   int __pyx_clineno = 0;
16374   PyObject *__pyx_r = 0;
16375   __Pyx_RefNannyDeclarations
16376   __Pyx_RefNannySetupContext("tree_contains (wrapper)", 0);
16377   {
16378     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_tree,&__pyx_n_s_node,0};
16379     PyObject* values[2] = {0,0};
16380     if (unlikely(__pyx_kwds)) {
16381       Py_ssize_t kw_args;
16382       const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
16383       switch (pos_args) {
16384         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
16385         CYTHON_FALLTHROUGH;
16386         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
16387         CYTHON_FALLTHROUGH;
16388         case  0: break;
16389         default: goto __pyx_L5_argtuple_error;
16390       }
16391       kw_args = PyDict_Size(__pyx_kwds);
16392       switch (pos_args) {
16393         case  0:
16394         if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tree)) != 0)) kw_args--;
16395         else goto __pyx_L5_argtuple_error;
16396         CYTHON_FALLTHROUGH;
16397         case  1:
16398         if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_node)) != 0)) kw_args--;
16399         else {
16400           __Pyx_RaiseArgtupleInvalid("tree_contains", 1, 2, 2, 1); __PYX_ERR(0, 738, __pyx_L3_error)
16401         }
16402       }
16403       if (unlikely(kw_args > 0)) {
16404         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "tree_contains") < 0)) __PYX_ERR(0, 738, __pyx_L3_error)
16405       }
16406     } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
16407       goto __pyx_L5_argtuple_error;
16408     } else {
16409       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
16410       values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
16411     }
16412     __pyx_v_tree = values[0];
16413     __pyx_v_node = values[1];
16414   }
16415   goto __pyx_L4_argument_unpacking_done;
16416   __pyx_L5_argtuple_error:;
16417   __Pyx_RaiseArgtupleInvalid("tree_contains", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 738, __pyx_L3_error)
16418   __pyx_L3_error:;
16419   __Pyx_AddTraceback("Cython.Compiler.Visitor.tree_contains", __pyx_clineno, __pyx_lineno, __pyx_filename);
16420   __Pyx_RefNannyFinishContext();
16421   return NULL;
16422   __pyx_L4_argument_unpacking_done:;
16423   __pyx_r = __pyx_pf_6Cython_8Compiler_7Visitor_2tree_contains(__pyx_self, __pyx_v_tree, __pyx_v_node);
16424 
16425   /* function exit code */
16426   __Pyx_RefNannyFinishContext();
16427   return __pyx_r;
16428 }
16429 
__pyx_pf_6Cython_8Compiler_7Visitor_2tree_contains(CYTHON_UNUSED PyObject * __pyx_self,PyObject * __pyx_v_tree,PyObject * __pyx_v_node)16430 static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_2tree_contains(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_tree, PyObject *__pyx_v_node) {
16431   struct __pyx_obj_6Cython_8Compiler_7Visitor_NodeFinder *__pyx_v_finder = NULL;
16432   PyObject *__pyx_r = NULL;
16433   __Pyx_RefNannyDeclarations
16434   PyObject *__pyx_t_1 = NULL;
16435   int __pyx_lineno = 0;
16436   const char *__pyx_filename = NULL;
16437   int __pyx_clineno = 0;
16438   __Pyx_RefNannySetupContext("tree_contains", 0);
16439 
16440   /* "Cython/Compiler/Visitor.py":739
16441  *
16442  * def tree_contains(tree, node):
16443  *     finder = NodeFinder(node)             # <<<<<<<<<<<<<<
16444  *     finder.visit(tree)
16445  *     return finder.found
16446  */
16447   __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_6Cython_8Compiler_7Visitor_NodeFinder), __pyx_v_node); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 739, __pyx_L1_error)
16448   __Pyx_GOTREF(__pyx_t_1);
16449   __pyx_v_finder = ((struct __pyx_obj_6Cython_8Compiler_7Visitor_NodeFinder *)__pyx_t_1);
16450   __pyx_t_1 = 0;
16451 
16452   /* "Cython/Compiler/Visitor.py":740
16453  * def tree_contains(tree, node):
16454  *     finder = NodeFinder(node)
16455  *     finder.visit(tree)             # <<<<<<<<<<<<<<
16456  *     return finder.found
16457  *
16458  */
16459   __pyx_t_1 = ((struct __pyx_vtabstruct_6Cython_8Compiler_7Visitor_NodeFinder *)__pyx_v_finder->__pyx_base.__pyx_vtab)->__pyx_base.visit(((struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor *)__pyx_v_finder), __pyx_v_tree, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 740, __pyx_L1_error)
16460   __Pyx_GOTREF(__pyx_t_1);
16461   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
16462 
16463   /* "Cython/Compiler/Visitor.py":741
16464  *     finder = NodeFinder(node)
16465  *     finder.visit(tree)
16466  *     return finder.found             # <<<<<<<<<<<<<<
16467  *
16468  *
16469  */
16470   __Pyx_XDECREF(__pyx_r);
16471   __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_finder->found); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 741, __pyx_L1_error)
16472   __Pyx_GOTREF(__pyx_t_1);
16473   __pyx_r = __pyx_t_1;
16474   __pyx_t_1 = 0;
16475   goto __pyx_L0;
16476 
16477   /* "Cython/Compiler/Visitor.py":738
16478  *             self._visitchildren(node, None)
16479  *
16480  * def tree_contains(tree, node):             # <<<<<<<<<<<<<<
16481  *     finder = NodeFinder(node)
16482  *     finder.visit(tree)
16483  */
16484 
16485   /* function exit code */
16486   __pyx_L1_error:;
16487   __Pyx_XDECREF(__pyx_t_1);
16488   __Pyx_AddTraceback("Cython.Compiler.Visitor.tree_contains", __pyx_clineno, __pyx_lineno, __pyx_filename);
16489   __pyx_r = NULL;
16490   __pyx_L0:;
16491   __Pyx_XDECREF((PyObject *)__pyx_v_finder);
16492   __Pyx_XGIVEREF(__pyx_r);
16493   __Pyx_RefNannyFinishContext();
16494   return __pyx_r;
16495 }
16496 
16497 /* "Cython/Compiler/Visitor.py":745
16498  *
16499  * # Utils
16500  * def replace_node(ptr, value):             # <<<<<<<<<<<<<<
16501  *     """Replaces a node. ptr is of the form used on the access path stack
16502  *     (parent, attrname, listidx|None)
16503  */
16504 
16505 /* Python wrapper */
16506 static PyObject *__pyx_pw_6Cython_8Compiler_7Visitor_5replace_node(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
16507 static char __pyx_doc_6Cython_8Compiler_7Visitor_4replace_node[] = "Replaces a node. ptr is of the form used on the access path stack\n    (parent, attrname, listidx|None)\n    ";
16508 static PyMethodDef __pyx_mdef_6Cython_8Compiler_7Visitor_5replace_node = {"replace_node", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6Cython_8Compiler_7Visitor_5replace_node, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6Cython_8Compiler_7Visitor_4replace_node};
__pyx_pw_6Cython_8Compiler_7Visitor_5replace_node(PyObject * __pyx_self,PyObject * __pyx_args,PyObject * __pyx_kwds)16509 static PyObject *__pyx_pw_6Cython_8Compiler_7Visitor_5replace_node(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
16510   PyObject *__pyx_v_ptr = 0;
16511   PyObject *__pyx_v_value = 0;
16512   int __pyx_lineno = 0;
16513   const char *__pyx_filename = NULL;
16514   int __pyx_clineno = 0;
16515   PyObject *__pyx_r = 0;
16516   __Pyx_RefNannyDeclarations
16517   __Pyx_RefNannySetupContext("replace_node (wrapper)", 0);
16518   {
16519     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptr,&__pyx_n_s_value,0};
16520     PyObject* values[2] = {0,0};
16521     if (unlikely(__pyx_kwds)) {
16522       Py_ssize_t kw_args;
16523       const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
16524       switch (pos_args) {
16525         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
16526         CYTHON_FALLTHROUGH;
16527         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
16528         CYTHON_FALLTHROUGH;
16529         case  0: break;
16530         default: goto __pyx_L5_argtuple_error;
16531       }
16532       kw_args = PyDict_Size(__pyx_kwds);
16533       switch (pos_args) {
16534         case  0:
16535         if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptr)) != 0)) kw_args--;
16536         else goto __pyx_L5_argtuple_error;
16537         CYTHON_FALLTHROUGH;
16538         case  1:
16539         if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_value)) != 0)) kw_args--;
16540         else {
16541           __Pyx_RaiseArgtupleInvalid("replace_node", 1, 2, 2, 1); __PYX_ERR(0, 745, __pyx_L3_error)
16542         }
16543       }
16544       if (unlikely(kw_args > 0)) {
16545         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "replace_node") < 0)) __PYX_ERR(0, 745, __pyx_L3_error)
16546       }
16547     } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
16548       goto __pyx_L5_argtuple_error;
16549     } else {
16550       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
16551       values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
16552     }
16553     __pyx_v_ptr = values[0];
16554     __pyx_v_value = values[1];
16555   }
16556   goto __pyx_L4_argument_unpacking_done;
16557   __pyx_L5_argtuple_error:;
16558   __Pyx_RaiseArgtupleInvalid("replace_node", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 745, __pyx_L3_error)
16559   __pyx_L3_error:;
16560   __Pyx_AddTraceback("Cython.Compiler.Visitor.replace_node", __pyx_clineno, __pyx_lineno, __pyx_filename);
16561   __Pyx_RefNannyFinishContext();
16562   return NULL;
16563   __pyx_L4_argument_unpacking_done:;
16564   __pyx_r = __pyx_pf_6Cython_8Compiler_7Visitor_4replace_node(__pyx_self, __pyx_v_ptr, __pyx_v_value);
16565 
16566   /* function exit code */
16567   __Pyx_RefNannyFinishContext();
16568   return __pyx_r;
16569 }
16570 
__pyx_pf_6Cython_8Compiler_7Visitor_4replace_node(CYTHON_UNUSED PyObject * __pyx_self,PyObject * __pyx_v_ptr,PyObject * __pyx_v_value)16571 static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_4replace_node(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_ptr, PyObject *__pyx_v_value) {
16572   PyObject *__pyx_v_parent = NULL;
16573   PyObject *__pyx_v_attrname = NULL;
16574   PyObject *__pyx_v_listidx = NULL;
16575   PyObject *__pyx_r = NULL;
16576   __Pyx_RefNannyDeclarations
16577   PyObject *__pyx_t_1 = NULL;
16578   PyObject *__pyx_t_2 = NULL;
16579   PyObject *__pyx_t_3 = NULL;
16580   PyObject *__pyx_t_4 = NULL;
16581   PyObject *(*__pyx_t_5)(PyObject *);
16582   int __pyx_t_6;
16583   int __pyx_t_7;
16584   int __pyx_t_8;
16585   int __pyx_lineno = 0;
16586   const char *__pyx_filename = NULL;
16587   int __pyx_clineno = 0;
16588   __Pyx_RefNannySetupContext("replace_node", 0);
16589 
16590   /* "Cython/Compiler/Visitor.py":749
16591  *     (parent, attrname, listidx|None)
16592  *     """
16593  *     parent, attrname, listidx = ptr             # <<<<<<<<<<<<<<
16594  *     if listidx is None:
16595  *         setattr(parent, attrname, value)
16596  */
16597   if ((likely(PyTuple_CheckExact(__pyx_v_ptr))) || (PyList_CheckExact(__pyx_v_ptr))) {
16598     PyObject* sequence = __pyx_v_ptr;
16599     Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
16600     if (unlikely(size != 3)) {
16601       if (size > 3) __Pyx_RaiseTooManyValuesError(3);
16602       else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
16603       __PYX_ERR(0, 749, __pyx_L1_error)
16604     }
16605     #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
16606     if (likely(PyTuple_CheckExact(sequence))) {
16607       __pyx_t_1 = PyTuple_GET_ITEM(sequence, 0);
16608       __pyx_t_2 = PyTuple_GET_ITEM(sequence, 1);
16609       __pyx_t_3 = PyTuple_GET_ITEM(sequence, 2);
16610     } else {
16611       __pyx_t_1 = PyList_GET_ITEM(sequence, 0);
16612       __pyx_t_2 = PyList_GET_ITEM(sequence, 1);
16613       __pyx_t_3 = PyList_GET_ITEM(sequence, 2);
16614     }
16615     __Pyx_INCREF(__pyx_t_1);
16616     __Pyx_INCREF(__pyx_t_2);
16617     __Pyx_INCREF(__pyx_t_3);
16618     #else
16619     __pyx_t_1 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 749, __pyx_L1_error)
16620     __Pyx_GOTREF(__pyx_t_1);
16621     __pyx_t_2 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 749, __pyx_L1_error)
16622     __Pyx_GOTREF(__pyx_t_2);
16623     __pyx_t_3 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 749, __pyx_L1_error)
16624     __Pyx_GOTREF(__pyx_t_3);
16625     #endif
16626   } else {
16627     Py_ssize_t index = -1;
16628     __pyx_t_4 = PyObject_GetIter(__pyx_v_ptr); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 749, __pyx_L1_error)
16629     __Pyx_GOTREF(__pyx_t_4);
16630     __pyx_t_5 = Py_TYPE(__pyx_t_4)->tp_iternext;
16631     index = 0; __pyx_t_1 = __pyx_t_5(__pyx_t_4); if (unlikely(!__pyx_t_1)) goto __pyx_L3_unpacking_failed;
16632     __Pyx_GOTREF(__pyx_t_1);
16633     index = 1; __pyx_t_2 = __pyx_t_5(__pyx_t_4); if (unlikely(!__pyx_t_2)) goto __pyx_L3_unpacking_failed;
16634     __Pyx_GOTREF(__pyx_t_2);
16635     index = 2; __pyx_t_3 = __pyx_t_5(__pyx_t_4); if (unlikely(!__pyx_t_3)) goto __pyx_L3_unpacking_failed;
16636     __Pyx_GOTREF(__pyx_t_3);
16637     if (__Pyx_IternextUnpackEndCheck(__pyx_t_5(__pyx_t_4), 3) < 0) __PYX_ERR(0, 749, __pyx_L1_error)
16638     __pyx_t_5 = NULL;
16639     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
16640     goto __pyx_L4_unpacking_done;
16641     __pyx_L3_unpacking_failed:;
16642     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
16643     __pyx_t_5 = NULL;
16644     if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
16645     __PYX_ERR(0, 749, __pyx_L1_error)
16646     __pyx_L4_unpacking_done:;
16647   }
16648   __pyx_v_parent = __pyx_t_1;
16649   __pyx_t_1 = 0;
16650   __pyx_v_attrname = __pyx_t_2;
16651   __pyx_t_2 = 0;
16652   __pyx_v_listidx = __pyx_t_3;
16653   __pyx_t_3 = 0;
16654 
16655   /* "Cython/Compiler/Visitor.py":750
16656  *     """
16657  *     parent, attrname, listidx = ptr
16658  *     if listidx is None:             # <<<<<<<<<<<<<<
16659  *         setattr(parent, attrname, value)
16660  *     else:
16661  */
16662   __pyx_t_6 = (__pyx_v_listidx == Py_None);
16663   __pyx_t_7 = (__pyx_t_6 != 0);
16664   if (__pyx_t_7) {
16665 
16666     /* "Cython/Compiler/Visitor.py":751
16667  *     parent, attrname, listidx = ptr
16668  *     if listidx is None:
16669  *         setattr(parent, attrname, value)             # <<<<<<<<<<<<<<
16670  *     else:
16671  *         getattr(parent, attrname)[listidx] = value
16672  */
16673     __pyx_t_8 = PyObject_SetAttr(__pyx_v_parent, __pyx_v_attrname, __pyx_v_value); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(0, 751, __pyx_L1_error)
16674 
16675     /* "Cython/Compiler/Visitor.py":750
16676  *     """
16677  *     parent, attrname, listidx = ptr
16678  *     if listidx is None:             # <<<<<<<<<<<<<<
16679  *         setattr(parent, attrname, value)
16680  *     else:
16681  */
16682     goto __pyx_L5;
16683   }
16684 
16685   /* "Cython/Compiler/Visitor.py":753
16686  *         setattr(parent, attrname, value)
16687  *     else:
16688  *         getattr(parent, attrname)[listidx] = value             # <<<<<<<<<<<<<<
16689  *
16690  *
16691  */
16692   /*else*/ {
16693     __pyx_t_3 = __Pyx_GetAttr(__pyx_v_parent, __pyx_v_attrname); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 753, __pyx_L1_error)
16694     __Pyx_GOTREF(__pyx_t_3);
16695     if (unlikely(PyObject_SetItem(__pyx_t_3, __pyx_v_listidx, __pyx_v_value) < 0)) __PYX_ERR(0, 753, __pyx_L1_error)
16696     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
16697   }
16698   __pyx_L5:;
16699 
16700   /* "Cython/Compiler/Visitor.py":745
16701  *
16702  * # Utils
16703  * def replace_node(ptr, value):             # <<<<<<<<<<<<<<
16704  *     """Replaces a node. ptr is of the form used on the access path stack
16705  *     (parent, attrname, listidx|None)
16706  */
16707 
16708   /* function exit code */
16709   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
16710   goto __pyx_L0;
16711   __pyx_L1_error:;
16712   __Pyx_XDECREF(__pyx_t_1);
16713   __Pyx_XDECREF(__pyx_t_2);
16714   __Pyx_XDECREF(__pyx_t_3);
16715   __Pyx_XDECREF(__pyx_t_4);
16716   __Pyx_AddTraceback("Cython.Compiler.Visitor.replace_node", __pyx_clineno, __pyx_lineno, __pyx_filename);
16717   __pyx_r = NULL;
16718   __pyx_L0:;
16719   __Pyx_XDECREF(__pyx_v_parent);
16720   __Pyx_XDECREF(__pyx_v_attrname);
16721   __Pyx_XDECREF(__pyx_v_listidx);
16722   __Pyx_XGIVEREF(__pyx_r);
16723   __Pyx_RefNannyFinishContext();
16724   return __pyx_r;
16725 }
16726 
16727 /* "Cython/Compiler/Visitor.py":760
16728  *     Subclass and override repr_of to provide more information
16729  *     about nodes. """
16730  *     def __init__(self, start=None, end=None):             # <<<<<<<<<<<<<<
16731  *         TreeVisitor.__init__(self)
16732  *         self._indent = ""
16733  */
16734 
16735 /* Python wrapper */
16736 static PyObject *__pyx_pw_6Cython_8Compiler_7Visitor_9PrintTree_1__init__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
16737 static PyMethodDef __pyx_mdef_6Cython_8Compiler_7Visitor_9PrintTree_1__init__ = {"__init__", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6Cython_8Compiler_7Visitor_9PrintTree_1__init__, METH_VARARGS|METH_KEYWORDS, 0};
__pyx_pw_6Cython_8Compiler_7Visitor_9PrintTree_1__init__(PyObject * __pyx_self,PyObject * __pyx_args,PyObject * __pyx_kwds)16738 static PyObject *__pyx_pw_6Cython_8Compiler_7Visitor_9PrintTree_1__init__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
16739   PyObject *__pyx_v_self = 0;
16740   PyObject *__pyx_v_start = 0;
16741   PyObject *__pyx_v_end = 0;
16742   int __pyx_lineno = 0;
16743   const char *__pyx_filename = NULL;
16744   int __pyx_clineno = 0;
16745   PyObject *__pyx_r = 0;
16746   __Pyx_RefNannyDeclarations
16747   __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
16748   {
16749     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_start,&__pyx_n_s_end,0};
16750     PyObject* values[3] = {0,0,0};
16751     values[1] = ((PyObject *)((PyObject *)Py_None));
16752     values[2] = ((PyObject *)((PyObject *)Py_None));
16753     if (unlikely(__pyx_kwds)) {
16754       Py_ssize_t kw_args;
16755       const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
16756       switch (pos_args) {
16757         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
16758         CYTHON_FALLTHROUGH;
16759         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
16760         CYTHON_FALLTHROUGH;
16761         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
16762         CYTHON_FALLTHROUGH;
16763         case  0: break;
16764         default: goto __pyx_L5_argtuple_error;
16765       }
16766       kw_args = PyDict_Size(__pyx_kwds);
16767       switch (pos_args) {
16768         case  0:
16769         if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
16770         else goto __pyx_L5_argtuple_error;
16771         CYTHON_FALLTHROUGH;
16772         case  1:
16773         if (kw_args > 0) {
16774           PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_start);
16775           if (value) { values[1] = value; kw_args--; }
16776         }
16777         CYTHON_FALLTHROUGH;
16778         case  2:
16779         if (kw_args > 0) {
16780           PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_end);
16781           if (value) { values[2] = value; kw_args--; }
16782         }
16783       }
16784       if (unlikely(kw_args > 0)) {
16785         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 760, __pyx_L3_error)
16786       }
16787     } else {
16788       switch (PyTuple_GET_SIZE(__pyx_args)) {
16789         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
16790         CYTHON_FALLTHROUGH;
16791         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
16792         CYTHON_FALLTHROUGH;
16793         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
16794         break;
16795         default: goto __pyx_L5_argtuple_error;
16796       }
16797     }
16798     __pyx_v_self = values[0];
16799     __pyx_v_start = values[1];
16800     __pyx_v_end = values[2];
16801   }
16802   goto __pyx_L4_argument_unpacking_done;
16803   __pyx_L5_argtuple_error:;
16804   __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 760, __pyx_L3_error)
16805   __pyx_L3_error:;
16806   __Pyx_AddTraceback("Cython.Compiler.Visitor.PrintTree.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
16807   __Pyx_RefNannyFinishContext();
16808   return NULL;
16809   __pyx_L4_argument_unpacking_done:;
16810   __pyx_r = __pyx_pf_6Cython_8Compiler_7Visitor_9PrintTree___init__(__pyx_self, __pyx_v_self, __pyx_v_start, __pyx_v_end);
16811 
16812   /* function exit code */
16813   __Pyx_RefNannyFinishContext();
16814   return __pyx_r;
16815 }
16816 
__pyx_pf_6Cython_8Compiler_7Visitor_9PrintTree___init__(CYTHON_UNUSED PyObject * __pyx_self,PyObject * __pyx_v_self,PyObject * __pyx_v_start,PyObject * __pyx_v_end)16817 static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_9PrintTree___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_start, PyObject *__pyx_v_end) {
16818   PyObject *__pyx_r = NULL;
16819   __Pyx_RefNannyDeclarations
16820   PyObject *__pyx_t_1 = NULL;
16821   PyObject *__pyx_t_2 = NULL;
16822   PyObject *__pyx_t_3 = NULL;
16823   int __pyx_t_4;
16824   int __pyx_t_5;
16825   int __pyx_t_6;
16826   int __pyx_lineno = 0;
16827   const char *__pyx_filename = NULL;
16828   int __pyx_clineno = 0;
16829   __Pyx_RefNannySetupContext("__init__", 0);
16830 
16831   /* "Cython/Compiler/Visitor.py":761
16832  *     about nodes. """
16833  *     def __init__(self, start=None, end=None):
16834  *         TreeVisitor.__init__(self)             # <<<<<<<<<<<<<<
16835  *         self._indent = ""
16836  *         if start is not None or end is not None:
16837  */
16838   __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_6Cython_8Compiler_7Visitor_TreeVisitor), __pyx_n_s_init); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 761, __pyx_L1_error)
16839   __Pyx_GOTREF(__pyx_t_2);
16840   __pyx_t_3 = NULL;
16841   if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
16842     __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
16843     if (likely(__pyx_t_3)) {
16844       PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
16845       __Pyx_INCREF(__pyx_t_3);
16846       __Pyx_INCREF(function);
16847       __Pyx_DECREF_SET(__pyx_t_2, function);
16848     }
16849   }
16850   __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_self) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_self);
16851   __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
16852   if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 761, __pyx_L1_error)
16853   __Pyx_GOTREF(__pyx_t_1);
16854   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
16855   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
16856 
16857   /* "Cython/Compiler/Visitor.py":762
16858  *     def __init__(self, start=None, end=None):
16859  *         TreeVisitor.__init__(self)
16860  *         self._indent = ""             # <<<<<<<<<<<<<<
16861  *         if start is not None or end is not None:
16862  *             self._line_range = (start or 0, end or 2**30)
16863  */
16864   if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_indent, __pyx_kp_u__7) < 0) __PYX_ERR(0, 762, __pyx_L1_error)
16865 
16866   /* "Cython/Compiler/Visitor.py":763
16867  *         TreeVisitor.__init__(self)
16868  *         self._indent = ""
16869  *         if start is not None or end is not None:             # <<<<<<<<<<<<<<
16870  *             self._line_range = (start or 0, end or 2**30)
16871  *         else:
16872  */
16873   __pyx_t_5 = (__pyx_v_start != Py_None);
16874   __pyx_t_6 = (__pyx_t_5 != 0);
16875   if (!__pyx_t_6) {
16876   } else {
16877     __pyx_t_4 = __pyx_t_6;
16878     goto __pyx_L4_bool_binop_done;
16879   }
16880   __pyx_t_6 = (__pyx_v_end != Py_None);
16881   __pyx_t_5 = (__pyx_t_6 != 0);
16882   __pyx_t_4 = __pyx_t_5;
16883   __pyx_L4_bool_binop_done:;
16884   if (__pyx_t_4) {
16885 
16886     /* "Cython/Compiler/Visitor.py":764
16887  *         self._indent = ""
16888  *         if start is not None or end is not None:
16889  *             self._line_range = (start or 0, end or 2**30)             # <<<<<<<<<<<<<<
16890  *         else:
16891  *             self._line_range = None
16892  */
16893     __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_start); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 764, __pyx_L1_error)
16894     if (!__pyx_t_4) {
16895     } else {
16896       __Pyx_INCREF(__pyx_v_start);
16897       __pyx_t_1 = __pyx_v_start;
16898       goto __pyx_L6_bool_binop_done;
16899     }
16900     __pyx_t_2 = __Pyx_PyInt_From_long(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 764, __pyx_L1_error)
16901     __Pyx_GOTREF(__pyx_t_2);
16902     __pyx_t_1 = __pyx_t_2;
16903     __pyx_t_2 = 0;
16904     __pyx_L6_bool_binop_done:;
16905     __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_end); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 764, __pyx_L1_error)
16906     if (!__pyx_t_4) {
16907     } else {
16908       __Pyx_INCREF(__pyx_v_end);
16909       __pyx_t_2 = __pyx_v_end;
16910       goto __pyx_L8_bool_binop_done;
16911     }
16912     __pyx_t_3 = __Pyx_PyInt_From_long(0x40000000); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 764, __pyx_L1_error)
16913     __Pyx_GOTREF(__pyx_t_3);
16914     __pyx_t_2 = __pyx_t_3;
16915     __pyx_t_3 = 0;
16916     __pyx_L8_bool_binop_done:;
16917     __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 764, __pyx_L1_error)
16918     __Pyx_GOTREF(__pyx_t_3);
16919     __Pyx_GIVEREF(__pyx_t_1);
16920     PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
16921     __Pyx_GIVEREF(__pyx_t_2);
16922     PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2);
16923     __pyx_t_1 = 0;
16924     __pyx_t_2 = 0;
16925     if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_line_range, __pyx_t_3) < 0) __PYX_ERR(0, 764, __pyx_L1_error)
16926     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
16927 
16928     /* "Cython/Compiler/Visitor.py":763
16929  *         TreeVisitor.__init__(self)
16930  *         self._indent = ""
16931  *         if start is not None or end is not None:             # <<<<<<<<<<<<<<
16932  *             self._line_range = (start or 0, end or 2**30)
16933  *         else:
16934  */
16935     goto __pyx_L3;
16936   }
16937 
16938   /* "Cython/Compiler/Visitor.py":766
16939  *             self._line_range = (start or 0, end or 2**30)
16940  *         else:
16941  *             self._line_range = None             # <<<<<<<<<<<<<<
16942  *
16943  *     def indent(self):
16944  */
16945   /*else*/ {
16946     if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_line_range, Py_None) < 0) __PYX_ERR(0, 766, __pyx_L1_error)
16947   }
16948   __pyx_L3:;
16949 
16950   /* "Cython/Compiler/Visitor.py":760
16951  *     Subclass and override repr_of to provide more information
16952  *     about nodes. """
16953  *     def __init__(self, start=None, end=None):             # <<<<<<<<<<<<<<
16954  *         TreeVisitor.__init__(self)
16955  *         self._indent = ""
16956  */
16957 
16958   /* function exit code */
16959   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
16960   goto __pyx_L0;
16961   __pyx_L1_error:;
16962   __Pyx_XDECREF(__pyx_t_1);
16963   __Pyx_XDECREF(__pyx_t_2);
16964   __Pyx_XDECREF(__pyx_t_3);
16965   __Pyx_AddTraceback("Cython.Compiler.Visitor.PrintTree.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
16966   __pyx_r = NULL;
16967   __pyx_L0:;
16968   __Pyx_XGIVEREF(__pyx_r);
16969   __Pyx_RefNannyFinishContext();
16970   return __pyx_r;
16971 }
16972 
16973 /* "Cython/Compiler/Visitor.py":768
16974  *             self._line_range = None
16975  *
16976  *     def indent(self):             # <<<<<<<<<<<<<<
16977  *         self._indent += "  "
16978  *
16979  */
16980 
16981 /* Python wrapper */
16982 static PyObject *__pyx_pw_6Cython_8Compiler_7Visitor_9PrintTree_3indent(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/
16983 static PyMethodDef __pyx_mdef_6Cython_8Compiler_7Visitor_9PrintTree_3indent = {"indent", (PyCFunction)__pyx_pw_6Cython_8Compiler_7Visitor_9PrintTree_3indent, METH_O, 0};
__pyx_pw_6Cython_8Compiler_7Visitor_9PrintTree_3indent(PyObject * __pyx_self,PyObject * __pyx_v_self)16984 static PyObject *__pyx_pw_6Cython_8Compiler_7Visitor_9PrintTree_3indent(PyObject *__pyx_self, PyObject *__pyx_v_self) {
16985   PyObject *__pyx_r = 0;
16986   __Pyx_RefNannyDeclarations
16987   __Pyx_RefNannySetupContext("indent (wrapper)", 0);
16988   __pyx_r = __pyx_pf_6Cython_8Compiler_7Visitor_9PrintTree_2indent(__pyx_self, ((PyObject *)__pyx_v_self));
16989 
16990   /* function exit code */
16991   __Pyx_RefNannyFinishContext();
16992   return __pyx_r;
16993 }
16994 
__pyx_pf_6Cython_8Compiler_7Visitor_9PrintTree_2indent(CYTHON_UNUSED PyObject * __pyx_self,PyObject * __pyx_v_self)16995 static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_9PrintTree_2indent(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) {
16996   PyObject *__pyx_r = NULL;
16997   __Pyx_RefNannyDeclarations
16998   PyObject *__pyx_t_1 = NULL;
16999   PyObject *__pyx_t_2 = NULL;
17000   int __pyx_lineno = 0;
17001   const char *__pyx_filename = NULL;
17002   int __pyx_clineno = 0;
17003   __Pyx_RefNannySetupContext("indent", 0);
17004 
17005   /* "Cython/Compiler/Visitor.py":769
17006  *
17007  *     def indent(self):
17008  *         self._indent += "  "             # <<<<<<<<<<<<<<
17009  *
17010  *     def unindent(self):
17011  */
17012   __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_indent); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 769, __pyx_L1_error)
17013   __Pyx_GOTREF(__pyx_t_1);
17014   __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_t_1, __pyx_kp_u__13); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 769, __pyx_L1_error)
17015   __Pyx_GOTREF(__pyx_t_2);
17016   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
17017   if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_indent, __pyx_t_2) < 0) __PYX_ERR(0, 769, __pyx_L1_error)
17018   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
17019 
17020   /* "Cython/Compiler/Visitor.py":768
17021  *             self._line_range = None
17022  *
17023  *     def indent(self):             # <<<<<<<<<<<<<<
17024  *         self._indent += "  "
17025  *
17026  */
17027 
17028   /* function exit code */
17029   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
17030   goto __pyx_L0;
17031   __pyx_L1_error:;
17032   __Pyx_XDECREF(__pyx_t_1);
17033   __Pyx_XDECREF(__pyx_t_2);
17034   __Pyx_AddTraceback("Cython.Compiler.Visitor.PrintTree.indent", __pyx_clineno, __pyx_lineno, __pyx_filename);
17035   __pyx_r = NULL;
17036   __pyx_L0:;
17037   __Pyx_XGIVEREF(__pyx_r);
17038   __Pyx_RefNannyFinishContext();
17039   return __pyx_r;
17040 }
17041 
17042 /* "Cython/Compiler/Visitor.py":771
17043  *         self._indent += "  "
17044  *
17045  *     def unindent(self):             # <<<<<<<<<<<<<<
17046  *         self._indent = self._indent[:-2]
17047  *
17048  */
17049 
17050 /* Python wrapper */
17051 static PyObject *__pyx_pw_6Cython_8Compiler_7Visitor_9PrintTree_5unindent(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/
17052 static PyMethodDef __pyx_mdef_6Cython_8Compiler_7Visitor_9PrintTree_5unindent = {"unindent", (PyCFunction)__pyx_pw_6Cython_8Compiler_7Visitor_9PrintTree_5unindent, METH_O, 0};
__pyx_pw_6Cython_8Compiler_7Visitor_9PrintTree_5unindent(PyObject * __pyx_self,PyObject * __pyx_v_self)17053 static PyObject *__pyx_pw_6Cython_8Compiler_7Visitor_9PrintTree_5unindent(PyObject *__pyx_self, PyObject *__pyx_v_self) {
17054   PyObject *__pyx_r = 0;
17055   __Pyx_RefNannyDeclarations
17056   __Pyx_RefNannySetupContext("unindent (wrapper)", 0);
17057   __pyx_r = __pyx_pf_6Cython_8Compiler_7Visitor_9PrintTree_4unindent(__pyx_self, ((PyObject *)__pyx_v_self));
17058 
17059   /* function exit code */
17060   __Pyx_RefNannyFinishContext();
17061   return __pyx_r;
17062 }
17063 
__pyx_pf_6Cython_8Compiler_7Visitor_9PrintTree_4unindent(CYTHON_UNUSED PyObject * __pyx_self,PyObject * __pyx_v_self)17064 static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_9PrintTree_4unindent(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) {
17065   PyObject *__pyx_r = NULL;
17066   __Pyx_RefNannyDeclarations
17067   PyObject *__pyx_t_1 = NULL;
17068   PyObject *__pyx_t_2 = NULL;
17069   int __pyx_lineno = 0;
17070   const char *__pyx_filename = NULL;
17071   int __pyx_clineno = 0;
17072   __Pyx_RefNannySetupContext("unindent", 0);
17073 
17074   /* "Cython/Compiler/Visitor.py":772
17075  *
17076  *     def unindent(self):
17077  *         self._indent = self._indent[:-2]             # <<<<<<<<<<<<<<
17078  *
17079  *     def __call__(self, tree, phase=None):
17080  */
17081   __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_indent); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 772, __pyx_L1_error)
17082   __Pyx_GOTREF(__pyx_t_1);
17083   __pyx_t_2 = __Pyx_PyObject_GetSlice(__pyx_t_1, 0, -2L, NULL, NULL, &__pyx_slice__14, 0, 1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 772, __pyx_L1_error)
17084   __Pyx_GOTREF(__pyx_t_2);
17085   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
17086   if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_indent, __pyx_t_2) < 0) __PYX_ERR(0, 772, __pyx_L1_error)
17087   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
17088 
17089   /* "Cython/Compiler/Visitor.py":771
17090  *         self._indent += "  "
17091  *
17092  *     def unindent(self):             # <<<<<<<<<<<<<<
17093  *         self._indent = self._indent[:-2]
17094  *
17095  */
17096 
17097   /* function exit code */
17098   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
17099   goto __pyx_L0;
17100   __pyx_L1_error:;
17101   __Pyx_XDECREF(__pyx_t_1);
17102   __Pyx_XDECREF(__pyx_t_2);
17103   __Pyx_AddTraceback("Cython.Compiler.Visitor.PrintTree.unindent", __pyx_clineno, __pyx_lineno, __pyx_filename);
17104   __pyx_r = NULL;
17105   __pyx_L0:;
17106   __Pyx_XGIVEREF(__pyx_r);
17107   __Pyx_RefNannyFinishContext();
17108   return __pyx_r;
17109 }
17110 
17111 /* "Cython/Compiler/Visitor.py":774
17112  *         self._indent = self._indent[:-2]
17113  *
17114  *     def __call__(self, tree, phase=None):             # <<<<<<<<<<<<<<
17115  *         print("Parse tree dump at phase '%s'" % phase)
17116  *         self.visit(tree)
17117  */
17118 
17119 /* Python wrapper */
17120 static PyObject *__pyx_pw_6Cython_8Compiler_7Visitor_9PrintTree_7__call__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
17121 static PyMethodDef __pyx_mdef_6Cython_8Compiler_7Visitor_9PrintTree_7__call__ = {"__call__", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6Cython_8Compiler_7Visitor_9PrintTree_7__call__, METH_VARARGS|METH_KEYWORDS, 0};
__pyx_pw_6Cython_8Compiler_7Visitor_9PrintTree_7__call__(PyObject * __pyx_self,PyObject * __pyx_args,PyObject * __pyx_kwds)17122 static PyObject *__pyx_pw_6Cython_8Compiler_7Visitor_9PrintTree_7__call__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
17123   PyObject *__pyx_v_self = 0;
17124   PyObject *__pyx_v_tree = 0;
17125   PyObject *__pyx_v_phase = 0;
17126   int __pyx_lineno = 0;
17127   const char *__pyx_filename = NULL;
17128   int __pyx_clineno = 0;
17129   PyObject *__pyx_r = 0;
17130   __Pyx_RefNannyDeclarations
17131   __Pyx_RefNannySetupContext("__call__ (wrapper)", 0);
17132   {
17133     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_tree,&__pyx_n_s_phase,0};
17134     PyObject* values[3] = {0,0,0};
17135     values[2] = ((PyObject *)((PyObject *)Py_None));
17136     if (unlikely(__pyx_kwds)) {
17137       Py_ssize_t kw_args;
17138       const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
17139       switch (pos_args) {
17140         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
17141         CYTHON_FALLTHROUGH;
17142         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
17143         CYTHON_FALLTHROUGH;
17144         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
17145         CYTHON_FALLTHROUGH;
17146         case  0: break;
17147         default: goto __pyx_L5_argtuple_error;
17148       }
17149       kw_args = PyDict_Size(__pyx_kwds);
17150       switch (pos_args) {
17151         case  0:
17152         if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
17153         else goto __pyx_L5_argtuple_error;
17154         CYTHON_FALLTHROUGH;
17155         case  1:
17156         if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tree)) != 0)) kw_args--;
17157         else {
17158           __Pyx_RaiseArgtupleInvalid("__call__", 0, 2, 3, 1); __PYX_ERR(0, 774, __pyx_L3_error)
17159         }
17160         CYTHON_FALLTHROUGH;
17161         case  2:
17162         if (kw_args > 0) {
17163           PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_phase);
17164           if (value) { values[2] = value; kw_args--; }
17165         }
17166       }
17167       if (unlikely(kw_args > 0)) {
17168         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__call__") < 0)) __PYX_ERR(0, 774, __pyx_L3_error)
17169       }
17170     } else {
17171       switch (PyTuple_GET_SIZE(__pyx_args)) {
17172         case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
17173         CYTHON_FALLTHROUGH;
17174         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
17175         values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
17176         break;
17177         default: goto __pyx_L5_argtuple_error;
17178       }
17179     }
17180     __pyx_v_self = values[0];
17181     __pyx_v_tree = values[1];
17182     __pyx_v_phase = values[2];
17183   }
17184   goto __pyx_L4_argument_unpacking_done;
17185   __pyx_L5_argtuple_error:;
17186   __Pyx_RaiseArgtupleInvalid("__call__", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 774, __pyx_L3_error)
17187   __pyx_L3_error:;
17188   __Pyx_AddTraceback("Cython.Compiler.Visitor.PrintTree.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
17189   __Pyx_RefNannyFinishContext();
17190   return NULL;
17191   __pyx_L4_argument_unpacking_done:;
17192   __pyx_r = __pyx_pf_6Cython_8Compiler_7Visitor_9PrintTree_6__call__(__pyx_self, __pyx_v_self, __pyx_v_tree, __pyx_v_phase);
17193 
17194   /* function exit code */
17195   __Pyx_RefNannyFinishContext();
17196   return __pyx_r;
17197 }
17198 
__pyx_pf_6Cython_8Compiler_7Visitor_9PrintTree_6__call__(CYTHON_UNUSED PyObject * __pyx_self,PyObject * __pyx_v_self,PyObject * __pyx_v_tree,PyObject * __pyx_v_phase)17199 static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_9PrintTree_6__call__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_tree, PyObject *__pyx_v_phase) {
17200   PyObject *__pyx_r = NULL;
17201   __Pyx_RefNannyDeclarations
17202   PyObject *__pyx_t_1 = NULL;
17203   PyObject *__pyx_t_2 = NULL;
17204   PyObject *__pyx_t_3 = NULL;
17205   int __pyx_lineno = 0;
17206   const char *__pyx_filename = NULL;
17207   int __pyx_clineno = 0;
17208   __Pyx_RefNannySetupContext("__call__", 0);
17209 
17210   /* "Cython/Compiler/Visitor.py":775
17211  *
17212  *     def __call__(self, tree, phase=None):
17213  *         print("Parse tree dump at phase '%s'" % phase)             # <<<<<<<<<<<<<<
17214  *         self.visit(tree)
17215  *         return tree
17216  */
17217   __pyx_t_1 = __Pyx_PyUnicode_FormatSafe(__pyx_kp_u_Parse_tree_dump_at_phase_s, __pyx_v_phase); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 775, __pyx_L1_error)
17218   __Pyx_GOTREF(__pyx_t_1);
17219   __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_builtin_print, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 775, __pyx_L1_error)
17220   __Pyx_GOTREF(__pyx_t_2);
17221   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
17222   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
17223 
17224   /* "Cython/Compiler/Visitor.py":776
17225  *     def __call__(self, tree, phase=None):
17226  *         print("Parse tree dump at phase '%s'" % phase)
17227  *         self.visit(tree)             # <<<<<<<<<<<<<<
17228  *         return tree
17229  *
17230  */
17231   __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_visit); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 776, __pyx_L1_error)
17232   __Pyx_GOTREF(__pyx_t_1);
17233   __pyx_t_3 = NULL;
17234   if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) {
17235     __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_1);
17236     if (likely(__pyx_t_3)) {
17237       PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
17238       __Pyx_INCREF(__pyx_t_3);
17239       __Pyx_INCREF(function);
17240       __Pyx_DECREF_SET(__pyx_t_1, function);
17241     }
17242   }
17243   __pyx_t_2 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_3, __pyx_v_tree) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_v_tree);
17244   __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
17245   if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 776, __pyx_L1_error)
17246   __Pyx_GOTREF(__pyx_t_2);
17247   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
17248   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
17249 
17250   /* "Cython/Compiler/Visitor.py":777
17251  *         print("Parse tree dump at phase '%s'" % phase)
17252  *         self.visit(tree)
17253  *         return tree             # <<<<<<<<<<<<<<
17254  *
17255  *     # Don't do anything about process_list, the defaults gives
17256  */
17257   __Pyx_XDECREF(__pyx_r);
17258   __Pyx_INCREF(__pyx_v_tree);
17259   __pyx_r = __pyx_v_tree;
17260   goto __pyx_L0;
17261 
17262   /* "Cython/Compiler/Visitor.py":774
17263  *         self._indent = self._indent[:-2]
17264  *
17265  *     def __call__(self, tree, phase=None):             # <<<<<<<<<<<<<<
17266  *         print("Parse tree dump at phase '%s'" % phase)
17267  *         self.visit(tree)
17268  */
17269 
17270   /* function exit code */
17271   __pyx_L1_error:;
17272   __Pyx_XDECREF(__pyx_t_1);
17273   __Pyx_XDECREF(__pyx_t_2);
17274   __Pyx_XDECREF(__pyx_t_3);
17275   __Pyx_AddTraceback("Cython.Compiler.Visitor.PrintTree.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
17276   __pyx_r = NULL;
17277   __pyx_L0:;
17278   __Pyx_XGIVEREF(__pyx_r);
17279   __Pyx_RefNannyFinishContext();
17280   return __pyx_r;
17281 }
17282 
17283 /* "Cython/Compiler/Visitor.py":783
17284  *     # under the parent-node, not displaying the list itself in
17285  *     # the hierarchy.
17286  *     def visit_Node(self, node):             # <<<<<<<<<<<<<<
17287  *         self._print_node(node)
17288  *         self.indent()
17289  */
17290 
17291 /* Python wrapper */
17292 static PyObject *__pyx_pw_6Cython_8Compiler_7Visitor_9PrintTree_9visit_Node(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
17293 static PyMethodDef __pyx_mdef_6Cython_8Compiler_7Visitor_9PrintTree_9visit_Node = {"visit_Node", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6Cython_8Compiler_7Visitor_9PrintTree_9visit_Node, METH_VARARGS|METH_KEYWORDS, 0};
__pyx_pw_6Cython_8Compiler_7Visitor_9PrintTree_9visit_Node(PyObject * __pyx_self,PyObject * __pyx_args,PyObject * __pyx_kwds)17294 static PyObject *__pyx_pw_6Cython_8Compiler_7Visitor_9PrintTree_9visit_Node(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
17295   PyObject *__pyx_v_self = 0;
17296   PyObject *__pyx_v_node = 0;
17297   int __pyx_lineno = 0;
17298   const char *__pyx_filename = NULL;
17299   int __pyx_clineno = 0;
17300   PyObject *__pyx_r = 0;
17301   __Pyx_RefNannyDeclarations
17302   __Pyx_RefNannySetupContext("visit_Node (wrapper)", 0);
17303   {
17304     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_node,0};
17305     PyObject* values[2] = {0,0};
17306     if (unlikely(__pyx_kwds)) {
17307       Py_ssize_t kw_args;
17308       const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
17309       switch (pos_args) {
17310         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
17311         CYTHON_FALLTHROUGH;
17312         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
17313         CYTHON_FALLTHROUGH;
17314         case  0: break;
17315         default: goto __pyx_L5_argtuple_error;
17316       }
17317       kw_args = PyDict_Size(__pyx_kwds);
17318       switch (pos_args) {
17319         case  0:
17320         if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
17321         else goto __pyx_L5_argtuple_error;
17322         CYTHON_FALLTHROUGH;
17323         case  1:
17324         if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_node)) != 0)) kw_args--;
17325         else {
17326           __Pyx_RaiseArgtupleInvalid("visit_Node", 1, 2, 2, 1); __PYX_ERR(0, 783, __pyx_L3_error)
17327         }
17328       }
17329       if (unlikely(kw_args > 0)) {
17330         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "visit_Node") < 0)) __PYX_ERR(0, 783, __pyx_L3_error)
17331       }
17332     } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
17333       goto __pyx_L5_argtuple_error;
17334     } else {
17335       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
17336       values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
17337     }
17338     __pyx_v_self = values[0];
17339     __pyx_v_node = values[1];
17340   }
17341   goto __pyx_L4_argument_unpacking_done;
17342   __pyx_L5_argtuple_error:;
17343   __Pyx_RaiseArgtupleInvalid("visit_Node", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 783, __pyx_L3_error)
17344   __pyx_L3_error:;
17345   __Pyx_AddTraceback("Cython.Compiler.Visitor.PrintTree.visit_Node", __pyx_clineno, __pyx_lineno, __pyx_filename);
17346   __Pyx_RefNannyFinishContext();
17347   return NULL;
17348   __pyx_L4_argument_unpacking_done:;
17349   __pyx_r = __pyx_pf_6Cython_8Compiler_7Visitor_9PrintTree_8visit_Node(__pyx_self, __pyx_v_self, __pyx_v_node);
17350 
17351   /* function exit code */
17352   __Pyx_RefNannyFinishContext();
17353   return __pyx_r;
17354 }
17355 
__pyx_pf_6Cython_8Compiler_7Visitor_9PrintTree_8visit_Node(CYTHON_UNUSED PyObject * __pyx_self,PyObject * __pyx_v_self,PyObject * __pyx_v_node)17356 static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_9PrintTree_8visit_Node(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_node) {
17357   PyObject *__pyx_r = NULL;
17358   __Pyx_RefNannyDeclarations
17359   PyObject *__pyx_t_1 = NULL;
17360   PyObject *__pyx_t_2 = NULL;
17361   PyObject *__pyx_t_3 = NULL;
17362   int __pyx_lineno = 0;
17363   const char *__pyx_filename = NULL;
17364   int __pyx_clineno = 0;
17365   __Pyx_RefNannySetupContext("visit_Node", 0);
17366 
17367   /* "Cython/Compiler/Visitor.py":784
17368  *     # the hierarchy.
17369  *     def visit_Node(self, node):
17370  *         self._print_node(node)             # <<<<<<<<<<<<<<
17371  *         self.indent()
17372  *         self.visitchildren(node)
17373  */
17374   __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_print_node); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 784, __pyx_L1_error)
17375   __Pyx_GOTREF(__pyx_t_2);
17376   __pyx_t_3 = NULL;
17377   if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
17378     __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
17379     if (likely(__pyx_t_3)) {
17380       PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
17381       __Pyx_INCREF(__pyx_t_3);
17382       __Pyx_INCREF(function);
17383       __Pyx_DECREF_SET(__pyx_t_2, function);
17384     }
17385   }
17386   __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_node) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_node);
17387   __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
17388   if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 784, __pyx_L1_error)
17389   __Pyx_GOTREF(__pyx_t_1);
17390   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
17391   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
17392 
17393   /* "Cython/Compiler/Visitor.py":785
17394  *     def visit_Node(self, node):
17395  *         self._print_node(node)
17396  *         self.indent()             # <<<<<<<<<<<<<<
17397  *         self.visitchildren(node)
17398  *         self.unindent()
17399  */
17400   __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_indent_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 785, __pyx_L1_error)
17401   __Pyx_GOTREF(__pyx_t_2);
17402   __pyx_t_3 = NULL;
17403   if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
17404     __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
17405     if (likely(__pyx_t_3)) {
17406       PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
17407       __Pyx_INCREF(__pyx_t_3);
17408       __Pyx_INCREF(function);
17409       __Pyx_DECREF_SET(__pyx_t_2, function);
17410     }
17411   }
17412   __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
17413   __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
17414   if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 785, __pyx_L1_error)
17415   __Pyx_GOTREF(__pyx_t_1);
17416   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
17417   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
17418 
17419   /* "Cython/Compiler/Visitor.py":786
17420  *         self._print_node(node)
17421  *         self.indent()
17422  *         self.visitchildren(node)             # <<<<<<<<<<<<<<
17423  *         self.unindent()
17424  *         return node
17425  */
17426   __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_visitchildren); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 786, __pyx_L1_error)
17427   __Pyx_GOTREF(__pyx_t_2);
17428   __pyx_t_3 = NULL;
17429   if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
17430     __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
17431     if (likely(__pyx_t_3)) {
17432       PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
17433       __Pyx_INCREF(__pyx_t_3);
17434       __Pyx_INCREF(function);
17435       __Pyx_DECREF_SET(__pyx_t_2, function);
17436     }
17437   }
17438   __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_node) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_node);
17439   __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
17440   if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 786, __pyx_L1_error)
17441   __Pyx_GOTREF(__pyx_t_1);
17442   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
17443   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
17444 
17445   /* "Cython/Compiler/Visitor.py":787
17446  *         self.indent()
17447  *         self.visitchildren(node)
17448  *         self.unindent()             # <<<<<<<<<<<<<<
17449  *         return node
17450  *
17451  */
17452   __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_unindent); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 787, __pyx_L1_error)
17453   __Pyx_GOTREF(__pyx_t_2);
17454   __pyx_t_3 = NULL;
17455   if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
17456     __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
17457     if (likely(__pyx_t_3)) {
17458       PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
17459       __Pyx_INCREF(__pyx_t_3);
17460       __Pyx_INCREF(function);
17461       __Pyx_DECREF_SET(__pyx_t_2, function);
17462     }
17463   }
17464   __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
17465   __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
17466   if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 787, __pyx_L1_error)
17467   __Pyx_GOTREF(__pyx_t_1);
17468   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
17469   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
17470 
17471   /* "Cython/Compiler/Visitor.py":788
17472  *         self.visitchildren(node)
17473  *         self.unindent()
17474  *         return node             # <<<<<<<<<<<<<<
17475  *
17476  *     def visit_CloneNode(self, node):
17477  */
17478   __Pyx_XDECREF(__pyx_r);
17479   __Pyx_INCREF(__pyx_v_node);
17480   __pyx_r = __pyx_v_node;
17481   goto __pyx_L0;
17482 
17483   /* "Cython/Compiler/Visitor.py":783
17484  *     # under the parent-node, not displaying the list itself in
17485  *     # the hierarchy.
17486  *     def visit_Node(self, node):             # <<<<<<<<<<<<<<
17487  *         self._print_node(node)
17488  *         self.indent()
17489  */
17490 
17491   /* function exit code */
17492   __pyx_L1_error:;
17493   __Pyx_XDECREF(__pyx_t_1);
17494   __Pyx_XDECREF(__pyx_t_2);
17495   __Pyx_XDECREF(__pyx_t_3);
17496   __Pyx_AddTraceback("Cython.Compiler.Visitor.PrintTree.visit_Node", __pyx_clineno, __pyx_lineno, __pyx_filename);
17497   __pyx_r = NULL;
17498   __pyx_L0:;
17499   __Pyx_XGIVEREF(__pyx_r);
17500   __Pyx_RefNannyFinishContext();
17501   return __pyx_r;
17502 }
17503 
17504 /* "Cython/Compiler/Visitor.py":790
17505  *         return node
17506  *
17507  *     def visit_CloneNode(self, node):             # <<<<<<<<<<<<<<
17508  *         self._print_node(node)
17509  *         self.indent()
17510  */
17511 
17512 /* Python wrapper */
17513 static PyObject *__pyx_pw_6Cython_8Compiler_7Visitor_9PrintTree_11visit_CloneNode(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
17514 static PyMethodDef __pyx_mdef_6Cython_8Compiler_7Visitor_9PrintTree_11visit_CloneNode = {"visit_CloneNode", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6Cython_8Compiler_7Visitor_9PrintTree_11visit_CloneNode, METH_VARARGS|METH_KEYWORDS, 0};
__pyx_pw_6Cython_8Compiler_7Visitor_9PrintTree_11visit_CloneNode(PyObject * __pyx_self,PyObject * __pyx_args,PyObject * __pyx_kwds)17515 static PyObject *__pyx_pw_6Cython_8Compiler_7Visitor_9PrintTree_11visit_CloneNode(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
17516   PyObject *__pyx_v_self = 0;
17517   PyObject *__pyx_v_node = 0;
17518   int __pyx_lineno = 0;
17519   const char *__pyx_filename = NULL;
17520   int __pyx_clineno = 0;
17521   PyObject *__pyx_r = 0;
17522   __Pyx_RefNannyDeclarations
17523   __Pyx_RefNannySetupContext("visit_CloneNode (wrapper)", 0);
17524   {
17525     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_node,0};
17526     PyObject* values[2] = {0,0};
17527     if (unlikely(__pyx_kwds)) {
17528       Py_ssize_t kw_args;
17529       const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
17530       switch (pos_args) {
17531         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
17532         CYTHON_FALLTHROUGH;
17533         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
17534         CYTHON_FALLTHROUGH;
17535         case  0: break;
17536         default: goto __pyx_L5_argtuple_error;
17537       }
17538       kw_args = PyDict_Size(__pyx_kwds);
17539       switch (pos_args) {
17540         case  0:
17541         if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
17542         else goto __pyx_L5_argtuple_error;
17543         CYTHON_FALLTHROUGH;
17544         case  1:
17545         if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_node)) != 0)) kw_args--;
17546         else {
17547           __Pyx_RaiseArgtupleInvalid("visit_CloneNode", 1, 2, 2, 1); __PYX_ERR(0, 790, __pyx_L3_error)
17548         }
17549       }
17550       if (unlikely(kw_args > 0)) {
17551         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "visit_CloneNode") < 0)) __PYX_ERR(0, 790, __pyx_L3_error)
17552       }
17553     } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
17554       goto __pyx_L5_argtuple_error;
17555     } else {
17556       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
17557       values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
17558     }
17559     __pyx_v_self = values[0];
17560     __pyx_v_node = values[1];
17561   }
17562   goto __pyx_L4_argument_unpacking_done;
17563   __pyx_L5_argtuple_error:;
17564   __Pyx_RaiseArgtupleInvalid("visit_CloneNode", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 790, __pyx_L3_error)
17565   __pyx_L3_error:;
17566   __Pyx_AddTraceback("Cython.Compiler.Visitor.PrintTree.visit_CloneNode", __pyx_clineno, __pyx_lineno, __pyx_filename);
17567   __Pyx_RefNannyFinishContext();
17568   return NULL;
17569   __pyx_L4_argument_unpacking_done:;
17570   __pyx_r = __pyx_pf_6Cython_8Compiler_7Visitor_9PrintTree_10visit_CloneNode(__pyx_self, __pyx_v_self, __pyx_v_node);
17571 
17572   /* function exit code */
17573   __Pyx_RefNannyFinishContext();
17574   return __pyx_r;
17575 }
17576 
__pyx_pf_6Cython_8Compiler_7Visitor_9PrintTree_10visit_CloneNode(CYTHON_UNUSED PyObject * __pyx_self,PyObject * __pyx_v_self,PyObject * __pyx_v_node)17577 static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_9PrintTree_10visit_CloneNode(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_node) {
17578   PyObject *__pyx_v_line = NULL;
17579   PyObject *__pyx_r = NULL;
17580   __Pyx_RefNannyDeclarations
17581   PyObject *__pyx_t_1 = NULL;
17582   PyObject *__pyx_t_2 = NULL;
17583   PyObject *__pyx_t_3 = NULL;
17584   int __pyx_t_4;
17585   int __pyx_t_5;
17586   int __pyx_t_6;
17587   PyObject *__pyx_t_7 = NULL;
17588   Py_ssize_t __pyx_t_8;
17589   Py_UCS4 __pyx_t_9;
17590   PyObject *__pyx_t_10 = NULL;
17591   int __pyx_lineno = 0;
17592   const char *__pyx_filename = NULL;
17593   int __pyx_clineno = 0;
17594   __Pyx_RefNannySetupContext("visit_CloneNode", 0);
17595 
17596   /* "Cython/Compiler/Visitor.py":791
17597  *
17598  *     def visit_CloneNode(self, node):
17599  *         self._print_node(node)             # <<<<<<<<<<<<<<
17600  *         self.indent()
17601  *         line = node.pos[1]
17602  */
17603   __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_print_node); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 791, __pyx_L1_error)
17604   __Pyx_GOTREF(__pyx_t_2);
17605   __pyx_t_3 = NULL;
17606   if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
17607     __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
17608     if (likely(__pyx_t_3)) {
17609       PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
17610       __Pyx_INCREF(__pyx_t_3);
17611       __Pyx_INCREF(function);
17612       __Pyx_DECREF_SET(__pyx_t_2, function);
17613     }
17614   }
17615   __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_node) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_node);
17616   __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
17617   if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 791, __pyx_L1_error)
17618   __Pyx_GOTREF(__pyx_t_1);
17619   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
17620   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
17621 
17622   /* "Cython/Compiler/Visitor.py":792
17623  *     def visit_CloneNode(self, node):
17624  *         self._print_node(node)
17625  *         self.indent()             # <<<<<<<<<<<<<<
17626  *         line = node.pos[1]
17627  *         if self._line_range is None or self._line_range[0] <= line <= self._line_range[1]:
17628  */
17629   __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_indent_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 792, __pyx_L1_error)
17630   __Pyx_GOTREF(__pyx_t_2);
17631   __pyx_t_3 = NULL;
17632   if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
17633     __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
17634     if (likely(__pyx_t_3)) {
17635       PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
17636       __Pyx_INCREF(__pyx_t_3);
17637       __Pyx_INCREF(function);
17638       __Pyx_DECREF_SET(__pyx_t_2, function);
17639     }
17640   }
17641   __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
17642   __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
17643   if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 792, __pyx_L1_error)
17644   __Pyx_GOTREF(__pyx_t_1);
17645   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
17646   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
17647 
17648   /* "Cython/Compiler/Visitor.py":793
17649  *         self._print_node(node)
17650  *         self.indent()
17651  *         line = node.pos[1]             # <<<<<<<<<<<<<<
17652  *         if self._line_range is None or self._line_range[0] <= line <= self._line_range[1]:
17653  *             print("%s- %s: %s" % (self._indent, 'arg', self.repr_of(node.arg)))
17654  */
17655   __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_pos); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 793, __pyx_L1_error)
17656   __Pyx_GOTREF(__pyx_t_1);
17657   __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_1, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 793, __pyx_L1_error)
17658   __Pyx_GOTREF(__pyx_t_2);
17659   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
17660   __pyx_v_line = __pyx_t_2;
17661   __pyx_t_2 = 0;
17662 
17663   /* "Cython/Compiler/Visitor.py":794
17664  *         self.indent()
17665  *         line = node.pos[1]
17666  *         if self._line_range is None or self._line_range[0] <= line <= self._line_range[1]:             # <<<<<<<<<<<<<<
17667  *             print("%s- %s: %s" % (self._indent, 'arg', self.repr_of(node.arg)))
17668  *         self.indent()
17669  */
17670   __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_line_range); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 794, __pyx_L1_error)
17671   __Pyx_GOTREF(__pyx_t_2);
17672   __pyx_t_5 = (__pyx_t_2 == Py_None);
17673   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
17674   __pyx_t_6 = (__pyx_t_5 != 0);
17675   if (!__pyx_t_6) {
17676   } else {
17677     __pyx_t_4 = __pyx_t_6;
17678     goto __pyx_L4_bool_binop_done;
17679   }
17680   __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_line_range); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 794, __pyx_L1_error)
17681   __Pyx_GOTREF(__pyx_t_2);
17682   __pyx_t_1 = __Pyx_GetItemInt(__pyx_t_2, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 794, __pyx_L1_error)
17683   __Pyx_GOTREF(__pyx_t_1);
17684   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
17685   __pyx_t_2 = PyObject_RichCompare(__pyx_t_1, __pyx_v_line, Py_LE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 794, __pyx_L1_error)
17686   if (__Pyx_PyObject_IsTrue(__pyx_t_2)) {
17687     __Pyx_DECREF(__pyx_t_2);
17688     __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_line_range); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 794, __pyx_L1_error)
17689     __Pyx_GOTREF(__pyx_t_3);
17690     __pyx_t_7 = __Pyx_GetItemInt(__pyx_t_3, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 794, __pyx_L1_error)
17691     __Pyx_GOTREF(__pyx_t_7);
17692     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
17693     __pyx_t_2 = PyObject_RichCompare(__pyx_v_line, __pyx_t_7, Py_LE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 794, __pyx_L1_error)
17694     __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
17695   }
17696   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
17697   __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 794, __pyx_L1_error)
17698   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
17699   __pyx_t_4 = __pyx_t_6;
17700   __pyx_L4_bool_binop_done:;
17701   if (__pyx_t_4) {
17702 
17703     /* "Cython/Compiler/Visitor.py":795
17704  *         line = node.pos[1]
17705  *         if self._line_range is None or self._line_range[0] <= line <= self._line_range[1]:
17706  *             print("%s- %s: %s" % (self._indent, 'arg', self.repr_of(node.arg)))             # <<<<<<<<<<<<<<
17707  *         self.indent()
17708  *         self.visitchildren(node.arg)
17709  */
17710     __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 795, __pyx_L1_error)
17711     __Pyx_GOTREF(__pyx_t_2);
17712     __pyx_t_8 = 0;
17713     __pyx_t_9 = 127;
17714     __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_indent); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 795, __pyx_L1_error)
17715     __Pyx_GOTREF(__pyx_t_1);
17716     __pyx_t_7 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Unicode(__pyx_t_1), __pyx_empty_unicode); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 795, __pyx_L1_error)
17717     __Pyx_GOTREF(__pyx_t_7);
17718     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
17719     __pyx_t_9 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_7) > __pyx_t_9) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_7) : __pyx_t_9;
17720     __pyx_t_8 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_7);
17721     __Pyx_GIVEREF(__pyx_t_7);
17722     PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_7);
17723     __pyx_t_7 = 0;
17724     __Pyx_INCREF(__pyx_kp_u_arg_2);
17725     __pyx_t_8 += 7;
17726     __Pyx_GIVEREF(__pyx_kp_u_arg_2);
17727     PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_kp_u_arg_2);
17728     __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_repr_of); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 795, __pyx_L1_error)
17729     __Pyx_GOTREF(__pyx_t_1);
17730     __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_arg); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 795, __pyx_L1_error)
17731     __Pyx_GOTREF(__pyx_t_3);
17732     __pyx_t_10 = NULL;
17733     if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) {
17734       __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_1);
17735       if (likely(__pyx_t_10)) {
17736         PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
17737         __Pyx_INCREF(__pyx_t_10);
17738         __Pyx_INCREF(function);
17739         __Pyx_DECREF_SET(__pyx_t_1, function);
17740       }
17741     }
17742     __pyx_t_7 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_10, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_3);
17743     __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
17744     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
17745     if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 795, __pyx_L1_error)
17746     __Pyx_GOTREF(__pyx_t_7);
17747     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
17748     __pyx_t_1 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Unicode(__pyx_t_7), __pyx_empty_unicode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 795, __pyx_L1_error)
17749     __Pyx_GOTREF(__pyx_t_1);
17750     __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
17751     __pyx_t_9 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_1) > __pyx_t_9) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_1) : __pyx_t_9;
17752     __pyx_t_8 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_1);
17753     __Pyx_GIVEREF(__pyx_t_1);
17754     PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_t_1);
17755     __pyx_t_1 = 0;
17756     __pyx_t_1 = __Pyx_PyUnicode_Join(__pyx_t_2, 3, __pyx_t_8, __pyx_t_9); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 795, __pyx_L1_error)
17757     __Pyx_GOTREF(__pyx_t_1);
17758     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
17759     __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_builtin_print, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 795, __pyx_L1_error)
17760     __Pyx_GOTREF(__pyx_t_2);
17761     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
17762     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
17763 
17764     /* "Cython/Compiler/Visitor.py":794
17765  *         self.indent()
17766  *         line = node.pos[1]
17767  *         if self._line_range is None or self._line_range[0] <= line <= self._line_range[1]:             # <<<<<<<<<<<<<<
17768  *             print("%s- %s: %s" % (self._indent, 'arg', self.repr_of(node.arg)))
17769  *         self.indent()
17770  */
17771   }
17772 
17773   /* "Cython/Compiler/Visitor.py":796
17774  *         if self._line_range is None or self._line_range[0] <= line <= self._line_range[1]:
17775  *             print("%s- %s: %s" % (self._indent, 'arg', self.repr_of(node.arg)))
17776  *         self.indent()             # <<<<<<<<<<<<<<
17777  *         self.visitchildren(node.arg)
17778  *         self.unindent()
17779  */
17780   __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_indent_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 796, __pyx_L1_error)
17781   __Pyx_GOTREF(__pyx_t_1);
17782   __pyx_t_7 = NULL;
17783   if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) {
17784     __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_1);
17785     if (likely(__pyx_t_7)) {
17786       PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
17787       __Pyx_INCREF(__pyx_t_7);
17788       __Pyx_INCREF(function);
17789       __Pyx_DECREF_SET(__pyx_t_1, function);
17790     }
17791   }
17792   __pyx_t_2 = (__pyx_t_7) ? __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_7) : __Pyx_PyObject_CallNoArg(__pyx_t_1);
17793   __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
17794   if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 796, __pyx_L1_error)
17795   __Pyx_GOTREF(__pyx_t_2);
17796   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
17797   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
17798 
17799   /* "Cython/Compiler/Visitor.py":797
17800  *             print("%s- %s: %s" % (self._indent, 'arg', self.repr_of(node.arg)))
17801  *         self.indent()
17802  *         self.visitchildren(node.arg)             # <<<<<<<<<<<<<<
17803  *         self.unindent()
17804  *         self.unindent()
17805  */
17806   __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_visitchildren); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 797, __pyx_L1_error)
17807   __Pyx_GOTREF(__pyx_t_1);
17808   __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_arg); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 797, __pyx_L1_error)
17809   __Pyx_GOTREF(__pyx_t_7);
17810   __pyx_t_3 = NULL;
17811   if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) {
17812     __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_1);
17813     if (likely(__pyx_t_3)) {
17814       PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
17815       __Pyx_INCREF(__pyx_t_3);
17816       __Pyx_INCREF(function);
17817       __Pyx_DECREF_SET(__pyx_t_1, function);
17818     }
17819   }
17820   __pyx_t_2 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_3, __pyx_t_7) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_7);
17821   __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
17822   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
17823   if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 797, __pyx_L1_error)
17824   __Pyx_GOTREF(__pyx_t_2);
17825   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
17826   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
17827 
17828   /* "Cython/Compiler/Visitor.py":798
17829  *         self.indent()
17830  *         self.visitchildren(node.arg)
17831  *         self.unindent()             # <<<<<<<<<<<<<<
17832  *         self.unindent()
17833  *         return node
17834  */
17835   __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_unindent); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 798, __pyx_L1_error)
17836   __Pyx_GOTREF(__pyx_t_1);
17837   __pyx_t_7 = NULL;
17838   if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) {
17839     __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_1);
17840     if (likely(__pyx_t_7)) {
17841       PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
17842       __Pyx_INCREF(__pyx_t_7);
17843       __Pyx_INCREF(function);
17844       __Pyx_DECREF_SET(__pyx_t_1, function);
17845     }
17846   }
17847   __pyx_t_2 = (__pyx_t_7) ? __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_7) : __Pyx_PyObject_CallNoArg(__pyx_t_1);
17848   __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
17849   if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 798, __pyx_L1_error)
17850   __Pyx_GOTREF(__pyx_t_2);
17851   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
17852   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
17853 
17854   /* "Cython/Compiler/Visitor.py":799
17855  *         self.visitchildren(node.arg)
17856  *         self.unindent()
17857  *         self.unindent()             # <<<<<<<<<<<<<<
17858  *         return node
17859  *
17860  */
17861   __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_unindent); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 799, __pyx_L1_error)
17862   __Pyx_GOTREF(__pyx_t_1);
17863   __pyx_t_7 = NULL;
17864   if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) {
17865     __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_1);
17866     if (likely(__pyx_t_7)) {
17867       PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
17868       __Pyx_INCREF(__pyx_t_7);
17869       __Pyx_INCREF(function);
17870       __Pyx_DECREF_SET(__pyx_t_1, function);
17871     }
17872   }
17873   __pyx_t_2 = (__pyx_t_7) ? __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_7) : __Pyx_PyObject_CallNoArg(__pyx_t_1);
17874   __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
17875   if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 799, __pyx_L1_error)
17876   __Pyx_GOTREF(__pyx_t_2);
17877   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
17878   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
17879 
17880   /* "Cython/Compiler/Visitor.py":800
17881  *         self.unindent()
17882  *         self.unindent()
17883  *         return node             # <<<<<<<<<<<<<<
17884  *
17885  *     def _print_node(self, node):
17886  */
17887   __Pyx_XDECREF(__pyx_r);
17888   __Pyx_INCREF(__pyx_v_node);
17889   __pyx_r = __pyx_v_node;
17890   goto __pyx_L0;
17891 
17892   /* "Cython/Compiler/Visitor.py":790
17893  *         return node
17894  *
17895  *     def visit_CloneNode(self, node):             # <<<<<<<<<<<<<<
17896  *         self._print_node(node)
17897  *         self.indent()
17898  */
17899 
17900   /* function exit code */
17901   __pyx_L1_error:;
17902   __Pyx_XDECREF(__pyx_t_1);
17903   __Pyx_XDECREF(__pyx_t_2);
17904   __Pyx_XDECREF(__pyx_t_3);
17905   __Pyx_XDECREF(__pyx_t_7);
17906   __Pyx_XDECREF(__pyx_t_10);
17907   __Pyx_AddTraceback("Cython.Compiler.Visitor.PrintTree.visit_CloneNode", __pyx_clineno, __pyx_lineno, __pyx_filename);
17908   __pyx_r = NULL;
17909   __pyx_L0:;
17910   __Pyx_XDECREF(__pyx_v_line);
17911   __Pyx_XGIVEREF(__pyx_r);
17912   __Pyx_RefNannyFinishContext();
17913   return __pyx_r;
17914 }
17915 
17916 /* "Cython/Compiler/Visitor.py":802
17917  *         return node
17918  *
17919  *     def _print_node(self, node):             # <<<<<<<<<<<<<<
17920  *         line = node.pos[1]
17921  *         if self._line_range is None or self._line_range[0] <= line <= self._line_range[1]:
17922  */
17923 
17924 /* Python wrapper */
17925 static PyObject *__pyx_pw_6Cython_8Compiler_7Visitor_9PrintTree_13_print_node(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
17926 static PyMethodDef __pyx_mdef_6Cython_8Compiler_7Visitor_9PrintTree_13_print_node = {"_print_node", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6Cython_8Compiler_7Visitor_9PrintTree_13_print_node, METH_VARARGS|METH_KEYWORDS, 0};
__pyx_pw_6Cython_8Compiler_7Visitor_9PrintTree_13_print_node(PyObject * __pyx_self,PyObject * __pyx_args,PyObject * __pyx_kwds)17927 static PyObject *__pyx_pw_6Cython_8Compiler_7Visitor_9PrintTree_13_print_node(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
17928   PyObject *__pyx_v_self = 0;
17929   PyObject *__pyx_v_node = 0;
17930   int __pyx_lineno = 0;
17931   const char *__pyx_filename = NULL;
17932   int __pyx_clineno = 0;
17933   PyObject *__pyx_r = 0;
17934   __Pyx_RefNannyDeclarations
17935   __Pyx_RefNannySetupContext("_print_node (wrapper)", 0);
17936   {
17937     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_node,0};
17938     PyObject* values[2] = {0,0};
17939     if (unlikely(__pyx_kwds)) {
17940       Py_ssize_t kw_args;
17941       const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
17942       switch (pos_args) {
17943         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
17944         CYTHON_FALLTHROUGH;
17945         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
17946         CYTHON_FALLTHROUGH;
17947         case  0: break;
17948         default: goto __pyx_L5_argtuple_error;
17949       }
17950       kw_args = PyDict_Size(__pyx_kwds);
17951       switch (pos_args) {
17952         case  0:
17953         if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
17954         else goto __pyx_L5_argtuple_error;
17955         CYTHON_FALLTHROUGH;
17956         case  1:
17957         if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_node)) != 0)) kw_args--;
17958         else {
17959           __Pyx_RaiseArgtupleInvalid("_print_node", 1, 2, 2, 1); __PYX_ERR(0, 802, __pyx_L3_error)
17960         }
17961       }
17962       if (unlikely(kw_args > 0)) {
17963         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "_print_node") < 0)) __PYX_ERR(0, 802, __pyx_L3_error)
17964       }
17965     } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
17966       goto __pyx_L5_argtuple_error;
17967     } else {
17968       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
17969       values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
17970     }
17971     __pyx_v_self = values[0];
17972     __pyx_v_node = values[1];
17973   }
17974   goto __pyx_L4_argument_unpacking_done;
17975   __pyx_L5_argtuple_error:;
17976   __Pyx_RaiseArgtupleInvalid("_print_node", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 802, __pyx_L3_error)
17977   __pyx_L3_error:;
17978   __Pyx_AddTraceback("Cython.Compiler.Visitor.PrintTree._print_node", __pyx_clineno, __pyx_lineno, __pyx_filename);
17979   __Pyx_RefNannyFinishContext();
17980   return NULL;
17981   __pyx_L4_argument_unpacking_done:;
17982   __pyx_r = __pyx_pf_6Cython_8Compiler_7Visitor_9PrintTree_12_print_node(__pyx_self, __pyx_v_self, __pyx_v_node);
17983 
17984   /* function exit code */
17985   __Pyx_RefNannyFinishContext();
17986   return __pyx_r;
17987 }
17988 
__pyx_pf_6Cython_8Compiler_7Visitor_9PrintTree_12_print_node(CYTHON_UNUSED PyObject * __pyx_self,PyObject * __pyx_v_self,PyObject * __pyx_v_node)17989 static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_9PrintTree_12_print_node(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_node) {
17990   PyObject *__pyx_v_line = NULL;
17991   PyObject *__pyx_v_name = NULL;
17992   CYTHON_UNUSED PyObject *__pyx_v_parent = NULL;
17993   PyObject *__pyx_v_attr = NULL;
17994   PyObject *__pyx_v_idx = NULL;
17995   PyObject *__pyx_r = NULL;
17996   __Pyx_RefNannyDeclarations
17997   PyObject *__pyx_t_1 = NULL;
17998   PyObject *__pyx_t_2 = NULL;
17999   int __pyx_t_3;
18000   int __pyx_t_4;
18001   int __pyx_t_5;
18002   PyObject *__pyx_t_6 = NULL;
18003   PyObject *__pyx_t_7 = NULL;
18004   Py_ssize_t __pyx_t_8;
18005   PyObject *__pyx_t_9 = NULL;
18006   PyObject *(*__pyx_t_10)(PyObject *);
18007   Py_UCS4 __pyx_t_11;
18008   int __pyx_lineno = 0;
18009   const char *__pyx_filename = NULL;
18010   int __pyx_clineno = 0;
18011   __Pyx_RefNannySetupContext("_print_node", 0);
18012 
18013   /* "Cython/Compiler/Visitor.py":803
18014  *
18015  *     def _print_node(self, node):
18016  *         line = node.pos[1]             # <<<<<<<<<<<<<<
18017  *         if self._line_range is None or self._line_range[0] <= line <= self._line_range[1]:
18018  *             if len(self.access_path) == 0:
18019  */
18020   __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_pos); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 803, __pyx_L1_error)
18021   __Pyx_GOTREF(__pyx_t_1);
18022   __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_1, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 803, __pyx_L1_error)
18023   __Pyx_GOTREF(__pyx_t_2);
18024   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
18025   __pyx_v_line = __pyx_t_2;
18026   __pyx_t_2 = 0;
18027 
18028   /* "Cython/Compiler/Visitor.py":804
18029  *     def _print_node(self, node):
18030  *         line = node.pos[1]
18031  *         if self._line_range is None or self._line_range[0] <= line <= self._line_range[1]:             # <<<<<<<<<<<<<<
18032  *             if len(self.access_path) == 0:
18033  *                 name = "(root)"
18034  */
18035   __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_line_range); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 804, __pyx_L1_error)
18036   __Pyx_GOTREF(__pyx_t_2);
18037   __pyx_t_4 = (__pyx_t_2 == Py_None);
18038   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
18039   __pyx_t_5 = (__pyx_t_4 != 0);
18040   if (!__pyx_t_5) {
18041   } else {
18042     __pyx_t_3 = __pyx_t_5;
18043     goto __pyx_L4_bool_binop_done;
18044   }
18045   __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_line_range); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 804, __pyx_L1_error)
18046   __Pyx_GOTREF(__pyx_t_2);
18047   __pyx_t_1 = __Pyx_GetItemInt(__pyx_t_2, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 804, __pyx_L1_error)
18048   __Pyx_GOTREF(__pyx_t_1);
18049   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
18050   __pyx_t_2 = PyObject_RichCompare(__pyx_t_1, __pyx_v_line, Py_LE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 804, __pyx_L1_error)
18051   if (__Pyx_PyObject_IsTrue(__pyx_t_2)) {
18052     __Pyx_DECREF(__pyx_t_2);
18053     __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_line_range); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 804, __pyx_L1_error)
18054     __Pyx_GOTREF(__pyx_t_6);
18055     __pyx_t_7 = __Pyx_GetItemInt(__pyx_t_6, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 804, __pyx_L1_error)
18056     __Pyx_GOTREF(__pyx_t_7);
18057     __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
18058     __pyx_t_2 = PyObject_RichCompare(__pyx_v_line, __pyx_t_7, Py_LE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 804, __pyx_L1_error)
18059     __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
18060   }
18061   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
18062   __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 804, __pyx_L1_error)
18063   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
18064   __pyx_t_3 = __pyx_t_5;
18065   __pyx_L4_bool_binop_done:;
18066   if (__pyx_t_3) {
18067 
18068     /* "Cython/Compiler/Visitor.py":805
18069  *         line = node.pos[1]
18070  *         if self._line_range is None or self._line_range[0] <= line <= self._line_range[1]:
18071  *             if len(self.access_path) == 0:             # <<<<<<<<<<<<<<
18072  *                 name = "(root)"
18073  *             else:
18074  */
18075     __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_access_path); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 805, __pyx_L1_error)
18076     __Pyx_GOTREF(__pyx_t_2);
18077     __pyx_t_8 = PyObject_Length(__pyx_t_2); if (unlikely(__pyx_t_8 == ((Py_ssize_t)-1))) __PYX_ERR(0, 805, __pyx_L1_error)
18078     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
18079     __pyx_t_3 = ((__pyx_t_8 == 0) != 0);
18080     if (__pyx_t_3) {
18081 
18082       /* "Cython/Compiler/Visitor.py":806
18083  *         if self._line_range is None or self._line_range[0] <= line <= self._line_range[1]:
18084  *             if len(self.access_path) == 0:
18085  *                 name = "(root)"             # <<<<<<<<<<<<<<
18086  *             else:
18087  *                 parent, attr, idx = self.access_path[-1]
18088  */
18089       __Pyx_INCREF(__pyx_kp_u_root_2);
18090       __pyx_v_name = __pyx_kp_u_root_2;
18091 
18092       /* "Cython/Compiler/Visitor.py":805
18093  *         line = node.pos[1]
18094  *         if self._line_range is None or self._line_range[0] <= line <= self._line_range[1]:
18095  *             if len(self.access_path) == 0:             # <<<<<<<<<<<<<<
18096  *                 name = "(root)"
18097  *             else:
18098  */
18099       goto __pyx_L6;
18100     }
18101 
18102     /* "Cython/Compiler/Visitor.py":808
18103  *                 name = "(root)"
18104  *             else:
18105  *                 parent, attr, idx = self.access_path[-1]             # <<<<<<<<<<<<<<
18106  *                 if idx is not None:
18107  *                     name = "%s[%d]" % (attr, idx)
18108  */
18109     /*else*/ {
18110       __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_access_path); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 808, __pyx_L1_error)
18111       __Pyx_GOTREF(__pyx_t_2);
18112       __pyx_t_1 = __Pyx_GetItemInt(__pyx_t_2, -1L, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 808, __pyx_L1_error)
18113       __Pyx_GOTREF(__pyx_t_1);
18114       __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
18115       if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) {
18116         PyObject* sequence = __pyx_t_1;
18117         Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
18118         if (unlikely(size != 3)) {
18119           if (size > 3) __Pyx_RaiseTooManyValuesError(3);
18120           else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
18121           __PYX_ERR(0, 808, __pyx_L1_error)
18122         }
18123         #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
18124         if (likely(PyTuple_CheckExact(sequence))) {
18125           __pyx_t_2 = PyTuple_GET_ITEM(sequence, 0);
18126           __pyx_t_7 = PyTuple_GET_ITEM(sequence, 1);
18127           __pyx_t_6 = PyTuple_GET_ITEM(sequence, 2);
18128         } else {
18129           __pyx_t_2 = PyList_GET_ITEM(sequence, 0);
18130           __pyx_t_7 = PyList_GET_ITEM(sequence, 1);
18131           __pyx_t_6 = PyList_GET_ITEM(sequence, 2);
18132         }
18133         __Pyx_INCREF(__pyx_t_2);
18134         __Pyx_INCREF(__pyx_t_7);
18135         __Pyx_INCREF(__pyx_t_6);
18136         #else
18137         __pyx_t_2 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 808, __pyx_L1_error)
18138         __Pyx_GOTREF(__pyx_t_2);
18139         __pyx_t_7 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 808, __pyx_L1_error)
18140         __Pyx_GOTREF(__pyx_t_7);
18141         __pyx_t_6 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 808, __pyx_L1_error)
18142         __Pyx_GOTREF(__pyx_t_6);
18143         #endif
18144         __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
18145       } else {
18146         Py_ssize_t index = -1;
18147         __pyx_t_9 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 808, __pyx_L1_error)
18148         __Pyx_GOTREF(__pyx_t_9);
18149         __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
18150         __pyx_t_10 = Py_TYPE(__pyx_t_9)->tp_iternext;
18151         index = 0; __pyx_t_2 = __pyx_t_10(__pyx_t_9); if (unlikely(!__pyx_t_2)) goto __pyx_L7_unpacking_failed;
18152         __Pyx_GOTREF(__pyx_t_2);
18153         index = 1; __pyx_t_7 = __pyx_t_10(__pyx_t_9); if (unlikely(!__pyx_t_7)) goto __pyx_L7_unpacking_failed;
18154         __Pyx_GOTREF(__pyx_t_7);
18155         index = 2; __pyx_t_6 = __pyx_t_10(__pyx_t_9); if (unlikely(!__pyx_t_6)) goto __pyx_L7_unpacking_failed;
18156         __Pyx_GOTREF(__pyx_t_6);
18157         if (__Pyx_IternextUnpackEndCheck(__pyx_t_10(__pyx_t_9), 3) < 0) __PYX_ERR(0, 808, __pyx_L1_error)
18158         __pyx_t_10 = NULL;
18159         __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
18160         goto __pyx_L8_unpacking_done;
18161         __pyx_L7_unpacking_failed:;
18162         __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
18163         __pyx_t_10 = NULL;
18164         if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
18165         __PYX_ERR(0, 808, __pyx_L1_error)
18166         __pyx_L8_unpacking_done:;
18167       }
18168       __pyx_v_parent = __pyx_t_2;
18169       __pyx_t_2 = 0;
18170       __pyx_v_attr = __pyx_t_7;
18171       __pyx_t_7 = 0;
18172       __pyx_v_idx = __pyx_t_6;
18173       __pyx_t_6 = 0;
18174 
18175       /* "Cython/Compiler/Visitor.py":809
18176  *             else:
18177  *                 parent, attr, idx = self.access_path[-1]
18178  *                 if idx is not None:             # <<<<<<<<<<<<<<
18179  *                     name = "%s[%d]" % (attr, idx)
18180  *                 else:
18181  */
18182       __pyx_t_3 = (__pyx_v_idx != Py_None);
18183       __pyx_t_5 = (__pyx_t_3 != 0);
18184       if (__pyx_t_5) {
18185 
18186         /* "Cython/Compiler/Visitor.py":810
18187  *                 parent, attr, idx = self.access_path[-1]
18188  *                 if idx is not None:
18189  *                     name = "%s[%d]" % (attr, idx)             # <<<<<<<<<<<<<<
18190  *                 else:
18191  *                     name = attr
18192  */
18193         __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 810, __pyx_L1_error)
18194         __Pyx_GOTREF(__pyx_t_1);
18195         __pyx_t_8 = 0;
18196         __pyx_t_11 = 127;
18197         __pyx_t_6 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Unicode(__pyx_v_attr), __pyx_empty_unicode); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 810, __pyx_L1_error)
18198         __Pyx_GOTREF(__pyx_t_6);
18199         __pyx_t_11 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_6) > __pyx_t_11) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_6) : __pyx_t_11;
18200         __pyx_t_8 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_6);
18201         __Pyx_GIVEREF(__pyx_t_6);
18202         PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_6);
18203         __pyx_t_6 = 0;
18204         __Pyx_INCREF(__pyx_kp_u__15);
18205         __pyx_t_8 += 1;
18206         __Pyx_GIVEREF(__pyx_kp_u__15);
18207         PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_kp_u__15);
18208         __pyx_t_6 = __Pyx_PyObject_FormatAndDecref(__Pyx_PyNumber_IntOrLong(__pyx_v_idx), __pyx_n_u_d_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 810, __pyx_L1_error)
18209         __Pyx_GOTREF(__pyx_t_6);
18210         __pyx_t_11 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_6) > __pyx_t_11) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_6) : __pyx_t_11;
18211         __pyx_t_8 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_6);
18212         __Pyx_GIVEREF(__pyx_t_6);
18213         PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_6);
18214         __pyx_t_6 = 0;
18215         __Pyx_INCREF(__pyx_kp_u__16);
18216         __pyx_t_8 += 1;
18217         __Pyx_GIVEREF(__pyx_kp_u__16);
18218         PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_kp_u__16);
18219         __pyx_t_6 = __Pyx_PyUnicode_Join(__pyx_t_1, 4, __pyx_t_8, __pyx_t_11); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 810, __pyx_L1_error)
18220         __Pyx_GOTREF(__pyx_t_6);
18221         __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
18222         __pyx_v_name = __pyx_t_6;
18223         __pyx_t_6 = 0;
18224 
18225         /* "Cython/Compiler/Visitor.py":809
18226  *             else:
18227  *                 parent, attr, idx = self.access_path[-1]
18228  *                 if idx is not None:             # <<<<<<<<<<<<<<
18229  *                     name = "%s[%d]" % (attr, idx)
18230  *                 else:
18231  */
18232         goto __pyx_L9;
18233       }
18234 
18235       /* "Cython/Compiler/Visitor.py":812
18236  *                     name = "%s[%d]" % (attr, idx)
18237  *                 else:
18238  *                     name = attr             # <<<<<<<<<<<<<<
18239  *             print("%s- %s: %s" % (self._indent, name, self.repr_of(node)))
18240  *
18241  */
18242       /*else*/ {
18243         __Pyx_INCREF(__pyx_v_attr);
18244         __pyx_v_name = __pyx_v_attr;
18245       }
18246       __pyx_L9:;
18247     }
18248     __pyx_L6:;
18249 
18250     /* "Cython/Compiler/Visitor.py":813
18251  *                 else:
18252  *                     name = attr
18253  *             print("%s- %s: %s" % (self._indent, name, self.repr_of(node)))             # <<<<<<<<<<<<<<
18254  *
18255  *     def repr_of(self, node):
18256  */
18257     __pyx_t_6 = PyTuple_New(5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 813, __pyx_L1_error)
18258     __Pyx_GOTREF(__pyx_t_6);
18259     __pyx_t_8 = 0;
18260     __pyx_t_11 = 127;
18261     __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_indent); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 813, __pyx_L1_error)
18262     __Pyx_GOTREF(__pyx_t_1);
18263     __pyx_t_7 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Unicode(__pyx_t_1), __pyx_empty_unicode); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 813, __pyx_L1_error)
18264     __Pyx_GOTREF(__pyx_t_7);
18265     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
18266     __pyx_t_11 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_7) > __pyx_t_11) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_7) : __pyx_t_11;
18267     __pyx_t_8 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_7);
18268     __Pyx_GIVEREF(__pyx_t_7);
18269     PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_7);
18270     __pyx_t_7 = 0;
18271     __Pyx_INCREF(__pyx_kp_u__17);
18272     __pyx_t_8 += 2;
18273     __Pyx_GIVEREF(__pyx_kp_u__17);
18274     PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_kp_u__17);
18275     __pyx_t_7 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Unicode(__pyx_v_name), __pyx_empty_unicode); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 813, __pyx_L1_error)
18276     __Pyx_GOTREF(__pyx_t_7);
18277     __pyx_t_11 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_7) > __pyx_t_11) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_7) : __pyx_t_11;
18278     __pyx_t_8 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_7);
18279     __Pyx_GIVEREF(__pyx_t_7);
18280     PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_7);
18281     __pyx_t_7 = 0;
18282     __Pyx_INCREF(__pyx_kp_u__9);
18283     __pyx_t_8 += 2;
18284     __Pyx_GIVEREF(__pyx_kp_u__9);
18285     PyTuple_SET_ITEM(__pyx_t_6, 3, __pyx_kp_u__9);
18286     __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_repr_of); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 813, __pyx_L1_error)
18287     __Pyx_GOTREF(__pyx_t_1);
18288     __pyx_t_2 = NULL;
18289     if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) {
18290       __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_1);
18291       if (likely(__pyx_t_2)) {
18292         PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
18293         __Pyx_INCREF(__pyx_t_2);
18294         __Pyx_INCREF(function);
18295         __Pyx_DECREF_SET(__pyx_t_1, function);
18296       }
18297     }
18298     __pyx_t_7 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_2, __pyx_v_node) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_v_node);
18299     __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
18300     if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 813, __pyx_L1_error)
18301     __Pyx_GOTREF(__pyx_t_7);
18302     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
18303     __pyx_t_1 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Unicode(__pyx_t_7), __pyx_empty_unicode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 813, __pyx_L1_error)
18304     __Pyx_GOTREF(__pyx_t_1);
18305     __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
18306     __pyx_t_11 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_1) > __pyx_t_11) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_1) : __pyx_t_11;
18307     __pyx_t_8 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_1);
18308     __Pyx_GIVEREF(__pyx_t_1);
18309     PyTuple_SET_ITEM(__pyx_t_6, 4, __pyx_t_1);
18310     __pyx_t_1 = 0;
18311     __pyx_t_1 = __Pyx_PyUnicode_Join(__pyx_t_6, 5, __pyx_t_8, __pyx_t_11); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 813, __pyx_L1_error)
18312     __Pyx_GOTREF(__pyx_t_1);
18313     __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
18314     __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_print, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 813, __pyx_L1_error)
18315     __Pyx_GOTREF(__pyx_t_6);
18316     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
18317     __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
18318 
18319     /* "Cython/Compiler/Visitor.py":804
18320  *     def _print_node(self, node):
18321  *         line = node.pos[1]
18322  *         if self._line_range is None or self._line_range[0] <= line <= self._line_range[1]:             # <<<<<<<<<<<<<<
18323  *             if len(self.access_path) == 0:
18324  *                 name = "(root)"
18325  */
18326   }
18327 
18328   /* "Cython/Compiler/Visitor.py":802
18329  *         return node
18330  *
18331  *     def _print_node(self, node):             # <<<<<<<<<<<<<<
18332  *         line = node.pos[1]
18333  *         if self._line_range is None or self._line_range[0] <= line <= self._line_range[1]:
18334  */
18335 
18336   /* function exit code */
18337   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
18338   goto __pyx_L0;
18339   __pyx_L1_error:;
18340   __Pyx_XDECREF(__pyx_t_1);
18341   __Pyx_XDECREF(__pyx_t_2);
18342   __Pyx_XDECREF(__pyx_t_6);
18343   __Pyx_XDECREF(__pyx_t_7);
18344   __Pyx_XDECREF(__pyx_t_9);
18345   __Pyx_AddTraceback("Cython.Compiler.Visitor.PrintTree._print_node", __pyx_clineno, __pyx_lineno, __pyx_filename);
18346   __pyx_r = NULL;
18347   __pyx_L0:;
18348   __Pyx_XDECREF(__pyx_v_line);
18349   __Pyx_XDECREF(__pyx_v_name);
18350   __Pyx_XDECREF(__pyx_v_parent);
18351   __Pyx_XDECREF(__pyx_v_attr);
18352   __Pyx_XDECREF(__pyx_v_idx);
18353   __Pyx_XGIVEREF(__pyx_r);
18354   __Pyx_RefNannyFinishContext();
18355   return __pyx_r;
18356 }
18357 
18358 /* "Cython/Compiler/Visitor.py":815
18359  *             print("%s- %s: %s" % (self._indent, name, self.repr_of(node)))
18360  *
18361  *     def repr_of(self, node):             # <<<<<<<<<<<<<<
18362  *         if node is None:
18363  *             return "(none)"
18364  */
18365 
18366 /* Python wrapper */
18367 static PyObject *__pyx_pw_6Cython_8Compiler_7Visitor_9PrintTree_15repr_of(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
18368 static PyMethodDef __pyx_mdef_6Cython_8Compiler_7Visitor_9PrintTree_15repr_of = {"repr_of", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6Cython_8Compiler_7Visitor_9PrintTree_15repr_of, METH_VARARGS|METH_KEYWORDS, 0};
__pyx_pw_6Cython_8Compiler_7Visitor_9PrintTree_15repr_of(PyObject * __pyx_self,PyObject * __pyx_args,PyObject * __pyx_kwds)18369 static PyObject *__pyx_pw_6Cython_8Compiler_7Visitor_9PrintTree_15repr_of(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
18370   CYTHON_UNUSED PyObject *__pyx_v_self = 0;
18371   PyObject *__pyx_v_node = 0;
18372   int __pyx_lineno = 0;
18373   const char *__pyx_filename = NULL;
18374   int __pyx_clineno = 0;
18375   PyObject *__pyx_r = 0;
18376   __Pyx_RefNannyDeclarations
18377   __Pyx_RefNannySetupContext("repr_of (wrapper)", 0);
18378   {
18379     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_node,0};
18380     PyObject* values[2] = {0,0};
18381     if (unlikely(__pyx_kwds)) {
18382       Py_ssize_t kw_args;
18383       const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
18384       switch (pos_args) {
18385         case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
18386         CYTHON_FALLTHROUGH;
18387         case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
18388         CYTHON_FALLTHROUGH;
18389         case  0: break;
18390         default: goto __pyx_L5_argtuple_error;
18391       }
18392       kw_args = PyDict_Size(__pyx_kwds);
18393       switch (pos_args) {
18394         case  0:
18395         if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
18396         else goto __pyx_L5_argtuple_error;
18397         CYTHON_FALLTHROUGH;
18398         case  1:
18399         if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_node)) != 0)) kw_args--;
18400         else {
18401           __Pyx_RaiseArgtupleInvalid("repr_of", 1, 2, 2, 1); __PYX_ERR(0, 815, __pyx_L3_error)
18402         }
18403       }
18404       if (unlikely(kw_args > 0)) {
18405         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "repr_of") < 0)) __PYX_ERR(0, 815, __pyx_L3_error)
18406       }
18407     } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
18408       goto __pyx_L5_argtuple_error;
18409     } else {
18410       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
18411       values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
18412     }
18413     __pyx_v_self = values[0];
18414     __pyx_v_node = values[1];
18415   }
18416   goto __pyx_L4_argument_unpacking_done;
18417   __pyx_L5_argtuple_error:;
18418   __Pyx_RaiseArgtupleInvalid("repr_of", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 815, __pyx_L3_error)
18419   __pyx_L3_error:;
18420   __Pyx_AddTraceback("Cython.Compiler.Visitor.PrintTree.repr_of", __pyx_clineno, __pyx_lineno, __pyx_filename);
18421   __Pyx_RefNannyFinishContext();
18422   return NULL;
18423   __pyx_L4_argument_unpacking_done:;
18424   __pyx_r = __pyx_pf_6Cython_8Compiler_7Visitor_9PrintTree_14repr_of(__pyx_self, __pyx_v_self, __pyx_v_node);
18425 
18426   /* function exit code */
18427   __Pyx_RefNannyFinishContext();
18428   return __pyx_r;
18429 }
18430 
__pyx_pf_6Cython_8Compiler_7Visitor_9PrintTree_14repr_of(CYTHON_UNUSED PyObject * __pyx_self,CYTHON_UNUSED PyObject * __pyx_v_self,PyObject * __pyx_v_node)18431 static PyObject *__pyx_pf_6Cython_8Compiler_7Visitor_9PrintTree_14repr_of(CYTHON_UNUSED PyObject *__pyx_self, CYTHON_UNUSED PyObject *__pyx_v_self, PyObject *__pyx_v_node) {
18432   PyObject *__pyx_v_result = NULL;
18433   PyObject *__pyx_v_t = NULL;
18434   PyObject *__pyx_v_pos = NULL;
18435   PyObject *__pyx_v_path = NULL;
18436   PyObject *__pyx_r = NULL;
18437   __Pyx_RefNannyDeclarations
18438   int __pyx_t_1;
18439   int __pyx_t_2;
18440   PyObject *__pyx_t_3 = NULL;
18441   PyObject *__pyx_t_4 = NULL;
18442   Py_ssize_t __pyx_t_5;
18443   Py_UCS4 __pyx_t_6;
18444   PyObject *__pyx_t_7 = NULL;
18445   int __pyx_lineno = 0;
18446   const char *__pyx_filename = NULL;
18447   int __pyx_clineno = 0;
18448   __Pyx_RefNannySetupContext("repr_of", 0);
18449 
18450   /* "Cython/Compiler/Visitor.py":816
18451  *
18452  *     def repr_of(self, node):
18453  *         if node is None:             # <<<<<<<<<<<<<<
18454  *             return "(none)"
18455  *         else:
18456  */
18457   __pyx_t_1 = (__pyx_v_node == Py_None);
18458   __pyx_t_2 = (__pyx_t_1 != 0);
18459   if (__pyx_t_2) {
18460 
18461     /* "Cython/Compiler/Visitor.py":817
18462  *     def repr_of(self, node):
18463  *         if node is None:
18464  *             return "(none)"             # <<<<<<<<<<<<<<
18465  *         else:
18466  *             result = node.__class__.__name__
18467  */
18468     __Pyx_XDECREF(__pyx_r);
18469     __Pyx_INCREF(__pyx_kp_u_none);
18470     __pyx_r = __pyx_kp_u_none;
18471     goto __pyx_L0;
18472 
18473     /* "Cython/Compiler/Visitor.py":816
18474  *
18475  *     def repr_of(self, node):
18476  *         if node is None:             # <<<<<<<<<<<<<<
18477  *             return "(none)"
18478  *         else:
18479  */
18480   }
18481 
18482   /* "Cython/Compiler/Visitor.py":819
18483  *             return "(none)"
18484  *         else:
18485  *             result = node.__class__.__name__             # <<<<<<<<<<<<<<
18486  *             if isinstance(node, ExprNodes.NameNode):
18487  *                 result += "(type=%s, name=\"%s\")" % (repr(node.type), node.name)
18488  */
18489   /*else*/ {
18490     __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_class); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 819, __pyx_L1_error)
18491     __Pyx_GOTREF(__pyx_t_3);
18492     __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_name); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 819, __pyx_L1_error)
18493     __Pyx_GOTREF(__pyx_t_4);
18494     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
18495     __pyx_v_result = __pyx_t_4;
18496     __pyx_t_4 = 0;
18497 
18498     /* "Cython/Compiler/Visitor.py":820
18499  *         else:
18500  *             result = node.__class__.__name__
18501  *             if isinstance(node, ExprNodes.NameNode):             # <<<<<<<<<<<<<<
18502  *                 result += "(type=%s, name=\"%s\")" % (repr(node.type), node.name)
18503  *             elif isinstance(node, Nodes.DefNode):
18504  */
18505     __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_ExprNodes); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 820, __pyx_L1_error)
18506     __Pyx_GOTREF(__pyx_t_4);
18507     __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_NameNode); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 820, __pyx_L1_error)
18508     __Pyx_GOTREF(__pyx_t_3);
18509     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
18510     __pyx_t_2 = PyObject_IsInstance(__pyx_v_node, __pyx_t_3); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 820, __pyx_L1_error)
18511     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
18512     __pyx_t_1 = (__pyx_t_2 != 0);
18513     if (__pyx_t_1) {
18514 
18515       /* "Cython/Compiler/Visitor.py":821
18516  *             result = node.__class__.__name__
18517  *             if isinstance(node, ExprNodes.NameNode):
18518  *                 result += "(type=%s, name=\"%s\")" % (repr(node.type), node.name)             # <<<<<<<<<<<<<<
18519  *             elif isinstance(node, Nodes.DefNode):
18520  *                 result += "(name=\"%s\")" % node.name
18521  */
18522       __pyx_t_3 = PyTuple_New(5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 821, __pyx_L1_error)
18523       __Pyx_GOTREF(__pyx_t_3);
18524       __pyx_t_5 = 0;
18525       __pyx_t_6 = 127;
18526       __Pyx_INCREF(__pyx_kp_u_type_2);
18527       __pyx_t_5 += 6;
18528       __Pyx_GIVEREF(__pyx_kp_u_type_2);
18529       PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_kp_u_type_2);
18530       __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_type); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 821, __pyx_L1_error)
18531       __Pyx_GOTREF(__pyx_t_4);
18532       __pyx_t_7 = PyObject_Repr(__pyx_t_4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 821, __pyx_L1_error)
18533       __Pyx_GOTREF(__pyx_t_7);
18534       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
18535       __pyx_t_4 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Unicode(__pyx_t_7), __pyx_empty_unicode); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 821, __pyx_L1_error)
18536       __Pyx_GOTREF(__pyx_t_4);
18537       __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
18538       __pyx_t_6 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_4) > __pyx_t_6) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_4) : __pyx_t_6;
18539       __pyx_t_5 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_4);
18540       __Pyx_GIVEREF(__pyx_t_4);
18541       PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_4);
18542       __pyx_t_4 = 0;
18543       __Pyx_INCREF(__pyx_kp_u_name_3);
18544       __pyx_t_5 += 8;
18545       __Pyx_GIVEREF(__pyx_kp_u_name_3);
18546       PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_kp_u_name_3);
18547       __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_name_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 821, __pyx_L1_error)
18548       __Pyx_GOTREF(__pyx_t_4);
18549       __pyx_t_7 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Unicode(__pyx_t_4), __pyx_empty_unicode); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 821, __pyx_L1_error)
18550       __Pyx_GOTREF(__pyx_t_7);
18551       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
18552       __pyx_t_6 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_7) > __pyx_t_6) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_7) : __pyx_t_6;
18553       __pyx_t_5 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_7);
18554       __Pyx_GIVEREF(__pyx_t_7);
18555       PyTuple_SET_ITEM(__pyx_t_3, 3, __pyx_t_7);
18556       __pyx_t_7 = 0;
18557       __Pyx_INCREF(__pyx_kp_u__18);
18558       __pyx_t_5 += 2;
18559       __Pyx_GIVEREF(__pyx_kp_u__18);
18560       PyTuple_SET_ITEM(__pyx_t_3, 4, __pyx_kp_u__18);
18561       __pyx_t_7 = __Pyx_PyUnicode_Join(__pyx_t_3, 5, __pyx_t_5, __pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 821, __pyx_L1_error)
18562       __Pyx_GOTREF(__pyx_t_7);
18563       __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
18564       __pyx_t_3 = PyNumber_InPlaceAdd(__pyx_v_result, __pyx_t_7); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 821, __pyx_L1_error)
18565       __Pyx_GOTREF(__pyx_t_3);
18566       __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
18567       __Pyx_DECREF_SET(__pyx_v_result, __pyx_t_3);
18568       __pyx_t_3 = 0;
18569 
18570       /* "Cython/Compiler/Visitor.py":820
18571  *         else:
18572  *             result = node.__class__.__name__
18573  *             if isinstance(node, ExprNodes.NameNode):             # <<<<<<<<<<<<<<
18574  *                 result += "(type=%s, name=\"%s\")" % (repr(node.type), node.name)
18575  *             elif isinstance(node, Nodes.DefNode):
18576  */
18577       goto __pyx_L4;
18578     }
18579 
18580     /* "Cython/Compiler/Visitor.py":822
18581  *             if isinstance(node, ExprNodes.NameNode):
18582  *                 result += "(type=%s, name=\"%s\")" % (repr(node.type), node.name)
18583  *             elif isinstance(node, Nodes.DefNode):             # <<<<<<<<<<<<<<
18584  *                 result += "(name=\"%s\")" % node.name
18585  *             elif isinstance(node, ExprNodes.ExprNode):
18586  */
18587     __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_Nodes); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 822, __pyx_L1_error)
18588     __Pyx_GOTREF(__pyx_t_3);
18589     __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_DefNode); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 822, __pyx_L1_error)
18590     __Pyx_GOTREF(__pyx_t_7);
18591     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
18592     __pyx_t_1 = PyObject_IsInstance(__pyx_v_node, __pyx_t_7); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 822, __pyx_L1_error)
18593     __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
18594     __pyx_t_2 = (__pyx_t_1 != 0);
18595     if (__pyx_t_2) {
18596 
18597       /* "Cython/Compiler/Visitor.py":823
18598  *                 result += "(type=%s, name=\"%s\")" % (repr(node.type), node.name)
18599  *             elif isinstance(node, Nodes.DefNode):
18600  *                 result += "(name=\"%s\")" % node.name             # <<<<<<<<<<<<<<
18601  *             elif isinstance(node, ExprNodes.ExprNode):
18602  *                 t = node.type
18603  */
18604       __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_name_2); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 823, __pyx_L1_error)
18605       __Pyx_GOTREF(__pyx_t_7);
18606       __pyx_t_3 = __Pyx_PyUnicode_FormatSafe(__pyx_kp_u_name_s, __pyx_t_7); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 823, __pyx_L1_error)
18607       __Pyx_GOTREF(__pyx_t_3);
18608       __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
18609       __pyx_t_7 = PyNumber_InPlaceAdd(__pyx_v_result, __pyx_t_3); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 823, __pyx_L1_error)
18610       __Pyx_GOTREF(__pyx_t_7);
18611       __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
18612       __Pyx_DECREF_SET(__pyx_v_result, __pyx_t_7);
18613       __pyx_t_7 = 0;
18614 
18615       /* "Cython/Compiler/Visitor.py":822
18616  *             if isinstance(node, ExprNodes.NameNode):
18617  *                 result += "(type=%s, name=\"%s\")" % (repr(node.type), node.name)
18618  *             elif isinstance(node, Nodes.DefNode):             # <<<<<<<<<<<<<<
18619  *                 result += "(name=\"%s\")" % node.name
18620  *             elif isinstance(node, ExprNodes.ExprNode):
18621  */
18622       goto __pyx_L4;
18623     }
18624 
18625     /* "Cython/Compiler/Visitor.py":824
18626  *             elif isinstance(node, Nodes.DefNode):
18627  *                 result += "(name=\"%s\")" % node.name
18628  *             elif isinstance(node, ExprNodes.ExprNode):             # <<<<<<<<<<<<<<
18629  *                 t = node.type
18630  *                 result += "(type=%s)" % repr(t)
18631  */
18632     __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_ExprNodes); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 824, __pyx_L1_error)
18633     __Pyx_GOTREF(__pyx_t_7);
18634     __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_ExprNode); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 824, __pyx_L1_error)
18635     __Pyx_GOTREF(__pyx_t_3);
18636     __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
18637     __pyx_t_2 = PyObject_IsInstance(__pyx_v_node, __pyx_t_3); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 824, __pyx_L1_error)
18638     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
18639     __pyx_t_1 = (__pyx_t_2 != 0);
18640     if (__pyx_t_1) {
18641 
18642       /* "Cython/Compiler/Visitor.py":825
18643  *                 result += "(name=\"%s\")" % node.name
18644  *             elif isinstance(node, ExprNodes.ExprNode):
18645  *                 t = node.type             # <<<<<<<<<<<<<<
18646  *                 result += "(type=%s)" % repr(t)
18647  *             elif node.pos:
18648  */
18649       __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_type); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 825, __pyx_L1_error)
18650       __Pyx_GOTREF(__pyx_t_3);
18651       __pyx_v_t = __pyx_t_3;
18652       __pyx_t_3 = 0;
18653 
18654       /* "Cython/Compiler/Visitor.py":826
18655  *             elif isinstance(node, ExprNodes.ExprNode):
18656  *                 t = node.type
18657  *                 result += "(type=%s)" % repr(t)             # <<<<<<<<<<<<<<
18658  *             elif node.pos:
18659  *                 pos = node.pos
18660  */
18661       __pyx_t_3 = PyObject_Repr(__pyx_v_t); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 826, __pyx_L1_error)
18662       __Pyx_GOTREF(__pyx_t_3);
18663       __pyx_t_7 = __Pyx_PyUnicode_FormatSafe(__pyx_kp_u_type_s, __pyx_t_3); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 826, __pyx_L1_error)
18664       __Pyx_GOTREF(__pyx_t_7);
18665       __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
18666       __pyx_t_3 = PyNumber_InPlaceAdd(__pyx_v_result, __pyx_t_7); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 826, __pyx_L1_error)
18667       __Pyx_GOTREF(__pyx_t_3);
18668       __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
18669       __Pyx_DECREF_SET(__pyx_v_result, __pyx_t_3);
18670       __pyx_t_3 = 0;
18671 
18672       /* "Cython/Compiler/Visitor.py":824
18673  *             elif isinstance(node, Nodes.DefNode):
18674  *                 result += "(name=\"%s\")" % node.name
18675  *             elif isinstance(node, ExprNodes.ExprNode):             # <<<<<<<<<<<<<<
18676  *                 t = node.type
18677  *                 result += "(type=%s)" % repr(t)
18678  */
18679       goto __pyx_L4;
18680     }
18681 
18682     /* "Cython/Compiler/Visitor.py":827
18683  *                 t = node.type
18684  *                 result += "(type=%s)" % repr(t)
18685  *             elif node.pos:             # <<<<<<<<<<<<<<
18686  *                 pos = node.pos
18687  *                 path = pos[0].get_description()
18688  */
18689     __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_pos); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 827, __pyx_L1_error)
18690     __Pyx_GOTREF(__pyx_t_3);
18691     __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 827, __pyx_L1_error)
18692     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
18693     if (__pyx_t_1) {
18694 
18695       /* "Cython/Compiler/Visitor.py":828
18696  *                 result += "(type=%s)" % repr(t)
18697  *             elif node.pos:
18698  *                 pos = node.pos             # <<<<<<<<<<<<<<
18699  *                 path = pos[0].get_description()
18700  *                 if '/' in path:
18701  */
18702       __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_pos); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 828, __pyx_L1_error)
18703       __Pyx_GOTREF(__pyx_t_3);
18704       __pyx_v_pos = __pyx_t_3;
18705       __pyx_t_3 = 0;
18706 
18707       /* "Cython/Compiler/Visitor.py":829
18708  *             elif node.pos:
18709  *                 pos = node.pos
18710  *                 path = pos[0].get_description()             # <<<<<<<<<<<<<<
18711  *                 if '/' in path:
18712  *                     path = path.split('/')[-1]
18713  */
18714       __pyx_t_7 = __Pyx_GetItemInt(__pyx_v_pos, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 829, __pyx_L1_error)
18715       __Pyx_GOTREF(__pyx_t_7);
18716       __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_get_description); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 829, __pyx_L1_error)
18717       __Pyx_GOTREF(__pyx_t_4);
18718       __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
18719       __pyx_t_7 = NULL;
18720       if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
18721         __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_4);
18722         if (likely(__pyx_t_7)) {
18723           PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
18724           __Pyx_INCREF(__pyx_t_7);
18725           __Pyx_INCREF(function);
18726           __Pyx_DECREF_SET(__pyx_t_4, function);
18727         }
18728       }
18729       __pyx_t_3 = (__pyx_t_7) ? __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_7) : __Pyx_PyObject_CallNoArg(__pyx_t_4);
18730       __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
18731       if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 829, __pyx_L1_error)
18732       __Pyx_GOTREF(__pyx_t_3);
18733       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
18734       __pyx_v_path = __pyx_t_3;
18735       __pyx_t_3 = 0;
18736 
18737       /* "Cython/Compiler/Visitor.py":830
18738  *                 pos = node.pos
18739  *                 path = pos[0].get_description()
18740  *                 if '/' in path:             # <<<<<<<<<<<<<<
18741  *                     path = path.split('/')[-1]
18742  *                 if '\\' in path:
18743  */
18744       __pyx_t_1 = (__Pyx_PySequence_ContainsTF(__pyx_kp_u__19, __pyx_v_path, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 830, __pyx_L1_error)
18745       __pyx_t_2 = (__pyx_t_1 != 0);
18746       if (__pyx_t_2) {
18747 
18748         /* "Cython/Compiler/Visitor.py":831
18749  *                 path = pos[0].get_description()
18750  *                 if '/' in path:
18751  *                     path = path.split('/')[-1]             # <<<<<<<<<<<<<<
18752  *                 if '\\' in path:
18753  *                     path = path.split('\\')[-1]
18754  */
18755         __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_path, __pyx_n_s_split); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 831, __pyx_L1_error)
18756         __Pyx_GOTREF(__pyx_t_4);
18757         __pyx_t_7 = NULL;
18758         if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
18759           __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_4);
18760           if (likely(__pyx_t_7)) {
18761             PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
18762             __Pyx_INCREF(__pyx_t_7);
18763             __Pyx_INCREF(function);
18764             __Pyx_DECREF_SET(__pyx_t_4, function);
18765           }
18766         }
18767         __pyx_t_3 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_7, __pyx_kp_u__19) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_kp_u__19);
18768         __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
18769         if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 831, __pyx_L1_error)
18770         __Pyx_GOTREF(__pyx_t_3);
18771         __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
18772         __pyx_t_4 = __Pyx_GetItemInt(__pyx_t_3, -1L, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 831, __pyx_L1_error)
18773         __Pyx_GOTREF(__pyx_t_4);
18774         __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
18775         __Pyx_DECREF_SET(__pyx_v_path, __pyx_t_4);
18776         __pyx_t_4 = 0;
18777 
18778         /* "Cython/Compiler/Visitor.py":830
18779  *                 pos = node.pos
18780  *                 path = pos[0].get_description()
18781  *                 if '/' in path:             # <<<<<<<<<<<<<<
18782  *                     path = path.split('/')[-1]
18783  *                 if '\\' in path:
18784  */
18785       }
18786 
18787       /* "Cython/Compiler/Visitor.py":832
18788  *                 if '/' in path:
18789  *                     path = path.split('/')[-1]
18790  *                 if '\\' in path:             # <<<<<<<<<<<<<<
18791  *                     path = path.split('\\')[-1]
18792  *                 result += "(pos=(%s:%s:%s))" % (path, pos[1], pos[2])
18793  */
18794       __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_kp_u__20, __pyx_v_path, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 832, __pyx_L1_error)
18795       __pyx_t_1 = (__pyx_t_2 != 0);
18796       if (__pyx_t_1) {
18797 
18798         /* "Cython/Compiler/Visitor.py":833
18799  *                     path = path.split('/')[-1]
18800  *                 if '\\' in path:
18801  *                     path = path.split('\\')[-1]             # <<<<<<<<<<<<<<
18802  *                 result += "(pos=(%s:%s:%s))" % (path, pos[1], pos[2])
18803  *
18804  */
18805         __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_path, __pyx_n_s_split); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 833, __pyx_L1_error)
18806         __Pyx_GOTREF(__pyx_t_3);
18807         __pyx_t_7 = NULL;
18808         if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
18809           __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_3);
18810           if (likely(__pyx_t_7)) {
18811             PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
18812             __Pyx_INCREF(__pyx_t_7);
18813             __Pyx_INCREF(function);
18814             __Pyx_DECREF_SET(__pyx_t_3, function);
18815           }
18816         }
18817         __pyx_t_4 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_7, __pyx_kp_u__20) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_kp_u__20);
18818         __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
18819         if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 833, __pyx_L1_error)
18820         __Pyx_GOTREF(__pyx_t_4);
18821         __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
18822         __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_4, -1L, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 833, __pyx_L1_error)
18823         __Pyx_GOTREF(__pyx_t_3);
18824         __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
18825         __Pyx_DECREF_SET(__pyx_v_path, __pyx_t_3);
18826         __pyx_t_3 = 0;
18827 
18828         /* "Cython/Compiler/Visitor.py":832
18829  *                 if '/' in path:
18830  *                     path = path.split('/')[-1]
18831  *                 if '\\' in path:             # <<<<<<<<<<<<<<
18832  *                     path = path.split('\\')[-1]
18833  *                 result += "(pos=(%s:%s:%s))" % (path, pos[1], pos[2])
18834  */
18835       }
18836 
18837       /* "Cython/Compiler/Visitor.py":834
18838  *                 if '\\' in path:
18839  *                     path = path.split('\\')[-1]
18840  *                 result += "(pos=(%s:%s:%s))" % (path, pos[1], pos[2])             # <<<<<<<<<<<<<<
18841  *
18842  *             return result
18843  */
18844       __pyx_t_3 = PyTuple_New(7); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 834, __pyx_L1_error)
18845       __Pyx_GOTREF(__pyx_t_3);
18846       __pyx_t_5 = 0;
18847       __pyx_t_6 = 127;
18848       __Pyx_INCREF(__pyx_kp_u_pos_2);
18849       __pyx_t_5 += 6;
18850       __Pyx_GIVEREF(__pyx_kp_u_pos_2);
18851       PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_kp_u_pos_2);
18852       __pyx_t_4 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Unicode(__pyx_v_path), __pyx_empty_unicode); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 834, __pyx_L1_error)
18853       __Pyx_GOTREF(__pyx_t_4);
18854       __pyx_t_6 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_4) > __pyx_t_6) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_4) : __pyx_t_6;
18855       __pyx_t_5 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_4);
18856       __Pyx_GIVEREF(__pyx_t_4);
18857       PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_4);
18858       __pyx_t_4 = 0;
18859       __Pyx_INCREF(__pyx_kp_u_);
18860       __pyx_t_5 += 1;
18861       __Pyx_GIVEREF(__pyx_kp_u_);
18862       PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_kp_u_);
18863       __pyx_t_4 = __Pyx_GetItemInt(__pyx_v_pos, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 834, __pyx_L1_error)
18864       __Pyx_GOTREF(__pyx_t_4);
18865       __pyx_t_7 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Unicode(__pyx_t_4), __pyx_empty_unicode); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 834, __pyx_L1_error)
18866       __Pyx_GOTREF(__pyx_t_7);
18867       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
18868       __pyx_t_6 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_7) > __pyx_t_6) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_7) : __pyx_t_6;
18869       __pyx_t_5 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_7);
18870       __Pyx_GIVEREF(__pyx_t_7);
18871       PyTuple_SET_ITEM(__pyx_t_3, 3, __pyx_t_7);
18872       __pyx_t_7 = 0;
18873       __Pyx_INCREF(__pyx_kp_u_);
18874       __pyx_t_5 += 1;
18875       __Pyx_GIVEREF(__pyx_kp_u_);
18876       PyTuple_SET_ITEM(__pyx_t_3, 4, __pyx_kp_u_);
18877       __pyx_t_7 = __Pyx_GetItemInt(__pyx_v_pos, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 834, __pyx_L1_error)
18878       __Pyx_GOTREF(__pyx_t_7);
18879       __pyx_t_4 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Unicode(__pyx_t_7), __pyx_empty_unicode); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 834, __pyx_L1_error)
18880       __Pyx_GOTREF(__pyx_t_4);
18881       __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
18882       __pyx_t_6 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_4) > __pyx_t_6) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_4) : __pyx_t_6;
18883       __pyx_t_5 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_4);
18884       __Pyx_GIVEREF(__pyx_t_4);
18885       PyTuple_SET_ITEM(__pyx_t_3, 5, __pyx_t_4);
18886       __pyx_t_4 = 0;
18887       __Pyx_INCREF(__pyx_kp_u__21);
18888       __pyx_t_5 += 2;
18889       __Pyx_GIVEREF(__pyx_kp_u__21);
18890       PyTuple_SET_ITEM(__pyx_t_3, 6, __pyx_kp_u__21);
18891       __pyx_t_4 = __Pyx_PyUnicode_Join(__pyx_t_3, 7, __pyx_t_5, __pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 834, __pyx_L1_error)
18892       __Pyx_GOTREF(__pyx_t_4);
18893       __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
18894       __pyx_t_3 = PyNumber_InPlaceAdd(__pyx_v_result, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 834, __pyx_L1_error)
18895       __Pyx_GOTREF(__pyx_t_3);
18896       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
18897       __Pyx_DECREF_SET(__pyx_v_result, __pyx_t_3);
18898       __pyx_t_3 = 0;
18899 
18900       /* "Cython/Compiler/Visitor.py":827
18901  *                 t = node.type
18902  *                 result += "(type=%s)" % repr(t)
18903  *             elif node.pos:             # <<<<<<<<<<<<<<
18904  *                 pos = node.pos
18905  *                 path = pos[0].get_description()
18906  */
18907     }
18908     __pyx_L4:;
18909 
18910     /* "Cython/Compiler/Visitor.py":836
18911  *                 result += "(pos=(%s:%s:%s))" % (path, pos[1], pos[2])
18912  *
18913  *             return result             # <<<<<<<<<<<<<<
18914  *
18915  * if __name__ == "__main__":
18916  */
18917     __Pyx_XDECREF(__pyx_r);
18918     __Pyx_INCREF(__pyx_v_result);
18919     __pyx_r = __pyx_v_result;
18920     goto __pyx_L0;
18921   }
18922 
18923   /* "Cython/Compiler/Visitor.py":815
18924  *             print("%s- %s: %s" % (self._indent, name, self.repr_of(node)))
18925  *
18926  *     def repr_of(self, node):             # <<<<<<<<<<<<<<
18927  *         if node is None:
18928  *             return "(none)"
18929  */
18930 
18931   /* function exit code */
18932   __pyx_L1_error:;
18933   __Pyx_XDECREF(__pyx_t_3);
18934   __Pyx_XDECREF(__pyx_t_4);
18935   __Pyx_XDECREF(__pyx_t_7);
18936   __Pyx_AddTraceback("Cython.Compiler.Visitor.PrintTree.repr_of", __pyx_clineno, __pyx_lineno, __pyx_filename);
18937   __pyx_r = NULL;
18938   __pyx_L0:;
18939   __Pyx_XDECREF(__pyx_v_result);
18940   __Pyx_XDECREF(__pyx_v_t);
18941   __Pyx_XDECREF(__pyx_v_pos);
18942   __Pyx_XDECREF(__pyx_v_path);
18943   __Pyx_XGIVEREF(__pyx_r);
18944   __Pyx_RefNannyFinishContext();
18945   return __pyx_r;
18946 }
18947 static struct __pyx_vtabstruct_6Cython_8Compiler_7Visitor_TreeVisitor __pyx_vtable_6Cython_8Compiler_7Visitor_TreeVisitor;
18948 
__pyx_tp_new_6Cython_8Compiler_7Visitor_TreeVisitor(PyTypeObject * t,CYTHON_UNUSED PyObject * a,CYTHON_UNUSED PyObject * k)18949 static PyObject *__pyx_tp_new_6Cython_8Compiler_7Visitor_TreeVisitor(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
18950   struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor *p;
18951   PyObject *o;
18952   if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
18953     o = (*t->tp_alloc)(t, 0);
18954   } else {
18955     o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
18956   }
18957   if (unlikely(!o)) return 0;
18958   p = ((struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor *)o);
18959   p->__pyx_vtab = __pyx_vtabptr_6Cython_8Compiler_7Visitor_TreeVisitor;
18960   p->access_path = ((PyObject*)Py_None); Py_INCREF(Py_None);
18961   p->dispatch_table = ((PyObject*)Py_None); Py_INCREF(Py_None);
18962   return o;
18963 }
18964 
__pyx_tp_dealloc_6Cython_8Compiler_7Visitor_TreeVisitor(PyObject * o)18965 static void __pyx_tp_dealloc_6Cython_8Compiler_7Visitor_TreeVisitor(PyObject *o) {
18966   struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor *p = (struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor *)o;
18967   #if CYTHON_USE_TP_FINALIZE
18968   if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) {
18969     if (PyObject_CallFinalizerFromDealloc(o)) return;
18970   }
18971   #endif
18972   PyObject_GC_UnTrack(o);
18973   Py_CLEAR(p->access_path);
18974   Py_CLEAR(p->dispatch_table);
18975   (*Py_TYPE(o)->tp_free)(o);
18976 }
18977 
__pyx_tp_traverse_6Cython_8Compiler_7Visitor_TreeVisitor(PyObject * o,visitproc v,void * a)18978 static int __pyx_tp_traverse_6Cython_8Compiler_7Visitor_TreeVisitor(PyObject *o, visitproc v, void *a) {
18979   int e;
18980   struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor *p = (struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor *)o;
18981   if (p->access_path) {
18982     e = (*v)(p->access_path, a); if (e) return e;
18983   }
18984   if (p->dispatch_table) {
18985     e = (*v)(p->dispatch_table, a); if (e) return e;
18986   }
18987   return 0;
18988 }
18989 
__pyx_tp_clear_6Cython_8Compiler_7Visitor_TreeVisitor(PyObject * o)18990 static int __pyx_tp_clear_6Cython_8Compiler_7Visitor_TreeVisitor(PyObject *o) {
18991   PyObject* tmp;
18992   struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor *p = (struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor *)o;
18993   tmp = ((PyObject*)p->access_path);
18994   p->access_path = ((PyObject*)Py_None); Py_INCREF(Py_None);
18995   Py_XDECREF(tmp);
18996   tmp = ((PyObject*)p->dispatch_table);
18997   p->dispatch_table = ((PyObject*)Py_None); Py_INCREF(Py_None);
18998   Py_XDECREF(tmp);
18999   return 0;
19000 }
19001 
__pyx_getprop_6Cython_8Compiler_7Visitor_11TreeVisitor_access_path(PyObject * o,CYTHON_UNUSED void * x)19002 static PyObject *__pyx_getprop_6Cython_8Compiler_7Visitor_11TreeVisitor_access_path(PyObject *o, CYTHON_UNUSED void *x) {
19003   return __pyx_pw_6Cython_8Compiler_7Visitor_11TreeVisitor_11access_path_1__get__(o);
19004 }
19005 
__pyx_setprop_6Cython_8Compiler_7Visitor_11TreeVisitor_access_path(PyObject * o,PyObject * v,CYTHON_UNUSED void * x)19006 static int __pyx_setprop_6Cython_8Compiler_7Visitor_11TreeVisitor_access_path(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
19007   if (v) {
19008     return __pyx_pw_6Cython_8Compiler_7Visitor_11TreeVisitor_11access_path_3__set__(o, v);
19009   }
19010   else {
19011     return __pyx_pw_6Cython_8Compiler_7Visitor_11TreeVisitor_11access_path_5__del__(o);
19012   }
19013 }
19014 
19015 static PyMethodDef __pyx_methods_6Cython_8Compiler_7Visitor_TreeVisitor[] = {
19016   {"dump_node", (PyCFunction)__pyx_pw_6Cython_8Compiler_7Visitor_11TreeVisitor_3dump_node, METH_O, 0},
19017   {"_find_node_path", (PyCFunction)__pyx_pw_6Cython_8Compiler_7Visitor_11TreeVisitor_5_find_node_path, METH_O, 0},
19018   {0, 0, 0, 0}
19019 };
19020 
19021 static struct PyGetSetDef __pyx_getsets_6Cython_8Compiler_7Visitor_TreeVisitor[] = {
19022   {(char *)"access_path", __pyx_getprop_6Cython_8Compiler_7Visitor_11TreeVisitor_access_path, __pyx_setprop_6Cython_8Compiler_7Visitor_11TreeVisitor_access_path, (char *)0, 0},
19023   {0, 0, 0, 0, 0}
19024 };
19025 
19026 static PyTypeObject __pyx_type_6Cython_8Compiler_7Visitor_TreeVisitor = {
19027   PyVarObject_HEAD_INIT(0, 0)
19028   "Cython.Compiler.Visitor.TreeVisitor", /*tp_name*/
19029   sizeof(struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor), /*tp_basicsize*/
19030   0, /*tp_itemsize*/
19031   __pyx_tp_dealloc_6Cython_8Compiler_7Visitor_TreeVisitor, /*tp_dealloc*/
19032   #if PY_VERSION_HEX < 0x030800b4
19033   0, /*tp_print*/
19034   #endif
19035   #if PY_VERSION_HEX >= 0x030800b4
19036   0, /*tp_vectorcall_offset*/
19037   #endif
19038   0, /*tp_getattr*/
19039   0, /*tp_setattr*/
19040   #if PY_MAJOR_VERSION < 3
19041   0, /*tp_compare*/
19042   #endif
19043   #if PY_MAJOR_VERSION >= 3
19044   0, /*tp_as_async*/
19045   #endif
19046   0, /*tp_repr*/
19047   0, /*tp_as_number*/
19048   0, /*tp_as_sequence*/
19049   0, /*tp_as_mapping*/
19050   0, /*tp_hash*/
19051   0, /*tp_call*/
19052   0, /*tp_str*/
19053   0, /*tp_getattro*/
19054   0, /*tp_setattro*/
19055   0, /*tp_as_buffer*/
19056   Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
19057   "\n    Base class for writing visitors for a Cython tree, contains utilities for\n    recursing such trees using visitors. Each node is\n    expected to have a child_attrs iterable containing the names of attributes\n    containing child nodes or lists of child nodes. Lists are not considered\n    part of the tree structure (i.e. contained nodes are considered direct\n    children of the parent node).\n\n    visit_children visits each of the children of a given node (see the visit_children\n    documentation). When recursing the tree using visit_children, an attribute\n    access_path is maintained which gives information about the current location\n    in the tree as a stack of tuples: (parent_node, attrname, index), representing\n    the node, attribute and optional list index that was taken in each step in the path to\n    the current node.\n\n    Example:\n\n    >>> class SampleNode(object):\n    ...     child_attrs = [\"head\", \"body\"]\n    ...     def __init__(self, value, head=None, body=None):\n    ...         self.value = value\n    ...         self.head = head\n    ...         self.body = body\n    ...     def __repr__(self): return \"SampleNode(%s)\" % self.value\n    ...\n    >>> tree = SampleNode(0, SampleNode(1), [SampleNode(2), SampleNode(3)])\n    >>> class MyVisitor(TreeVisitor):\n    ...     def visit_SampleNode(self, node):\n    ...         print(\"in %s %s\" % (node.value, self.access_path))\n    ...         self.visitchildren(node)\n    ...         print(\"out %s\" % node.value)\n    ...\n    >>> MyVisitor().visit(tree)\n    in 0 []\n    in 1 [(SampleNode(0), 'head', None)]\n    out 1\n    in 2 [(SampleNode(0), 'body', 0)]\n    out 2\n    in 3 [(SampleNode(0), 'body', 1)]\n    out 3\n    out 0\n    ", /*tp_doc*/
19058   __pyx_tp_traverse_6Cython_8Compiler_7Visitor_TreeVisitor, /*tp_traverse*/
19059   __pyx_tp_clear_6Cython_8Compiler_7Visitor_TreeVisitor, /*tp_clear*/
19060   0, /*tp_richcompare*/
19061   0, /*tp_weaklistoffset*/
19062   0, /*tp_iter*/
19063   0, /*tp_iternext*/
19064   __pyx_methods_6Cython_8Compiler_7Visitor_TreeVisitor, /*tp_methods*/
19065   0, /*tp_members*/
19066   __pyx_getsets_6Cython_8Compiler_7Visitor_TreeVisitor, /*tp_getset*/
19067   0, /*tp_base*/
19068   0, /*tp_dict*/
19069   0, /*tp_descr_get*/
19070   0, /*tp_descr_set*/
19071   0, /*tp_dictoffset*/
19072   __pyx_pw_6Cython_8Compiler_7Visitor_11TreeVisitor_1__init__, /*tp_init*/
19073   0, /*tp_alloc*/
19074   __pyx_tp_new_6Cython_8Compiler_7Visitor_TreeVisitor, /*tp_new*/
19075   0, /*tp_free*/
19076   0, /*tp_is_gc*/
19077   0, /*tp_bases*/
19078   0, /*tp_mro*/
19079   0, /*tp_cache*/
19080   0, /*tp_subclasses*/
19081   0, /*tp_weaklist*/
19082   0, /*tp_del*/
19083   0, /*tp_version_tag*/
19084   #if PY_VERSION_HEX >= 0x030400a1
19085   0, /*tp_finalize*/
19086   #endif
19087   #if PY_VERSION_HEX >= 0x030800b1
19088   0, /*tp_vectorcall*/
19089   #endif
19090   #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
19091   0, /*tp_print*/
19092   #endif
19093 };
19094 static struct __pyx_vtabstruct_6Cython_8Compiler_7Visitor_VisitorTransform __pyx_vtable_6Cython_8Compiler_7Visitor_VisitorTransform;
19095 
__pyx_tp_new_6Cython_8Compiler_7Visitor_VisitorTransform(PyTypeObject * t,PyObject * a,PyObject * k)19096 static PyObject *__pyx_tp_new_6Cython_8Compiler_7Visitor_VisitorTransform(PyTypeObject *t, PyObject *a, PyObject *k) {
19097   struct __pyx_obj_6Cython_8Compiler_7Visitor_VisitorTransform *p;
19098   PyObject *o = __pyx_tp_new_6Cython_8Compiler_7Visitor_TreeVisitor(t, a, k);
19099   if (unlikely(!o)) return 0;
19100   p = ((struct __pyx_obj_6Cython_8Compiler_7Visitor_VisitorTransform *)o);
19101   p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_6Cython_8Compiler_7Visitor_TreeVisitor*)__pyx_vtabptr_6Cython_8Compiler_7Visitor_VisitorTransform;
19102   return o;
19103 }
19104 
19105 static PyMethodDef __pyx_methods_6Cython_8Compiler_7Visitor_VisitorTransform[] = {
19106   {"recurse_to_children", (PyCFunction)__pyx_pw_6Cython_8Compiler_7Visitor_16VisitorTransform_3recurse_to_children, METH_O, 0},
19107   {0, 0, 0, 0}
19108 };
19109 
19110 static PyTypeObject __pyx_type_6Cython_8Compiler_7Visitor_VisitorTransform = {
19111   PyVarObject_HEAD_INIT(0, 0)
19112   "Cython.Compiler.Visitor.VisitorTransform", /*tp_name*/
19113   sizeof(struct __pyx_obj_6Cython_8Compiler_7Visitor_VisitorTransform), /*tp_basicsize*/
19114   0, /*tp_itemsize*/
19115   __pyx_tp_dealloc_6Cython_8Compiler_7Visitor_TreeVisitor, /*tp_dealloc*/
19116   #if PY_VERSION_HEX < 0x030800b4
19117   0, /*tp_print*/
19118   #endif
19119   #if PY_VERSION_HEX >= 0x030800b4
19120   0, /*tp_vectorcall_offset*/
19121   #endif
19122   0, /*tp_getattr*/
19123   0, /*tp_setattr*/
19124   #if PY_MAJOR_VERSION < 3
19125   0, /*tp_compare*/
19126   #endif
19127   #if PY_MAJOR_VERSION >= 3
19128   0, /*tp_as_async*/
19129   #endif
19130   0, /*tp_repr*/
19131   0, /*tp_as_number*/
19132   0, /*tp_as_sequence*/
19133   0, /*tp_as_mapping*/
19134   0, /*tp_hash*/
19135   __pyx_pw_6Cython_8Compiler_7Visitor_16VisitorTransform_5__call__, /*tp_call*/
19136   0, /*tp_str*/
19137   0, /*tp_getattro*/
19138   0, /*tp_setattro*/
19139   0, /*tp_as_buffer*/
19140   Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
19141   "\n    A tree transform is a base class for visitors that wants to do stream\n    processing of the structure (rather than attributes etc.) of a tree.\n\n    It implements __call__ to simply visit the argument node.\n\n    It requires the visitor methods to return the nodes which should take\n    the place of the visited node in the result tree (which can be the same\n    or one or more replacement). Specifically, if the return value from\n    a visitor method is:\n\n    - [] or None; the visited node will be removed (set to None if an attribute and\n    removed if in a list)\n    - A single node; the visited node will be replaced by the returned node.\n    - A list of nodes; the visited nodes will be replaced by all the nodes in the\n    list. This will only work if the node was already a member of a list; if it\n    was not, an exception will be raised. (Typically you want to ensure that you\n    are within a StatListNode or similar before doing this.)\n    ", /*tp_doc*/
19142   __pyx_tp_traverse_6Cython_8Compiler_7Visitor_TreeVisitor, /*tp_traverse*/
19143   __pyx_tp_clear_6Cython_8Compiler_7Visitor_TreeVisitor, /*tp_clear*/
19144   0, /*tp_richcompare*/
19145   0, /*tp_weaklistoffset*/
19146   0, /*tp_iter*/
19147   0, /*tp_iternext*/
19148   __pyx_methods_6Cython_8Compiler_7Visitor_VisitorTransform, /*tp_methods*/
19149   0, /*tp_members*/
19150   0, /*tp_getset*/
19151   0, /*tp_base*/
19152   0, /*tp_dict*/
19153   0, /*tp_descr_get*/
19154   0, /*tp_descr_set*/
19155   0, /*tp_dictoffset*/
19156   #if CYTHON_COMPILING_IN_PYPY
19157   __pyx_pw_6Cython_8Compiler_7Visitor_11TreeVisitor_1__init__, /*tp_init*/
19158   #else
19159   0, /*tp_init*/
19160   #endif
19161   0, /*tp_alloc*/
19162   __pyx_tp_new_6Cython_8Compiler_7Visitor_VisitorTransform, /*tp_new*/
19163   0, /*tp_free*/
19164   0, /*tp_is_gc*/
19165   0, /*tp_bases*/
19166   0, /*tp_mro*/
19167   0, /*tp_cache*/
19168   0, /*tp_subclasses*/
19169   0, /*tp_weaklist*/
19170   0, /*tp_del*/
19171   0, /*tp_version_tag*/
19172   #if PY_VERSION_HEX >= 0x030400a1
19173   0, /*tp_finalize*/
19174   #endif
19175   #if PY_VERSION_HEX >= 0x030800b1
19176   0, /*tp_vectorcall*/
19177   #endif
19178   #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
19179   0, /*tp_print*/
19180   #endif
19181 };
19182 static struct __pyx_vtabstruct_6Cython_8Compiler_7Visitor_CythonTransform __pyx_vtable_6Cython_8Compiler_7Visitor_CythonTransform;
19183 
__pyx_tp_new_6Cython_8Compiler_7Visitor_CythonTransform(PyTypeObject * t,PyObject * a,PyObject * k)19184 static PyObject *__pyx_tp_new_6Cython_8Compiler_7Visitor_CythonTransform(PyTypeObject *t, PyObject *a, PyObject *k) {
19185   struct __pyx_obj_6Cython_8Compiler_7Visitor_CythonTransform *p;
19186   PyObject *o = __pyx_tp_new_6Cython_8Compiler_7Visitor_VisitorTransform(t, a, k);
19187   if (unlikely(!o)) return 0;
19188   p = ((struct __pyx_obj_6Cython_8Compiler_7Visitor_CythonTransform *)o);
19189   p->__pyx_base.__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_6Cython_8Compiler_7Visitor_TreeVisitor*)__pyx_vtabptr_6Cython_8Compiler_7Visitor_CythonTransform;
19190   p->context = Py_None; Py_INCREF(Py_None);
19191   p->current_directives = Py_None; Py_INCREF(Py_None);
19192   return o;
19193 }
19194 
__pyx_tp_dealloc_6Cython_8Compiler_7Visitor_CythonTransform(PyObject * o)19195 static void __pyx_tp_dealloc_6Cython_8Compiler_7Visitor_CythonTransform(PyObject *o) {
19196   struct __pyx_obj_6Cython_8Compiler_7Visitor_CythonTransform *p = (struct __pyx_obj_6Cython_8Compiler_7Visitor_CythonTransform *)o;
19197   #if CYTHON_USE_TP_FINALIZE
19198   if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) {
19199     if (PyObject_CallFinalizerFromDealloc(o)) return;
19200   }
19201   #endif
19202   PyObject_GC_UnTrack(o);
19203   Py_CLEAR(p->context);
19204   Py_CLEAR(p->current_directives);
19205   PyObject_GC_Track(o);
19206   __pyx_tp_dealloc_6Cython_8Compiler_7Visitor_TreeVisitor(o);
19207 }
19208 
__pyx_tp_traverse_6Cython_8Compiler_7Visitor_CythonTransform(PyObject * o,visitproc v,void * a)19209 static int __pyx_tp_traverse_6Cython_8Compiler_7Visitor_CythonTransform(PyObject *o, visitproc v, void *a) {
19210   int e;
19211   struct __pyx_obj_6Cython_8Compiler_7Visitor_CythonTransform *p = (struct __pyx_obj_6Cython_8Compiler_7Visitor_CythonTransform *)o;
19212   e = __pyx_tp_traverse_6Cython_8Compiler_7Visitor_TreeVisitor(o, v, a); if (e) return e;
19213   if (p->context) {
19214     e = (*v)(p->context, a); if (e) return e;
19215   }
19216   if (p->current_directives) {
19217     e = (*v)(p->current_directives, a); if (e) return e;
19218   }
19219   return 0;
19220 }
19221 
__pyx_tp_clear_6Cython_8Compiler_7Visitor_CythonTransform(PyObject * o)19222 static int __pyx_tp_clear_6Cython_8Compiler_7Visitor_CythonTransform(PyObject *o) {
19223   PyObject* tmp;
19224   struct __pyx_obj_6Cython_8Compiler_7Visitor_CythonTransform *p = (struct __pyx_obj_6Cython_8Compiler_7Visitor_CythonTransform *)o;
19225   __pyx_tp_clear_6Cython_8Compiler_7Visitor_TreeVisitor(o);
19226   tmp = ((PyObject*)p->context);
19227   p->context = Py_None; Py_INCREF(Py_None);
19228   Py_XDECREF(tmp);
19229   tmp = ((PyObject*)p->current_directives);
19230   p->current_directives = Py_None; Py_INCREF(Py_None);
19231   Py_XDECREF(tmp);
19232   return 0;
19233 }
19234 
__pyx_getprop_6Cython_8Compiler_7Visitor_15CythonTransform_context(PyObject * o,CYTHON_UNUSED void * x)19235 static PyObject *__pyx_getprop_6Cython_8Compiler_7Visitor_15CythonTransform_context(PyObject *o, CYTHON_UNUSED void *x) {
19236   return __pyx_pw_6Cython_8Compiler_7Visitor_15CythonTransform_7context_1__get__(o);
19237 }
19238 
__pyx_setprop_6Cython_8Compiler_7Visitor_15CythonTransform_context(PyObject * o,PyObject * v,CYTHON_UNUSED void * x)19239 static int __pyx_setprop_6Cython_8Compiler_7Visitor_15CythonTransform_context(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
19240   if (v) {
19241     return __pyx_pw_6Cython_8Compiler_7Visitor_15CythonTransform_7context_3__set__(o, v);
19242   }
19243   else {
19244     return __pyx_pw_6Cython_8Compiler_7Visitor_15CythonTransform_7context_5__del__(o);
19245   }
19246 }
19247 
__pyx_getprop_6Cython_8Compiler_7Visitor_15CythonTransform_current_directives(PyObject * o,CYTHON_UNUSED void * x)19248 static PyObject *__pyx_getprop_6Cython_8Compiler_7Visitor_15CythonTransform_current_directives(PyObject *o, CYTHON_UNUSED void *x) {
19249   return __pyx_pw_6Cython_8Compiler_7Visitor_15CythonTransform_18current_directives_1__get__(o);
19250 }
19251 
__pyx_setprop_6Cython_8Compiler_7Visitor_15CythonTransform_current_directives(PyObject * o,PyObject * v,CYTHON_UNUSED void * x)19252 static int __pyx_setprop_6Cython_8Compiler_7Visitor_15CythonTransform_current_directives(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
19253   if (v) {
19254     return __pyx_pw_6Cython_8Compiler_7Visitor_15CythonTransform_18current_directives_3__set__(o, v);
19255   }
19256   else {
19257     return __pyx_pw_6Cython_8Compiler_7Visitor_15CythonTransform_18current_directives_5__del__(o);
19258   }
19259 }
19260 
19261 static PyMethodDef __pyx_methods_6Cython_8Compiler_7Visitor_CythonTransform[] = {
19262   {"visit_CompilerDirectivesNode", (PyCFunction)__pyx_pw_6Cython_8Compiler_7Visitor_15CythonTransform_5visit_CompilerDirectivesNode, METH_O, 0},
19263   {"visit_Node", (PyCFunction)__pyx_pw_6Cython_8Compiler_7Visitor_15CythonTransform_7visit_Node, METH_O, 0},
19264   {0, 0, 0, 0}
19265 };
19266 
19267 static struct PyGetSetDef __pyx_getsets_6Cython_8Compiler_7Visitor_CythonTransform[] = {
19268   {(char *)"context", __pyx_getprop_6Cython_8Compiler_7Visitor_15CythonTransform_context, __pyx_setprop_6Cython_8Compiler_7Visitor_15CythonTransform_context, (char *)0, 0},
19269   {(char *)"current_directives", __pyx_getprop_6Cython_8Compiler_7Visitor_15CythonTransform_current_directives, __pyx_setprop_6Cython_8Compiler_7Visitor_15CythonTransform_current_directives, (char *)0, 0},
19270   {0, 0, 0, 0, 0}
19271 };
19272 
19273 static PyTypeObject __pyx_type_6Cython_8Compiler_7Visitor_CythonTransform = {
19274   PyVarObject_HEAD_INIT(0, 0)
19275   "Cython.Compiler.Visitor.CythonTransform", /*tp_name*/
19276   sizeof(struct __pyx_obj_6Cython_8Compiler_7Visitor_CythonTransform), /*tp_basicsize*/
19277   0, /*tp_itemsize*/
19278   __pyx_tp_dealloc_6Cython_8Compiler_7Visitor_CythonTransform, /*tp_dealloc*/
19279   #if PY_VERSION_HEX < 0x030800b4
19280   0, /*tp_print*/
19281   #endif
19282   #if PY_VERSION_HEX >= 0x030800b4
19283   0, /*tp_vectorcall_offset*/
19284   #endif
19285   0, /*tp_getattr*/
19286   0, /*tp_setattr*/
19287   #if PY_MAJOR_VERSION < 3
19288   0, /*tp_compare*/
19289   #endif
19290   #if PY_MAJOR_VERSION >= 3
19291   0, /*tp_as_async*/
19292   #endif
19293   0, /*tp_repr*/
19294   0, /*tp_as_number*/
19295   0, /*tp_as_sequence*/
19296   0, /*tp_as_mapping*/
19297   0, /*tp_hash*/
19298   __pyx_pw_6Cython_8Compiler_7Visitor_15CythonTransform_3__call__, /*tp_call*/
19299   0, /*tp_str*/
19300   0, /*tp_getattro*/
19301   0, /*tp_setattro*/
19302   0, /*tp_as_buffer*/
19303   Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
19304   "\n    Certain common conventions and utilities for Cython transforms.\n\n     - Sets up the context of the pipeline in self.context\n     - Tracks directives in effect in self.current_directives\n    ", /*tp_doc*/
19305   __pyx_tp_traverse_6Cython_8Compiler_7Visitor_CythonTransform, /*tp_traverse*/
19306   __pyx_tp_clear_6Cython_8Compiler_7Visitor_CythonTransform, /*tp_clear*/
19307   0, /*tp_richcompare*/
19308   0, /*tp_weaklistoffset*/
19309   0, /*tp_iter*/
19310   0, /*tp_iternext*/
19311   __pyx_methods_6Cython_8Compiler_7Visitor_CythonTransform, /*tp_methods*/
19312   0, /*tp_members*/
19313   __pyx_getsets_6Cython_8Compiler_7Visitor_CythonTransform, /*tp_getset*/
19314   0, /*tp_base*/
19315   0, /*tp_dict*/
19316   0, /*tp_descr_get*/
19317   0, /*tp_descr_set*/
19318   0, /*tp_dictoffset*/
19319   __pyx_pw_6Cython_8Compiler_7Visitor_15CythonTransform_1__init__, /*tp_init*/
19320   0, /*tp_alloc*/
19321   __pyx_tp_new_6Cython_8Compiler_7Visitor_CythonTransform, /*tp_new*/
19322   0, /*tp_free*/
19323   0, /*tp_is_gc*/
19324   0, /*tp_bases*/
19325   0, /*tp_mro*/
19326   0, /*tp_cache*/
19327   0, /*tp_subclasses*/
19328   0, /*tp_weaklist*/
19329   0, /*tp_del*/
19330   0, /*tp_version_tag*/
19331   #if PY_VERSION_HEX >= 0x030400a1
19332   0, /*tp_finalize*/
19333   #endif
19334   #if PY_VERSION_HEX >= 0x030800b1
19335   0, /*tp_vectorcall*/
19336   #endif
19337   #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
19338   0, /*tp_print*/
19339   #endif
19340 };
19341 static struct __pyx_vtabstruct_6Cython_8Compiler_7Visitor_ScopeTrackingTransform __pyx_vtable_6Cython_8Compiler_7Visitor_ScopeTrackingTransform;
19342 
__pyx_tp_new_6Cython_8Compiler_7Visitor_ScopeTrackingTransform(PyTypeObject * t,PyObject * a,PyObject * k)19343 static PyObject *__pyx_tp_new_6Cython_8Compiler_7Visitor_ScopeTrackingTransform(PyTypeObject *t, PyObject *a, PyObject *k) {
19344   struct __pyx_obj_6Cython_8Compiler_7Visitor_ScopeTrackingTransform *p;
19345   PyObject *o = __pyx_tp_new_6Cython_8Compiler_7Visitor_CythonTransform(t, a, k);
19346   if (unlikely(!o)) return 0;
19347   p = ((struct __pyx_obj_6Cython_8Compiler_7Visitor_ScopeTrackingTransform *)o);
19348   p->__pyx_base.__pyx_base.__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_6Cython_8Compiler_7Visitor_TreeVisitor*)__pyx_vtabptr_6Cython_8Compiler_7Visitor_ScopeTrackingTransform;
19349   p->scope_type = Py_None; Py_INCREF(Py_None);
19350   p->scope_node = Py_None; Py_INCREF(Py_None);
19351   return o;
19352 }
19353 
__pyx_tp_dealloc_6Cython_8Compiler_7Visitor_ScopeTrackingTransform(PyObject * o)19354 static void __pyx_tp_dealloc_6Cython_8Compiler_7Visitor_ScopeTrackingTransform(PyObject *o) {
19355   struct __pyx_obj_6Cython_8Compiler_7Visitor_ScopeTrackingTransform *p = (struct __pyx_obj_6Cython_8Compiler_7Visitor_ScopeTrackingTransform *)o;
19356   #if CYTHON_USE_TP_FINALIZE
19357   if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) {
19358     if (PyObject_CallFinalizerFromDealloc(o)) return;
19359   }
19360   #endif
19361   PyObject_GC_UnTrack(o);
19362   Py_CLEAR(p->scope_type);
19363   Py_CLEAR(p->scope_node);
19364   PyObject_GC_Track(o);
19365   __pyx_tp_dealloc_6Cython_8Compiler_7Visitor_CythonTransform(o);
19366 }
19367 
__pyx_tp_traverse_6Cython_8Compiler_7Visitor_ScopeTrackingTransform(PyObject * o,visitproc v,void * a)19368 static int __pyx_tp_traverse_6Cython_8Compiler_7Visitor_ScopeTrackingTransform(PyObject *o, visitproc v, void *a) {
19369   int e;
19370   struct __pyx_obj_6Cython_8Compiler_7Visitor_ScopeTrackingTransform *p = (struct __pyx_obj_6Cython_8Compiler_7Visitor_ScopeTrackingTransform *)o;
19371   e = __pyx_tp_traverse_6Cython_8Compiler_7Visitor_CythonTransform(o, v, a); if (e) return e;
19372   if (p->scope_type) {
19373     e = (*v)(p->scope_type, a); if (e) return e;
19374   }
19375   if (p->scope_node) {
19376     e = (*v)(p->scope_node, a); if (e) return e;
19377   }
19378   return 0;
19379 }
19380 
__pyx_tp_clear_6Cython_8Compiler_7Visitor_ScopeTrackingTransform(PyObject * o)19381 static int __pyx_tp_clear_6Cython_8Compiler_7Visitor_ScopeTrackingTransform(PyObject *o) {
19382   PyObject* tmp;
19383   struct __pyx_obj_6Cython_8Compiler_7Visitor_ScopeTrackingTransform *p = (struct __pyx_obj_6Cython_8Compiler_7Visitor_ScopeTrackingTransform *)o;
19384   __pyx_tp_clear_6Cython_8Compiler_7Visitor_CythonTransform(o);
19385   tmp = ((PyObject*)p->scope_type);
19386   p->scope_type = Py_None; Py_INCREF(Py_None);
19387   Py_XDECREF(tmp);
19388   tmp = ((PyObject*)p->scope_node);
19389   p->scope_node = Py_None; Py_INCREF(Py_None);
19390   Py_XDECREF(tmp);
19391   return 0;
19392 }
19393 
__pyx_getprop_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_scope_type(PyObject * o,CYTHON_UNUSED void * x)19394 static PyObject *__pyx_getprop_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_scope_type(PyObject *o, CYTHON_UNUSED void *x) {
19395   return __pyx_pw_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_10scope_type_1__get__(o);
19396 }
19397 
__pyx_setprop_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_scope_type(PyObject * o,PyObject * v,CYTHON_UNUSED void * x)19398 static int __pyx_setprop_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_scope_type(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
19399   if (v) {
19400     return __pyx_pw_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_10scope_type_3__set__(o, v);
19401   }
19402   else {
19403     return __pyx_pw_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_10scope_type_5__del__(o);
19404   }
19405 }
19406 
__pyx_getprop_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_scope_node(PyObject * o,CYTHON_UNUSED void * x)19407 static PyObject *__pyx_getprop_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_scope_node(PyObject *o, CYTHON_UNUSED void *x) {
19408   return __pyx_pw_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_10scope_node_1__get__(o);
19409 }
19410 
__pyx_setprop_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_scope_node(PyObject * o,PyObject * v,CYTHON_UNUSED void * x)19411 static int __pyx_setprop_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_scope_node(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
19412   if (v) {
19413     return __pyx_pw_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_10scope_node_3__set__(o, v);
19414   }
19415   else {
19416     return __pyx_pw_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_10scope_node_5__del__(o);
19417   }
19418 }
19419 
19420 static PyMethodDef __pyx_methods_6Cython_8Compiler_7Visitor_ScopeTrackingTransform[] = {
19421   {"visit_ModuleNode", (PyCFunction)__pyx_pw_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_1visit_ModuleNode, METH_O, 0},
19422   {"visit_CClassDefNode", (PyCFunction)__pyx_pw_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_3visit_CClassDefNode, METH_O, 0},
19423   {"visit_PyClassDefNode", (PyCFunction)__pyx_pw_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_5visit_PyClassDefNode, METH_O, 0},
19424   {"visit_FuncDefNode", (PyCFunction)__pyx_pw_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_7visit_FuncDefNode, METH_O, 0},
19425   {"visit_CStructOrUnionDefNode", (PyCFunction)__pyx_pw_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_9visit_CStructOrUnionDefNode, METH_O, 0},
19426   {0, 0, 0, 0}
19427 };
19428 
19429 static struct PyGetSetDef __pyx_getsets_6Cython_8Compiler_7Visitor_ScopeTrackingTransform[] = {
19430   {(char *)"scope_type", __pyx_getprop_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_scope_type, __pyx_setprop_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_scope_type, (char *)0, 0},
19431   {(char *)"scope_node", __pyx_getprop_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_scope_node, __pyx_setprop_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_scope_node, (char *)0, 0},
19432   {0, 0, 0, 0, 0}
19433 };
19434 
19435 static PyTypeObject __pyx_type_6Cython_8Compiler_7Visitor_ScopeTrackingTransform = {
19436   PyVarObject_HEAD_INIT(0, 0)
19437   "Cython.Compiler.Visitor.ScopeTrackingTransform", /*tp_name*/
19438   sizeof(struct __pyx_obj_6Cython_8Compiler_7Visitor_ScopeTrackingTransform), /*tp_basicsize*/
19439   0, /*tp_itemsize*/
19440   __pyx_tp_dealloc_6Cython_8Compiler_7Visitor_ScopeTrackingTransform, /*tp_dealloc*/
19441   #if PY_VERSION_HEX < 0x030800b4
19442   0, /*tp_print*/
19443   #endif
19444   #if PY_VERSION_HEX >= 0x030800b4
19445   0, /*tp_vectorcall_offset*/
19446   #endif
19447   0, /*tp_getattr*/
19448   0, /*tp_setattr*/
19449   #if PY_MAJOR_VERSION < 3
19450   0, /*tp_compare*/
19451   #endif
19452   #if PY_MAJOR_VERSION >= 3
19453   0, /*tp_as_async*/
19454   #endif
19455   0, /*tp_repr*/
19456   0, /*tp_as_number*/
19457   0, /*tp_as_sequence*/
19458   0, /*tp_as_mapping*/
19459   0, /*tp_hash*/
19460   #if CYTHON_COMPILING_IN_PYPY
19461   __pyx_pw_6Cython_8Compiler_7Visitor_15CythonTransform_3__call__, /*tp_call*/
19462   #else
19463   0, /*tp_call*/
19464   #endif
19465   0, /*tp_str*/
19466   0, /*tp_getattro*/
19467   0, /*tp_setattro*/
19468   0, /*tp_as_buffer*/
19469   Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
19470   0, /*tp_doc*/
19471   __pyx_tp_traverse_6Cython_8Compiler_7Visitor_ScopeTrackingTransform, /*tp_traverse*/
19472   __pyx_tp_clear_6Cython_8Compiler_7Visitor_ScopeTrackingTransform, /*tp_clear*/
19473   0, /*tp_richcompare*/
19474   0, /*tp_weaklistoffset*/
19475   0, /*tp_iter*/
19476   0, /*tp_iternext*/
19477   __pyx_methods_6Cython_8Compiler_7Visitor_ScopeTrackingTransform, /*tp_methods*/
19478   0, /*tp_members*/
19479   __pyx_getsets_6Cython_8Compiler_7Visitor_ScopeTrackingTransform, /*tp_getset*/
19480   0, /*tp_base*/
19481   0, /*tp_dict*/
19482   0, /*tp_descr_get*/
19483   0, /*tp_descr_set*/
19484   0, /*tp_dictoffset*/
19485   #if CYTHON_COMPILING_IN_PYPY
19486   __pyx_pw_6Cython_8Compiler_7Visitor_15CythonTransform_1__init__, /*tp_init*/
19487   #else
19488   0, /*tp_init*/
19489   #endif
19490   0, /*tp_alloc*/
19491   __pyx_tp_new_6Cython_8Compiler_7Visitor_ScopeTrackingTransform, /*tp_new*/
19492   0, /*tp_free*/
19493   0, /*tp_is_gc*/
19494   0, /*tp_bases*/
19495   0, /*tp_mro*/
19496   0, /*tp_cache*/
19497   0, /*tp_subclasses*/
19498   0, /*tp_weaklist*/
19499   0, /*tp_del*/
19500   0, /*tp_version_tag*/
19501   #if PY_VERSION_HEX >= 0x030400a1
19502   0, /*tp_finalize*/
19503   #endif
19504   #if PY_VERSION_HEX >= 0x030800b1
19505   0, /*tp_vectorcall*/
19506   #endif
19507   #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
19508   0, /*tp_print*/
19509   #endif
19510 };
19511 static struct __pyx_vtabstruct_6Cython_8Compiler_7Visitor_EnvTransform __pyx_vtable_6Cython_8Compiler_7Visitor_EnvTransform;
19512 
__pyx_tp_new_6Cython_8Compiler_7Visitor_EnvTransform(PyTypeObject * t,PyObject * a,PyObject * k)19513 static PyObject *__pyx_tp_new_6Cython_8Compiler_7Visitor_EnvTransform(PyTypeObject *t, PyObject *a, PyObject *k) {
19514   struct __pyx_obj_6Cython_8Compiler_7Visitor_EnvTransform *p;
19515   PyObject *o = __pyx_tp_new_6Cython_8Compiler_7Visitor_CythonTransform(t, a, k);
19516   if (unlikely(!o)) return 0;
19517   p = ((struct __pyx_obj_6Cython_8Compiler_7Visitor_EnvTransform *)o);
19518   p->__pyx_base.__pyx_base.__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_6Cython_8Compiler_7Visitor_TreeVisitor*)__pyx_vtabptr_6Cython_8Compiler_7Visitor_EnvTransform;
19519   p->env_stack = ((PyObject*)Py_None); Py_INCREF(Py_None);
19520   return o;
19521 }
19522 
__pyx_tp_dealloc_6Cython_8Compiler_7Visitor_EnvTransform(PyObject * o)19523 static void __pyx_tp_dealloc_6Cython_8Compiler_7Visitor_EnvTransform(PyObject *o) {
19524   struct __pyx_obj_6Cython_8Compiler_7Visitor_EnvTransform *p = (struct __pyx_obj_6Cython_8Compiler_7Visitor_EnvTransform *)o;
19525   #if CYTHON_USE_TP_FINALIZE
19526   if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) {
19527     if (PyObject_CallFinalizerFromDealloc(o)) return;
19528   }
19529   #endif
19530   PyObject_GC_UnTrack(o);
19531   Py_CLEAR(p->env_stack);
19532   PyObject_GC_Track(o);
19533   __pyx_tp_dealloc_6Cython_8Compiler_7Visitor_CythonTransform(o);
19534 }
19535 
__pyx_tp_traverse_6Cython_8Compiler_7Visitor_EnvTransform(PyObject * o,visitproc v,void * a)19536 static int __pyx_tp_traverse_6Cython_8Compiler_7Visitor_EnvTransform(PyObject *o, visitproc v, void *a) {
19537   int e;
19538   struct __pyx_obj_6Cython_8Compiler_7Visitor_EnvTransform *p = (struct __pyx_obj_6Cython_8Compiler_7Visitor_EnvTransform *)o;
19539   e = __pyx_tp_traverse_6Cython_8Compiler_7Visitor_CythonTransform(o, v, a); if (e) return e;
19540   if (p->env_stack) {
19541     e = (*v)(p->env_stack, a); if (e) return e;
19542   }
19543   return 0;
19544 }
19545 
__pyx_tp_clear_6Cython_8Compiler_7Visitor_EnvTransform(PyObject * o)19546 static int __pyx_tp_clear_6Cython_8Compiler_7Visitor_EnvTransform(PyObject *o) {
19547   PyObject* tmp;
19548   struct __pyx_obj_6Cython_8Compiler_7Visitor_EnvTransform *p = (struct __pyx_obj_6Cython_8Compiler_7Visitor_EnvTransform *)o;
19549   __pyx_tp_clear_6Cython_8Compiler_7Visitor_CythonTransform(o);
19550   tmp = ((PyObject*)p->env_stack);
19551   p->env_stack = ((PyObject*)Py_None); Py_INCREF(Py_None);
19552   Py_XDECREF(tmp);
19553   return 0;
19554 }
19555 
__pyx_getprop_6Cython_8Compiler_7Visitor_12EnvTransform_env_stack(PyObject * o,CYTHON_UNUSED void * x)19556 static PyObject *__pyx_getprop_6Cython_8Compiler_7Visitor_12EnvTransform_env_stack(PyObject *o, CYTHON_UNUSED void *x) {
19557   return __pyx_pw_6Cython_8Compiler_7Visitor_12EnvTransform_9env_stack_1__get__(o);
19558 }
19559 
__pyx_setprop_6Cython_8Compiler_7Visitor_12EnvTransform_env_stack(PyObject * o,PyObject * v,CYTHON_UNUSED void * x)19560 static int __pyx_setprop_6Cython_8Compiler_7Visitor_12EnvTransform_env_stack(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
19561   if (v) {
19562     return __pyx_pw_6Cython_8Compiler_7Visitor_12EnvTransform_9env_stack_3__set__(o, v);
19563   }
19564   else {
19565     return __pyx_pw_6Cython_8Compiler_7Visitor_12EnvTransform_9env_stack_5__del__(o);
19566   }
19567 }
19568 
19569 static PyMethodDef __pyx_methods_6Cython_8Compiler_7Visitor_EnvTransform[] = {
19570   {"current_env", (PyCFunction)__pyx_pw_6Cython_8Compiler_7Visitor_12EnvTransform_3current_env, METH_NOARGS, 0},
19571   {"current_scope_node", (PyCFunction)__pyx_pw_6Cython_8Compiler_7Visitor_12EnvTransform_5current_scope_node, METH_NOARGS, 0},
19572   {"global_scope", (PyCFunction)__pyx_pw_6Cython_8Compiler_7Visitor_12EnvTransform_7global_scope, METH_NOARGS, 0},
19573   {"enter_scope", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6Cython_8Compiler_7Visitor_12EnvTransform_9enter_scope, METH_VARARGS|METH_KEYWORDS, 0},
19574   {"exit_scope", (PyCFunction)__pyx_pw_6Cython_8Compiler_7Visitor_12EnvTransform_11exit_scope, METH_NOARGS, 0},
19575   {"visit_FuncDefNode", (PyCFunction)__pyx_pw_6Cython_8Compiler_7Visitor_12EnvTransform_13visit_FuncDefNode, METH_O, 0},
19576   {"visit_GeneratorBodyDefNode", (PyCFunction)__pyx_pw_6Cython_8Compiler_7Visitor_12EnvTransform_15visit_GeneratorBodyDefNode, METH_O, 0},
19577   {"visit_ClassDefNode", (PyCFunction)__pyx_pw_6Cython_8Compiler_7Visitor_12EnvTransform_17visit_ClassDefNode, METH_O, 0},
19578   {"visit_CStructOrUnionDefNode", (PyCFunction)__pyx_pw_6Cython_8Compiler_7Visitor_12EnvTransform_19visit_CStructOrUnionDefNode, METH_O, 0},
19579   {"visit_ScopedExprNode", (PyCFunction)__pyx_pw_6Cython_8Compiler_7Visitor_12EnvTransform_21visit_ScopedExprNode, METH_O, 0},
19580   {"visit_CArgDeclNode", (PyCFunction)__pyx_pw_6Cython_8Compiler_7Visitor_12EnvTransform_23visit_CArgDeclNode, METH_O, 0},
19581   {0, 0, 0, 0}
19582 };
19583 
19584 static struct PyGetSetDef __pyx_getsets_6Cython_8Compiler_7Visitor_EnvTransform[] = {
19585   {(char *)"env_stack", __pyx_getprop_6Cython_8Compiler_7Visitor_12EnvTransform_env_stack, __pyx_setprop_6Cython_8Compiler_7Visitor_12EnvTransform_env_stack, (char *)0, 0},
19586   {0, 0, 0, 0, 0}
19587 };
19588 
19589 static PyTypeObject __pyx_type_6Cython_8Compiler_7Visitor_EnvTransform = {
19590   PyVarObject_HEAD_INIT(0, 0)
19591   "Cython.Compiler.Visitor.EnvTransform", /*tp_name*/
19592   sizeof(struct __pyx_obj_6Cython_8Compiler_7Visitor_EnvTransform), /*tp_basicsize*/
19593   0, /*tp_itemsize*/
19594   __pyx_tp_dealloc_6Cython_8Compiler_7Visitor_EnvTransform, /*tp_dealloc*/
19595   #if PY_VERSION_HEX < 0x030800b4
19596   0, /*tp_print*/
19597   #endif
19598   #if PY_VERSION_HEX >= 0x030800b4
19599   0, /*tp_vectorcall_offset*/
19600   #endif
19601   0, /*tp_getattr*/
19602   0, /*tp_setattr*/
19603   #if PY_MAJOR_VERSION < 3
19604   0, /*tp_compare*/
19605   #endif
19606   #if PY_MAJOR_VERSION >= 3
19607   0, /*tp_as_async*/
19608   #endif
19609   0, /*tp_repr*/
19610   0, /*tp_as_number*/
19611   0, /*tp_as_sequence*/
19612   0, /*tp_as_mapping*/
19613   0, /*tp_hash*/
19614   __pyx_pw_6Cython_8Compiler_7Visitor_12EnvTransform_1__call__, /*tp_call*/
19615   0, /*tp_str*/
19616   0, /*tp_getattro*/
19617   0, /*tp_setattro*/
19618   0, /*tp_as_buffer*/
19619   Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
19620   "\n    This transformation keeps a stack of the environments.\n    ", /*tp_doc*/
19621   __pyx_tp_traverse_6Cython_8Compiler_7Visitor_EnvTransform, /*tp_traverse*/
19622   __pyx_tp_clear_6Cython_8Compiler_7Visitor_EnvTransform, /*tp_clear*/
19623   0, /*tp_richcompare*/
19624   0, /*tp_weaklistoffset*/
19625   0, /*tp_iter*/
19626   0, /*tp_iternext*/
19627   __pyx_methods_6Cython_8Compiler_7Visitor_EnvTransform, /*tp_methods*/
19628   0, /*tp_members*/
19629   __pyx_getsets_6Cython_8Compiler_7Visitor_EnvTransform, /*tp_getset*/
19630   0, /*tp_base*/
19631   0, /*tp_dict*/
19632   0, /*tp_descr_get*/
19633   0, /*tp_descr_set*/
19634   0, /*tp_dictoffset*/
19635   #if CYTHON_COMPILING_IN_PYPY
19636   __pyx_pw_6Cython_8Compiler_7Visitor_15CythonTransform_1__init__, /*tp_init*/
19637   #else
19638   0, /*tp_init*/
19639   #endif
19640   0, /*tp_alloc*/
19641   __pyx_tp_new_6Cython_8Compiler_7Visitor_EnvTransform, /*tp_new*/
19642   0, /*tp_free*/
19643   0, /*tp_is_gc*/
19644   0, /*tp_bases*/
19645   0, /*tp_mro*/
19646   0, /*tp_cache*/
19647   0, /*tp_subclasses*/
19648   0, /*tp_weaklist*/
19649   0, /*tp_del*/
19650   0, /*tp_version_tag*/
19651   #if PY_VERSION_HEX >= 0x030400a1
19652   0, /*tp_finalize*/
19653   #endif
19654   #if PY_VERSION_HEX >= 0x030800b1
19655   0, /*tp_vectorcall*/
19656   #endif
19657   #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
19658   0, /*tp_print*/
19659   #endif
19660 };
19661 static struct __pyx_vtabstruct_6Cython_8Compiler_7Visitor_MethodDispatcherTransform __pyx_vtable_6Cython_8Compiler_7Visitor_MethodDispatcherTransform;
19662 
__pyx_tp_new_6Cython_8Compiler_7Visitor_MethodDispatcherTransform(PyTypeObject * t,PyObject * a,PyObject * k)19663 static PyObject *__pyx_tp_new_6Cython_8Compiler_7Visitor_MethodDispatcherTransform(PyTypeObject *t, PyObject *a, PyObject *k) {
19664   struct __pyx_obj_6Cython_8Compiler_7Visitor_MethodDispatcherTransform *p;
19665   PyObject *o = __pyx_tp_new_6Cython_8Compiler_7Visitor_EnvTransform(t, a, k);
19666   if (unlikely(!o)) return 0;
19667   p = ((struct __pyx_obj_6Cython_8Compiler_7Visitor_MethodDispatcherTransform *)o);
19668   p->__pyx_base.__pyx_base.__pyx_base.__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_6Cython_8Compiler_7Visitor_TreeVisitor*)__pyx_vtabptr_6Cython_8Compiler_7Visitor_MethodDispatcherTransform;
19669   return o;
19670 }
19671 
19672 static PyMethodDef __pyx_methods_6Cython_8Compiler_7Visitor_MethodDispatcherTransform[] = {
19673   {"visit_GeneralCallNode", (PyCFunction)__pyx_pw_6Cython_8Compiler_7Visitor_25MethodDispatcherTransform_1visit_GeneralCallNode, METH_O, 0},
19674   {"visit_SimpleCallNode", (PyCFunction)__pyx_pw_6Cython_8Compiler_7Visitor_25MethodDispatcherTransform_3visit_SimpleCallNode, METH_O, 0},
19675   {"visit_PrimaryCmpNode", (PyCFunction)__pyx_pw_6Cython_8Compiler_7Visitor_25MethodDispatcherTransform_5visit_PrimaryCmpNode, METH_O, 0},
19676   {"visit_BinopNode", (PyCFunction)__pyx_pw_6Cython_8Compiler_7Visitor_25MethodDispatcherTransform_7visit_BinopNode, METH_O, 0},
19677   {"visit_UnopNode", (PyCFunction)__pyx_pw_6Cython_8Compiler_7Visitor_25MethodDispatcherTransform_9visit_UnopNode, METH_O, 0},
19678   {"_handle_function", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6Cython_8Compiler_7Visitor_25MethodDispatcherTransform_11_handle_function, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6Cython_8Compiler_7Visitor_25MethodDispatcherTransform_10_handle_function},
19679   {"_handle_method", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6Cython_8Compiler_7Visitor_25MethodDispatcherTransform_13_handle_method, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6Cython_8Compiler_7Visitor_25MethodDispatcherTransform_12_handle_method},
19680   {0, 0, 0, 0}
19681 };
19682 
19683 static PyTypeObject __pyx_type_6Cython_8Compiler_7Visitor_MethodDispatcherTransform = {
19684   PyVarObject_HEAD_INIT(0, 0)
19685   "Cython.Compiler.Visitor.MethodDispatcherTransform", /*tp_name*/
19686   sizeof(struct __pyx_obj_6Cython_8Compiler_7Visitor_MethodDispatcherTransform), /*tp_basicsize*/
19687   0, /*tp_itemsize*/
19688   __pyx_tp_dealloc_6Cython_8Compiler_7Visitor_EnvTransform, /*tp_dealloc*/
19689   #if PY_VERSION_HEX < 0x030800b4
19690   0, /*tp_print*/
19691   #endif
19692   #if PY_VERSION_HEX >= 0x030800b4
19693   0, /*tp_vectorcall_offset*/
19694   #endif
19695   0, /*tp_getattr*/
19696   0, /*tp_setattr*/
19697   #if PY_MAJOR_VERSION < 3
19698   0, /*tp_compare*/
19699   #endif
19700   #if PY_MAJOR_VERSION >= 3
19701   0, /*tp_as_async*/
19702   #endif
19703   0, /*tp_repr*/
19704   0, /*tp_as_number*/
19705   0, /*tp_as_sequence*/
19706   0, /*tp_as_mapping*/
19707   0, /*tp_hash*/
19708   #if CYTHON_COMPILING_IN_PYPY
19709   __pyx_pw_6Cython_8Compiler_7Visitor_12EnvTransform_1__call__, /*tp_call*/
19710   #else
19711   0, /*tp_call*/
19712   #endif
19713   0, /*tp_str*/
19714   0, /*tp_getattro*/
19715   0, /*tp_setattro*/
19716   0, /*tp_as_buffer*/
19717   Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
19718   "\n    Base class for transformations that want to intercept on specific\n    builtin functions or methods of builtin types, including special\n    methods triggered by Python operators.  Must run after declaration\n    analysis when entries were assigned.\n\n    Naming pattern for handler methods is as follows:\n\n    * builtin functions: _handle_(general|simple|any)_function_NAME\n\n    * builtin methods: _handle_(general|simple|any)_method_TYPENAME_METHODNAME\n    ", /*tp_doc*/
19719   __pyx_tp_traverse_6Cython_8Compiler_7Visitor_EnvTransform, /*tp_traverse*/
19720   __pyx_tp_clear_6Cython_8Compiler_7Visitor_EnvTransform, /*tp_clear*/
19721   0, /*tp_richcompare*/
19722   0, /*tp_weaklistoffset*/
19723   0, /*tp_iter*/
19724   0, /*tp_iternext*/
19725   __pyx_methods_6Cython_8Compiler_7Visitor_MethodDispatcherTransform, /*tp_methods*/
19726   0, /*tp_members*/
19727   0, /*tp_getset*/
19728   0, /*tp_base*/
19729   0, /*tp_dict*/
19730   0, /*tp_descr_get*/
19731   0, /*tp_descr_set*/
19732   0, /*tp_dictoffset*/
19733   #if CYTHON_COMPILING_IN_PYPY
19734   __pyx_pw_6Cython_8Compiler_7Visitor_15CythonTransform_1__init__, /*tp_init*/
19735   #else
19736   0, /*tp_init*/
19737   #endif
19738   0, /*tp_alloc*/
19739   __pyx_tp_new_6Cython_8Compiler_7Visitor_MethodDispatcherTransform, /*tp_new*/
19740   0, /*tp_free*/
19741   0, /*tp_is_gc*/
19742   0, /*tp_bases*/
19743   0, /*tp_mro*/
19744   0, /*tp_cache*/
19745   0, /*tp_subclasses*/
19746   0, /*tp_weaklist*/
19747   0, /*tp_del*/
19748   0, /*tp_version_tag*/
19749   #if PY_VERSION_HEX >= 0x030400a1
19750   0, /*tp_finalize*/
19751   #endif
19752   #if PY_VERSION_HEX >= 0x030800b1
19753   0, /*tp_vectorcall*/
19754   #endif
19755   #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
19756   0, /*tp_print*/
19757   #endif
19758 };
19759 static struct __pyx_vtabstruct_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer __pyx_vtable_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer;
19760 
__pyx_tp_new_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer(PyTypeObject * t,PyObject * a,PyObject * k)19761 static PyObject *__pyx_tp_new_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer(PyTypeObject *t, PyObject *a, PyObject *k) {
19762   struct __pyx_obj_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer *p;
19763   PyObject *o = __pyx_tp_new_6Cython_8Compiler_7Visitor_VisitorTransform(t, a, k);
19764   if (unlikely(!o)) return 0;
19765   p = ((struct __pyx_obj_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer *)o);
19766   p->__pyx_base.__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_6Cython_8Compiler_7Visitor_TreeVisitor*)__pyx_vtabptr_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer;
19767   p->orig_node = Py_None; Py_INCREF(Py_None);
19768   p->new_node = Py_None; Py_INCREF(Py_None);
19769   return o;
19770 }
19771 
__pyx_tp_dealloc_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer(PyObject * o)19772 static void __pyx_tp_dealloc_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer(PyObject *o) {
19773   struct __pyx_obj_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer *p = (struct __pyx_obj_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer *)o;
19774   #if CYTHON_USE_TP_FINALIZE
19775   if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) {
19776     if (PyObject_CallFinalizerFromDealloc(o)) return;
19777   }
19778   #endif
19779   PyObject_GC_UnTrack(o);
19780   Py_CLEAR(p->orig_node);
19781   Py_CLEAR(p->new_node);
19782   PyObject_GC_Track(o);
19783   __pyx_tp_dealloc_6Cython_8Compiler_7Visitor_TreeVisitor(o);
19784 }
19785 
__pyx_tp_traverse_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer(PyObject * o,visitproc v,void * a)19786 static int __pyx_tp_traverse_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer(PyObject *o, visitproc v, void *a) {
19787   int e;
19788   struct __pyx_obj_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer *p = (struct __pyx_obj_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer *)o;
19789   e = __pyx_tp_traverse_6Cython_8Compiler_7Visitor_TreeVisitor(o, v, a); if (e) return e;
19790   if (p->orig_node) {
19791     e = (*v)(p->orig_node, a); if (e) return e;
19792   }
19793   if (p->new_node) {
19794     e = (*v)(p->new_node, a); if (e) return e;
19795   }
19796   return 0;
19797 }
19798 
__pyx_tp_clear_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer(PyObject * o)19799 static int __pyx_tp_clear_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer(PyObject *o) {
19800   PyObject* tmp;
19801   struct __pyx_obj_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer *p = (struct __pyx_obj_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer *)o;
19802   __pyx_tp_clear_6Cython_8Compiler_7Visitor_TreeVisitor(o);
19803   tmp = ((PyObject*)p->orig_node);
19804   p->orig_node = Py_None; Py_INCREF(Py_None);
19805   Py_XDECREF(tmp);
19806   tmp = ((PyObject*)p->new_node);
19807   p->new_node = Py_None; Py_INCREF(Py_None);
19808   Py_XDECREF(tmp);
19809   return 0;
19810 }
19811 
__pyx_getprop_6Cython_8Compiler_7Visitor_21RecursiveNodeReplacer_orig_node(PyObject * o,CYTHON_UNUSED void * x)19812 static PyObject *__pyx_getprop_6Cython_8Compiler_7Visitor_21RecursiveNodeReplacer_orig_node(PyObject *o, CYTHON_UNUSED void *x) {
19813   return __pyx_pw_6Cython_8Compiler_7Visitor_21RecursiveNodeReplacer_9orig_node_1__get__(o);
19814 }
19815 
__pyx_setprop_6Cython_8Compiler_7Visitor_21RecursiveNodeReplacer_orig_node(PyObject * o,PyObject * v,CYTHON_UNUSED void * x)19816 static int __pyx_setprop_6Cython_8Compiler_7Visitor_21RecursiveNodeReplacer_orig_node(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
19817   if (v) {
19818     return __pyx_pw_6Cython_8Compiler_7Visitor_21RecursiveNodeReplacer_9orig_node_3__set__(o, v);
19819   }
19820   else {
19821     return __pyx_pw_6Cython_8Compiler_7Visitor_21RecursiveNodeReplacer_9orig_node_5__del__(o);
19822   }
19823 }
19824 
__pyx_getprop_6Cython_8Compiler_7Visitor_21RecursiveNodeReplacer_new_node(PyObject * o,CYTHON_UNUSED void * x)19825 static PyObject *__pyx_getprop_6Cython_8Compiler_7Visitor_21RecursiveNodeReplacer_new_node(PyObject *o, CYTHON_UNUSED void *x) {
19826   return __pyx_pw_6Cython_8Compiler_7Visitor_21RecursiveNodeReplacer_8new_node_1__get__(o);
19827 }
19828 
__pyx_setprop_6Cython_8Compiler_7Visitor_21RecursiveNodeReplacer_new_node(PyObject * o,PyObject * v,CYTHON_UNUSED void * x)19829 static int __pyx_setprop_6Cython_8Compiler_7Visitor_21RecursiveNodeReplacer_new_node(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
19830   if (v) {
19831     return __pyx_pw_6Cython_8Compiler_7Visitor_21RecursiveNodeReplacer_8new_node_3__set__(o, v);
19832   }
19833   else {
19834     return __pyx_pw_6Cython_8Compiler_7Visitor_21RecursiveNodeReplacer_8new_node_5__del__(o);
19835   }
19836 }
19837 
19838 static PyMethodDef __pyx_methods_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer[] = {
19839   {"visit_CloneNode", (PyCFunction)__pyx_pw_6Cython_8Compiler_7Visitor_21RecursiveNodeReplacer_3visit_CloneNode, METH_O, 0},
19840   {"visit_Node", (PyCFunction)__pyx_pw_6Cython_8Compiler_7Visitor_21RecursiveNodeReplacer_5visit_Node, METH_O, 0},
19841   {0, 0, 0, 0}
19842 };
19843 
19844 static struct PyGetSetDef __pyx_getsets_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer[] = {
19845   {(char *)"orig_node", __pyx_getprop_6Cython_8Compiler_7Visitor_21RecursiveNodeReplacer_orig_node, __pyx_setprop_6Cython_8Compiler_7Visitor_21RecursiveNodeReplacer_orig_node, (char *)0, 0},
19846   {(char *)"new_node", __pyx_getprop_6Cython_8Compiler_7Visitor_21RecursiveNodeReplacer_new_node, __pyx_setprop_6Cython_8Compiler_7Visitor_21RecursiveNodeReplacer_new_node, (char *)0, 0},
19847   {0, 0, 0, 0, 0}
19848 };
19849 
19850 static PyTypeObject __pyx_type_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer = {
19851   PyVarObject_HEAD_INIT(0, 0)
19852   "Cython.Compiler.Visitor.RecursiveNodeReplacer", /*tp_name*/
19853   sizeof(struct __pyx_obj_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer), /*tp_basicsize*/
19854   0, /*tp_itemsize*/
19855   __pyx_tp_dealloc_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer, /*tp_dealloc*/
19856   #if PY_VERSION_HEX < 0x030800b4
19857   0, /*tp_print*/
19858   #endif
19859   #if PY_VERSION_HEX >= 0x030800b4
19860   0, /*tp_vectorcall_offset*/
19861   #endif
19862   0, /*tp_getattr*/
19863   0, /*tp_setattr*/
19864   #if PY_MAJOR_VERSION < 3
19865   0, /*tp_compare*/
19866   #endif
19867   #if PY_MAJOR_VERSION >= 3
19868   0, /*tp_as_async*/
19869   #endif
19870   0, /*tp_repr*/
19871   0, /*tp_as_number*/
19872   0, /*tp_as_sequence*/
19873   0, /*tp_as_mapping*/
19874   0, /*tp_hash*/
19875   #if CYTHON_COMPILING_IN_PYPY
19876   __pyx_pw_6Cython_8Compiler_7Visitor_16VisitorTransform_5__call__, /*tp_call*/
19877   #else
19878   0, /*tp_call*/
19879   #endif
19880   0, /*tp_str*/
19881   0, /*tp_getattro*/
19882   0, /*tp_setattro*/
19883   0, /*tp_as_buffer*/
19884   Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
19885   "\n    Recursively replace all occurrences of a node in a subtree by\n    another node.\n    ", /*tp_doc*/
19886   __pyx_tp_traverse_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer, /*tp_traverse*/
19887   __pyx_tp_clear_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer, /*tp_clear*/
19888   0, /*tp_richcompare*/
19889   0, /*tp_weaklistoffset*/
19890   0, /*tp_iter*/
19891   0, /*tp_iternext*/
19892   __pyx_methods_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer, /*tp_methods*/
19893   0, /*tp_members*/
19894   __pyx_getsets_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer, /*tp_getset*/
19895   0, /*tp_base*/
19896   0, /*tp_dict*/
19897   0, /*tp_descr_get*/
19898   0, /*tp_descr_set*/
19899   0, /*tp_dictoffset*/
19900   __pyx_pw_6Cython_8Compiler_7Visitor_21RecursiveNodeReplacer_1__init__, /*tp_init*/
19901   0, /*tp_alloc*/
19902   __pyx_tp_new_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer, /*tp_new*/
19903   0, /*tp_free*/
19904   0, /*tp_is_gc*/
19905   0, /*tp_bases*/
19906   0, /*tp_mro*/
19907   0, /*tp_cache*/
19908   0, /*tp_subclasses*/
19909   0, /*tp_weaklist*/
19910   0, /*tp_del*/
19911   0, /*tp_version_tag*/
19912   #if PY_VERSION_HEX >= 0x030400a1
19913   0, /*tp_finalize*/
19914   #endif
19915   #if PY_VERSION_HEX >= 0x030800b1
19916   0, /*tp_vectorcall*/
19917   #endif
19918   #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
19919   0, /*tp_print*/
19920   #endif
19921 };
19922 static struct __pyx_vtabstruct_6Cython_8Compiler_7Visitor_NodeFinder __pyx_vtable_6Cython_8Compiler_7Visitor_NodeFinder;
19923 
__pyx_tp_new_6Cython_8Compiler_7Visitor_NodeFinder(PyTypeObject * t,PyObject * a,PyObject * k)19924 static PyObject *__pyx_tp_new_6Cython_8Compiler_7Visitor_NodeFinder(PyTypeObject *t, PyObject *a, PyObject *k) {
19925   struct __pyx_obj_6Cython_8Compiler_7Visitor_NodeFinder *p;
19926   PyObject *o = __pyx_tp_new_6Cython_8Compiler_7Visitor_TreeVisitor(t, a, k);
19927   if (unlikely(!o)) return 0;
19928   p = ((struct __pyx_obj_6Cython_8Compiler_7Visitor_NodeFinder *)o);
19929   p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_6Cython_8Compiler_7Visitor_TreeVisitor*)__pyx_vtabptr_6Cython_8Compiler_7Visitor_NodeFinder;
19930   p->node = Py_None; Py_INCREF(Py_None);
19931   return o;
19932 }
19933 
__pyx_tp_dealloc_6Cython_8Compiler_7Visitor_NodeFinder(PyObject * o)19934 static void __pyx_tp_dealloc_6Cython_8Compiler_7Visitor_NodeFinder(PyObject *o) {
19935   struct __pyx_obj_6Cython_8Compiler_7Visitor_NodeFinder *p = (struct __pyx_obj_6Cython_8Compiler_7Visitor_NodeFinder *)o;
19936   #if CYTHON_USE_TP_FINALIZE
19937   if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) {
19938     if (PyObject_CallFinalizerFromDealloc(o)) return;
19939   }
19940   #endif
19941   PyObject_GC_UnTrack(o);
19942   Py_CLEAR(p->node);
19943   PyObject_GC_Track(o);
19944   __pyx_tp_dealloc_6Cython_8Compiler_7Visitor_TreeVisitor(o);
19945 }
19946 
__pyx_tp_traverse_6Cython_8Compiler_7Visitor_NodeFinder(PyObject * o,visitproc v,void * a)19947 static int __pyx_tp_traverse_6Cython_8Compiler_7Visitor_NodeFinder(PyObject *o, visitproc v, void *a) {
19948   int e;
19949   struct __pyx_obj_6Cython_8Compiler_7Visitor_NodeFinder *p = (struct __pyx_obj_6Cython_8Compiler_7Visitor_NodeFinder *)o;
19950   e = __pyx_tp_traverse_6Cython_8Compiler_7Visitor_TreeVisitor(o, v, a); if (e) return e;
19951   if (p->node) {
19952     e = (*v)(p->node, a); if (e) return e;
19953   }
19954   return 0;
19955 }
19956 
__pyx_tp_clear_6Cython_8Compiler_7Visitor_NodeFinder(PyObject * o)19957 static int __pyx_tp_clear_6Cython_8Compiler_7Visitor_NodeFinder(PyObject *o) {
19958   PyObject* tmp;
19959   struct __pyx_obj_6Cython_8Compiler_7Visitor_NodeFinder *p = (struct __pyx_obj_6Cython_8Compiler_7Visitor_NodeFinder *)o;
19960   __pyx_tp_clear_6Cython_8Compiler_7Visitor_TreeVisitor(o);
19961   tmp = ((PyObject*)p->node);
19962   p->node = Py_None; Py_INCREF(Py_None);
19963   Py_XDECREF(tmp);
19964   return 0;
19965 }
19966 
__pyx_getprop_6Cython_8Compiler_7Visitor_10NodeFinder_found(PyObject * o,CYTHON_UNUSED void * x)19967 static PyObject *__pyx_getprop_6Cython_8Compiler_7Visitor_10NodeFinder_found(PyObject *o, CYTHON_UNUSED void *x) {
19968   return __pyx_pw_6Cython_8Compiler_7Visitor_10NodeFinder_5found_1__get__(o);
19969 }
19970 
__pyx_setprop_6Cython_8Compiler_7Visitor_10NodeFinder_found(PyObject * o,PyObject * v,CYTHON_UNUSED void * x)19971 static int __pyx_setprop_6Cython_8Compiler_7Visitor_10NodeFinder_found(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
19972   if (v) {
19973     return __pyx_pw_6Cython_8Compiler_7Visitor_10NodeFinder_5found_3__set__(o, v);
19974   }
19975   else {
19976     PyErr_SetString(PyExc_NotImplementedError, "__del__");
19977     return -1;
19978   }
19979 }
19980 
19981 static PyMethodDef __pyx_methods_6Cython_8Compiler_7Visitor_NodeFinder[] = {
19982   {"visit_Node", (PyCFunction)__pyx_pw_6Cython_8Compiler_7Visitor_10NodeFinder_3visit_Node, METH_O, 0},
19983   {0, 0, 0, 0}
19984 };
19985 
19986 static struct PyGetSetDef __pyx_getsets_6Cython_8Compiler_7Visitor_NodeFinder[] = {
19987   {(char *)"found", __pyx_getprop_6Cython_8Compiler_7Visitor_10NodeFinder_found, __pyx_setprop_6Cython_8Compiler_7Visitor_10NodeFinder_found, (char *)0, 0},
19988   {0, 0, 0, 0, 0}
19989 };
19990 
19991 static PyTypeObject __pyx_type_6Cython_8Compiler_7Visitor_NodeFinder = {
19992   PyVarObject_HEAD_INIT(0, 0)
19993   "Cython.Compiler.Visitor.NodeFinder", /*tp_name*/
19994   sizeof(struct __pyx_obj_6Cython_8Compiler_7Visitor_NodeFinder), /*tp_basicsize*/
19995   0, /*tp_itemsize*/
19996   __pyx_tp_dealloc_6Cython_8Compiler_7Visitor_NodeFinder, /*tp_dealloc*/
19997   #if PY_VERSION_HEX < 0x030800b4
19998   0, /*tp_print*/
19999   #endif
20000   #if PY_VERSION_HEX >= 0x030800b4
20001   0, /*tp_vectorcall_offset*/
20002   #endif
20003   0, /*tp_getattr*/
20004   0, /*tp_setattr*/
20005   #if PY_MAJOR_VERSION < 3
20006   0, /*tp_compare*/
20007   #endif
20008   #if PY_MAJOR_VERSION >= 3
20009   0, /*tp_as_async*/
20010   #endif
20011   0, /*tp_repr*/
20012   0, /*tp_as_number*/
20013   0, /*tp_as_sequence*/
20014   0, /*tp_as_mapping*/
20015   0, /*tp_hash*/
20016   0, /*tp_call*/
20017   0, /*tp_str*/
20018   0, /*tp_getattro*/
20019   0, /*tp_setattro*/
20020   0, /*tp_as_buffer*/
20021   Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
20022   "\n    Find out if a node appears in a subtree.\n    ", /*tp_doc*/
20023   __pyx_tp_traverse_6Cython_8Compiler_7Visitor_NodeFinder, /*tp_traverse*/
20024   __pyx_tp_clear_6Cython_8Compiler_7Visitor_NodeFinder, /*tp_clear*/
20025   0, /*tp_richcompare*/
20026   0, /*tp_weaklistoffset*/
20027   0, /*tp_iter*/
20028   0, /*tp_iternext*/
20029   __pyx_methods_6Cython_8Compiler_7Visitor_NodeFinder, /*tp_methods*/
20030   0, /*tp_members*/
20031   __pyx_getsets_6Cython_8Compiler_7Visitor_NodeFinder, /*tp_getset*/
20032   0, /*tp_base*/
20033   0, /*tp_dict*/
20034   0, /*tp_descr_get*/
20035   0, /*tp_descr_set*/
20036   0, /*tp_dictoffset*/
20037   __pyx_pw_6Cython_8Compiler_7Visitor_10NodeFinder_1__init__, /*tp_init*/
20038   0, /*tp_alloc*/
20039   __pyx_tp_new_6Cython_8Compiler_7Visitor_NodeFinder, /*tp_new*/
20040   0, /*tp_free*/
20041   0, /*tp_is_gc*/
20042   0, /*tp_bases*/
20043   0, /*tp_mro*/
20044   0, /*tp_cache*/
20045   0, /*tp_subclasses*/
20046   0, /*tp_weaklist*/
20047   0, /*tp_del*/
20048   0, /*tp_version_tag*/
20049   #if PY_VERSION_HEX >= 0x030400a1
20050   0, /*tp_finalize*/
20051   #endif
20052   #if PY_VERSION_HEX >= 0x030800b1
20053   0, /*tp_vectorcall*/
20054   #endif
20055   #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
20056   0, /*tp_print*/
20057   #endif
20058 };
20059 
20060 static PyMethodDef __pyx_methods[] = {
20061   {0, 0, 0, 0}
20062 };
20063 
20064 #if PY_MAJOR_VERSION >= 3
20065 #if CYTHON_PEP489_MULTI_PHASE_INIT
20066 static PyObject* __pyx_pymod_create(PyObject *spec, PyModuleDef *def); /*proto*/
20067 static int __pyx_pymod_exec_Visitor(PyObject* module); /*proto*/
20068 static PyModuleDef_Slot __pyx_moduledef_slots[] = {
20069   {Py_mod_create, (void*)__pyx_pymod_create},
20070   {Py_mod_exec, (void*)__pyx_pymod_exec_Visitor},
20071   {0, NULL}
20072 };
20073 #endif
20074 
20075 static struct PyModuleDef __pyx_moduledef = {
20076     PyModuleDef_HEAD_INIT,
20077     "Visitor",
20078     0, /* m_doc */
20079   #if CYTHON_PEP489_MULTI_PHASE_INIT
20080     0, /* m_size */
20081   #else
20082     -1, /* m_size */
20083   #endif
20084     __pyx_methods /* m_methods */,
20085   #if CYTHON_PEP489_MULTI_PHASE_INIT
20086     __pyx_moduledef_slots, /* m_slots */
20087   #else
20088     NULL, /* m_reload */
20089   #endif
20090     NULL, /* m_traverse */
20091     NULL, /* m_clear */
20092     NULL /* m_free */
20093 };
20094 #endif
20095 #ifndef CYTHON_SMALL_CODE
20096 #if defined(__clang__)
20097     #define CYTHON_SMALL_CODE
20098 #elif defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3))
20099     #define CYTHON_SMALL_CODE __attribute__((cold))
20100 #else
20101     #define CYTHON_SMALL_CODE
20102 #endif
20103 #endif
20104 
20105 static __Pyx_StringTabEntry __pyx_string_tab[] = {
20106   {&__pyx_kp_u_, __pyx_k_, sizeof(__pyx_k_), 0, 1, 0, 0},
20107   {&__pyx_n_s_AbortError, __pyx_k_AbortError, sizeof(__pyx_k_AbortError), 0, 0, 1, 1},
20108   {&__pyx_n_s_AttributeError, __pyx_k_AttributeError, sizeof(__pyx_k_AttributeError), 0, 0, 1, 1},
20109   {&__pyx_n_s_Builtin, __pyx_k_Builtin, sizeof(__pyx_k_Builtin), 0, 0, 1, 1},
20110   {&__pyx_kp_u_Cannot_insert_list_here, __pyx_k_Cannot_insert_list_here, sizeof(__pyx_k_Cannot_insert_list_here), 0, 1, 0, 0},
20111   {&__pyx_kp_s_Clean_up_references_to_nodes_th, __pyx_k_Clean_up_references_to_nodes_th, sizeof(__pyx_k_Clean_up_references_to_nodes_th), 0, 0, 1, 0},
20112   {&__pyx_n_s_CompileError, __pyx_k_CompileError, sizeof(__pyx_k_CompileError), 0, 0, 1, 1},
20113   {&__pyx_n_s_CompilerCrash, __pyx_k_CompilerCrash, sizeof(__pyx_k_CompilerCrash), 0, 0, 1, 1},
20114   {&__pyx_n_s_CythonTransform, __pyx_k_CythonTransform, sizeof(__pyx_k_CythonTransform), 0, 0, 1, 1},
20115   {&__pyx_n_s_CythonTransform_visit_CompilerDi, __pyx_k_CythonTransform_visit_CompilerDi, sizeof(__pyx_k_CythonTransform_visit_CompilerDi), 0, 0, 1, 1},
20116   {&__pyx_n_s_CythonTransform_visit_Node, __pyx_k_CythonTransform_visit_Node, sizeof(__pyx_k_CythonTransform_visit_Node), 0, 0, 1, 1},
20117   {&__pyx_n_s_Cython_Compiler_Visitor, __pyx_k_Cython_Compiler_Visitor, sizeof(__pyx_k_Cython_Compiler_Visitor), 0, 0, 1, 1},
20118   {&__pyx_kp_s_Cython_Compiler_Visitor_py, __pyx_k_Cython_Compiler_Visitor_py, sizeof(__pyx_k_Cython_Compiler_Visitor_py), 0, 0, 1, 0},
20119   {&__pyx_n_s_DebugFlags, __pyx_k_DebugFlags, sizeof(__pyx_k_DebugFlags), 0, 0, 1, 1},
20120   {&__pyx_n_s_DefNode, __pyx_k_DefNode, sizeof(__pyx_k_DefNode), 0, 0, 1, 1},
20121   {&__pyx_n_s_DictNode, __pyx_k_DictNode, sizeof(__pyx_k_DictNode), 0, 0, 1, 1},
20122   {&__pyx_n_s_EnvTransform, __pyx_k_EnvTransform, sizeof(__pyx_k_EnvTransform), 0, 0, 1, 1},
20123   {&__pyx_n_s_EnvTransform_current_env, __pyx_k_EnvTransform_current_env, sizeof(__pyx_k_EnvTransform_current_env), 0, 0, 1, 1},
20124   {&__pyx_n_s_EnvTransform_current_scope_node, __pyx_k_EnvTransform_current_scope_node, sizeof(__pyx_k_EnvTransform_current_scope_node), 0, 0, 1, 1},
20125   {&__pyx_n_s_EnvTransform_enter_scope, __pyx_k_EnvTransform_enter_scope, sizeof(__pyx_k_EnvTransform_enter_scope), 0, 0, 1, 1},
20126   {&__pyx_n_s_EnvTransform_exit_scope, __pyx_k_EnvTransform_exit_scope, sizeof(__pyx_k_EnvTransform_exit_scope), 0, 0, 1, 1},
20127   {&__pyx_n_s_EnvTransform_global_scope, __pyx_k_EnvTransform_global_scope, sizeof(__pyx_k_EnvTransform_global_scope), 0, 0, 1, 1},
20128   {&__pyx_n_s_EnvTransform_visit_CArgDeclNode, __pyx_k_EnvTransform_visit_CArgDeclNode, sizeof(__pyx_k_EnvTransform_visit_CArgDeclNode), 0, 0, 1, 1},
20129   {&__pyx_n_s_EnvTransform_visit_CStructOrUnio, __pyx_k_EnvTransform_visit_CStructOrUnio, sizeof(__pyx_k_EnvTransform_visit_CStructOrUnio), 0, 0, 1, 1},
20130   {&__pyx_n_s_EnvTransform_visit_ClassDefNode, __pyx_k_EnvTransform_visit_ClassDefNode, sizeof(__pyx_k_EnvTransform_visit_ClassDefNode), 0, 0, 1, 1},
20131   {&__pyx_n_s_EnvTransform_visit_FuncDefNode, __pyx_k_EnvTransform_visit_FuncDefNode, sizeof(__pyx_k_EnvTransform_visit_FuncDefNode), 0, 0, 1, 1},
20132   {&__pyx_n_s_EnvTransform_visit_GeneratorBody, __pyx_k_EnvTransform_visit_GeneratorBody, sizeof(__pyx_k_EnvTransform_visit_GeneratorBody), 0, 0, 1, 1},
20133   {&__pyx_n_s_EnvTransform_visit_ScopedExprNod, __pyx_k_EnvTransform_visit_ScopedExprNod, sizeof(__pyx_k_EnvTransform_visit_ScopedExprNod), 0, 0, 1, 1},
20134   {&__pyx_n_s_Errors, __pyx_k_Errors, sizeof(__pyx_k_Errors), 0, 0, 1, 1},
20135   {&__pyx_n_s_ExprNode, __pyx_k_ExprNode, sizeof(__pyx_k_ExprNode), 0, 0, 1, 1},
20136   {&__pyx_n_s_ExprNodes, __pyx_k_ExprNodes, sizeof(__pyx_k_ExprNodes), 0, 0, 1, 1},
20137   {&__pyx_kp_u_File, __pyx_k_File, sizeof(__pyx_k_File), 0, 1, 0, 0},
20138   {&__pyx_n_s_Future, __pyx_k_Future, sizeof(__pyx_k_Future), 0, 0, 1, 1},
20139   {&__pyx_n_s_KeyError, __pyx_k_KeyError, sizeof(__pyx_k_KeyError), 0, 0, 1, 1},
20140   {&__pyx_n_s_MethodDispatcherTransform, __pyx_k_MethodDispatcherTransform, sizeof(__pyx_k_MethodDispatcherTransform), 0, 0, 1, 1},
20141   {&__pyx_n_s_MethodDispatcherTransform__handl, __pyx_k_MethodDispatcherTransform__handl, sizeof(__pyx_k_MethodDispatcherTransform__handl), 0, 0, 1, 1},
20142   {&__pyx_n_s_MethodDispatcherTransform__handl_2, __pyx_k_MethodDispatcherTransform__handl_2, sizeof(__pyx_k_MethodDispatcherTransform__handl_2), 0, 0, 1, 1},
20143   {&__pyx_n_s_MethodDispatcherTransform_visit, __pyx_k_MethodDispatcherTransform_visit, sizeof(__pyx_k_MethodDispatcherTransform_visit), 0, 0, 1, 1},
20144   {&__pyx_n_s_MethodDispatcherTransform_visit_2, __pyx_k_MethodDispatcherTransform_visit_2, sizeof(__pyx_k_MethodDispatcherTransform_visit_2), 0, 0, 1, 1},
20145   {&__pyx_n_s_MethodDispatcherTransform_visit_3, __pyx_k_MethodDispatcherTransform_visit_3, sizeof(__pyx_k_MethodDispatcherTransform_visit_3), 0, 0, 1, 1},
20146   {&__pyx_n_s_MethodDispatcherTransform_visit_4, __pyx_k_MethodDispatcherTransform_visit_4, sizeof(__pyx_k_MethodDispatcherTransform_visit_4), 0, 0, 1, 1},
20147   {&__pyx_n_s_MethodDispatcherTransform_visit_5, __pyx_k_MethodDispatcherTransform_visit_5, sizeof(__pyx_k_MethodDispatcherTransform_visit_5), 0, 0, 1, 1},
20148   {&__pyx_n_s_ModuleNode, __pyx_k_ModuleNode, sizeof(__pyx_k_ModuleNode), 0, 0, 1, 1},
20149   {&__pyx_n_s_NameNode, __pyx_k_NameNode, sizeof(__pyx_k_NameNode), 0, 0, 1, 1},
20150   {&__pyx_n_s_Node, __pyx_k_Node, sizeof(__pyx_k_Node), 0, 0, 1, 1},
20151   {&__pyx_n_s_NodeFinder, __pyx_k_NodeFinder, sizeof(__pyx_k_NodeFinder), 0, 0, 1, 1},
20152   {&__pyx_n_s_NodeFinder_visit_Node, __pyx_k_NodeFinder_visit_Node, sizeof(__pyx_k_NodeFinder_visit_Node), 0, 0, 1, 1},
20153   {&__pyx_n_s_NodeRefCleanupMixin, __pyx_k_NodeRefCleanupMixin, sizeof(__pyx_k_NodeRefCleanupMixin), 0, 0, 1, 1},
20154   {&__pyx_n_s_NodeRefCleanupMixin___init, __pyx_k_NodeRefCleanupMixin___init, sizeof(__pyx_k_NodeRefCleanupMixin___init), 0, 0, 1, 1},
20155   {&__pyx_n_s_NodeRefCleanupMixin_replace, __pyx_k_NodeRefCleanupMixin_replace, sizeof(__pyx_k_NodeRefCleanupMixin_replace), 0, 0, 1, 1},
20156   {&__pyx_n_s_NodeRefCleanupMixin_visit_CloneN, __pyx_k_NodeRefCleanupMixin_visit_CloneN, sizeof(__pyx_k_NodeRefCleanupMixin_visit_CloneN), 0, 0, 1, 1},
20157   {&__pyx_n_s_NodeRefCleanupMixin_visit_Result, __pyx_k_NodeRefCleanupMixin_visit_Result, sizeof(__pyx_k_NodeRefCleanupMixin_visit_Result), 0, 0, 1, 1},
20158   {&__pyx_n_s_Nodes, __pyx_k_Nodes, sizeof(__pyx_k_Nodes), 0, 0, 1, 1},
20159   {&__pyx_kp_u_Parse_tree_dump_at_phase_s, __pyx_k_Parse_tree_dump_at_phase_s, sizeof(__pyx_k_Parse_tree_dump_at_phase_s), 0, 1, 0, 0},
20160   {&__pyx_n_s_PrintTree, __pyx_k_PrintTree, sizeof(__pyx_k_PrintTree), 0, 0, 1, 1},
20161   {&__pyx_n_s_PrintTree___call, __pyx_k_PrintTree___call, sizeof(__pyx_k_PrintTree___call), 0, 0, 1, 1},
20162   {&__pyx_n_s_PrintTree___init, __pyx_k_PrintTree___init, sizeof(__pyx_k_PrintTree___init), 0, 0, 1, 1},
20163   {&__pyx_n_s_PrintTree__print_node, __pyx_k_PrintTree__print_node, sizeof(__pyx_k_PrintTree__print_node), 0, 0, 1, 1},
20164   {&__pyx_n_s_PrintTree_indent, __pyx_k_PrintTree_indent, sizeof(__pyx_k_PrintTree_indent), 0, 0, 1, 1},
20165   {&__pyx_n_s_PrintTree_repr_of, __pyx_k_PrintTree_repr_of, sizeof(__pyx_k_PrintTree_repr_of), 0, 0, 1, 1},
20166   {&__pyx_n_s_PrintTree_unindent, __pyx_k_PrintTree_unindent, sizeof(__pyx_k_PrintTree_unindent), 0, 0, 1, 1},
20167   {&__pyx_n_s_PrintTree_visit_CloneNode, __pyx_k_PrintTree_visit_CloneNode, sizeof(__pyx_k_PrintTree_visit_CloneNode), 0, 0, 1, 1},
20168   {&__pyx_n_s_PrintTree_visit_Node, __pyx_k_PrintTree_visit_Node, sizeof(__pyx_k_PrintTree_visit_Node), 0, 0, 1, 1},
20169   {&__pyx_kp_s_Prints_a_representation_of_the_t, __pyx_k_Prints_a_representation_of_the_t, sizeof(__pyx_k_Prints_a_representation_of_the_t), 0, 0, 1, 0},
20170   {&__pyx_n_s_RecursiveNodeReplacer, __pyx_k_RecursiveNodeReplacer, sizeof(__pyx_k_RecursiveNodeReplacer), 0, 0, 1, 1},
20171   {&__pyx_n_s_RecursiveNodeReplacer_visit_Clon, __pyx_k_RecursiveNodeReplacer_visit_Clon, sizeof(__pyx_k_RecursiveNodeReplacer_visit_Clon), 0, 0, 1, 1},
20172   {&__pyx_n_s_RecursiveNodeReplacer_visit_Node, __pyx_k_RecursiveNodeReplacer_visit_Node, sizeof(__pyx_k_RecursiveNodeReplacer_visit_Node), 0, 0, 1, 1},
20173   {&__pyx_n_s_RuntimeError, __pyx_k_RuntimeError, sizeof(__pyx_k_RuntimeError), 0, 0, 1, 1},
20174   {&__pyx_n_s_ScopeTrackingTransform, __pyx_k_ScopeTrackingTransform, sizeof(__pyx_k_ScopeTrackingTransform), 0, 0, 1, 1},
20175   {&__pyx_n_s_ScopeTrackingTransform_visit_CCl, __pyx_k_ScopeTrackingTransform_visit_CCl, sizeof(__pyx_k_ScopeTrackingTransform_visit_CCl), 0, 0, 1, 1},
20176   {&__pyx_n_s_ScopeTrackingTransform_visit_CSt, __pyx_k_ScopeTrackingTransform_visit_CSt, sizeof(__pyx_k_ScopeTrackingTransform_visit_CSt), 0, 0, 1, 1},
20177   {&__pyx_n_s_ScopeTrackingTransform_visit_Fun, __pyx_k_ScopeTrackingTransform_visit_Fun, sizeof(__pyx_k_ScopeTrackingTransform_visit_Fun), 0, 0, 1, 1},
20178   {&__pyx_n_s_ScopeTrackingTransform_visit_Mod, __pyx_k_ScopeTrackingTransform_visit_Mod, sizeof(__pyx_k_ScopeTrackingTransform_visit_Mod), 0, 0, 1, 1},
20179   {&__pyx_n_s_ScopeTrackingTransform_visit_PyC, __pyx_k_ScopeTrackingTransform_visit_PyC, sizeof(__pyx_k_ScopeTrackingTransform_visit_PyC), 0, 0, 1, 1},
20180   {&__pyx_n_s_TreeVisitor, __pyx_k_TreeVisitor, sizeof(__pyx_k_TreeVisitor), 0, 0, 1, 1},
20181   {&__pyx_n_s_TreeVisitor__find_node_path, __pyx_k_TreeVisitor__find_node_path, sizeof(__pyx_k_TreeVisitor__find_node_path), 0, 0, 1, 1},
20182   {&__pyx_n_s_TreeVisitor_dump_node, __pyx_k_TreeVisitor_dump_node, sizeof(__pyx_k_TreeVisitor_dump_node), 0, 0, 1, 1},
20183   {&__pyx_n_s_TreeVisitor_visit, __pyx_k_TreeVisitor_visit, sizeof(__pyx_k_TreeVisitor_visit), 0, 0, 1, 1},
20184   {&__pyx_n_s_TreeVisitor_visitchildren, __pyx_k_TreeVisitor_visitchildren, sizeof(__pyx_k_TreeVisitor_visitchildren), 0, 0, 1, 1},
20185   {&__pyx_n_s_TupleNode, __pyx_k_TupleNode, sizeof(__pyx_k_TupleNode), 0, 0, 1, 1},
20186   {&__pyx_n_s_TypeSlots, __pyx_k_TypeSlots, sizeof(__pyx_k_TypeSlots), 0, 0, 1, 1},
20187   {&__pyx_kp_u_Visitor, __pyx_k_Visitor, sizeof(__pyx_k_Visitor), 0, 1, 0, 0},
20188   {&__pyx_n_s_VisitorTransform, __pyx_k_VisitorTransform, sizeof(__pyx_k_VisitorTransform), 0, 0, 1, 1},
20189   {&__pyx_n_s_VisitorTransform_recurse_to_chil, __pyx_k_VisitorTransform_recurse_to_chil, sizeof(__pyx_k_VisitorTransform_recurse_to_chil), 0, 0, 1, 1},
20190   {&__pyx_n_s_VisitorTransform_visitchildren, __pyx_k_VisitorTransform_visitchildren, sizeof(__pyx_k_VisitorTransform_visitchildren), 0, 0, 1, 1},
20191   {&__pyx_kp_u__10, __pyx_k__10, sizeof(__pyx_k__10), 0, 1, 0, 0},
20192   {&__pyx_kp_u__13, __pyx_k__13, sizeof(__pyx_k__13), 0, 1, 0, 0},
20193   {&__pyx_kp_u__15, __pyx_k__15, sizeof(__pyx_k__15), 0, 1, 0, 0},
20194   {&__pyx_kp_u__16, __pyx_k__16, sizeof(__pyx_k__16), 0, 1, 0, 0},
20195   {&__pyx_kp_u__17, __pyx_k__17, sizeof(__pyx_k__17), 0, 1, 0, 0},
20196   {&__pyx_kp_u__18, __pyx_k__18, sizeof(__pyx_k__18), 0, 1, 0, 0},
20197   {&__pyx_kp_u__19, __pyx_k__19, sizeof(__pyx_k__19), 0, 1, 0, 0},
20198   {&__pyx_n_u__2, __pyx_k__2, sizeof(__pyx_k__2), 0, 1, 0, 1},
20199   {&__pyx_kp_u__20, __pyx_k__20, sizeof(__pyx_k__20), 0, 1, 0, 0},
20200   {&__pyx_kp_u__21, __pyx_k__21, sizeof(__pyx_k__21), 0, 1, 0, 0},
20201   {&__pyx_kp_u__3, __pyx_k__3, sizeof(__pyx_k__3), 0, 1, 0, 0},
20202   {&__pyx_kp_u__4, __pyx_k__4, sizeof(__pyx_k__4), 0, 1, 0, 0},
20203   {&__pyx_kp_u__5, __pyx_k__5, sizeof(__pyx_k__5), 0, 1, 0, 0},
20204   {&__pyx_kp_u__6, __pyx_k__6, sizeof(__pyx_k__6), 0, 1, 0, 0},
20205   {&__pyx_n_s__7, __pyx_k__7, sizeof(__pyx_k__7), 0, 0, 1, 1},
20206   {&__pyx_kp_u__7, __pyx_k__7, sizeof(__pyx_k__7), 0, 1, 0, 0},
20207   {&__pyx_kp_u__79, __pyx_k__79, sizeof(__pyx_k__79), 0, 1, 0, 0},
20208   {&__pyx_kp_u__8, __pyx_k__8, sizeof(__pyx_k__8), 0, 1, 0, 0},
20209   {&__pyx_kp_u__80, __pyx_k__80, sizeof(__pyx_k__80), 0, 1, 0, 0},
20210   {&__pyx_kp_u__81, __pyx_k__81, sizeof(__pyx_k__81), 0, 1, 0, 0},
20211   {&__pyx_kp_u__82, __pyx_k__82, sizeof(__pyx_k__82), 0, 1, 0, 0},
20212   {&__pyx_kp_u__83, __pyx_k__83, sizeof(__pyx_k__83), 0, 1, 0, 0},
20213   {&__pyx_kp_u__84, __pyx_k__84, sizeof(__pyx_k__84), 0, 1, 0, 0},
20214   {&__pyx_kp_u__85, __pyx_k__85, sizeof(__pyx_k__85), 0, 1, 0, 0},
20215   {&__pyx_kp_u__86, __pyx_k__86, sizeof(__pyx_k__86), 0, 1, 0, 0},
20216   {&__pyx_kp_u__87, __pyx_k__87, sizeof(__pyx_k__87), 0, 1, 0, 0},
20217   {&__pyx_kp_u__88, __pyx_k__88, sizeof(__pyx_k__88), 0, 1, 0, 0},
20218   {&__pyx_kp_u__89, __pyx_k__89, sizeof(__pyx_k__89), 0, 1, 0, 0},
20219   {&__pyx_kp_u__9, __pyx_k__9, sizeof(__pyx_k__9), 0, 1, 0, 0},
20220   {&__pyx_kp_u__90, __pyx_k__90, sizeof(__pyx_k__90), 0, 1, 0, 0},
20221   {&__pyx_kp_u__91, __pyx_k__91, sizeof(__pyx_k__91), 0, 1, 0, 0},
20222   {&__pyx_kp_u__92, __pyx_k__92, sizeof(__pyx_k__92), 0, 1, 0, 0},
20223   {&__pyx_kp_u__93, __pyx_k__93, sizeof(__pyx_k__93), 0, 1, 0, 0},
20224   {&__pyx_kp_u__94, __pyx_k__94, sizeof(__pyx_k__94), 0, 1, 0, 0},
20225   {&__pyx_kp_u__95, __pyx_k__95, sizeof(__pyx_k__95), 0, 1, 0, 0},
20226   {&__pyx_kp_u__96, __pyx_k__96, sizeof(__pyx_k__96), 0, 1, 0, 0},
20227   {&__pyx_n_s_access_path, __pyx_k_access_path, sizeof(__pyx_k_access_path), 0, 0, 1, 1},
20228   {&__pyx_n_u_add, __pyx_k_add, sizeof(__pyx_k_add), 0, 1, 0, 1},
20229   {&__pyx_n_u_and, __pyx_k_and, sizeof(__pyx_k_and), 0, 1, 0, 1},
20230   {&__pyx_n_s_arg, __pyx_k_arg, sizeof(__pyx_k_arg), 0, 0, 1, 1},
20231   {&__pyx_kp_u_arg_2, __pyx_k_arg_2, sizeof(__pyx_k_arg_2), 0, 1, 0, 0},
20232   {&__pyx_n_s_arg_list, __pyx_k_arg_list, sizeof(__pyx_k_arg_list), 0, 0, 1, 1},
20233   {&__pyx_n_s_arg_tuple, __pyx_k_arg_tuple, sizeof(__pyx_k_arg_tuple), 0, 0, 1, 1},
20234   {&__pyx_n_s_args, __pyx_k_args, sizeof(__pyx_k_args), 0, 0, 1, 1},
20235   {&__pyx_n_s_as_variable, __pyx_k_as_variable, sizeof(__pyx_k_as_variable), 0, 0, 1, 1},
20236   {&__pyx_n_s_attr, __pyx_k_attr, sizeof(__pyx_k_attr), 0, 0, 1, 1},
20237   {&__pyx_n_s_attr_name, __pyx_k_attr_name, sizeof(__pyx_k_attr_name), 0, 0, 1, 1},
20238   {&__pyx_n_s_attribute, __pyx_k_attribute, sizeof(__pyx_k_attribute), 0, 0, 1, 1},
20239   {&__pyx_n_s_attribute_names, __pyx_k_attribute_names, sizeof(__pyx_k_attribute_names), 0, 0, 1, 1},
20240   {&__pyx_n_s_attrname, __pyx_k_attrname, sizeof(__pyx_k_attrname), 0, 0, 1, 1},
20241   {&__pyx_n_s_attrs, __pyx_k_attrs, sizeof(__pyx_k_attrs), 0, 0, 1, 1},
20242   {&__pyx_n_s_basename, __pyx_k_basename, sizeof(__pyx_k_basename), 0, 0, 1, 1},
20243   {&__pyx_n_s_builtin_scope, __pyx_k_builtin_scope, sizeof(__pyx_k_builtin_scope), 0, 0, 1, 1},
20244   {&__pyx_n_s_call, __pyx_k_call, sizeof(__pyx_k_call), 0, 0, 1, 1},
20245   {&__pyx_n_s_cascade, __pyx_k_cascade, sizeof(__pyx_k_cascade), 0, 0, 1, 1},
20246   {&__pyx_n_u_cclass, __pyx_k_cclass, sizeof(__pyx_k_cclass), 0, 1, 0, 1},
20247   {&__pyx_n_s_cf_assignments, __pyx_k_cf_assignments, sizeof(__pyx_k_cf_assignments), 0, 0, 1, 1},
20248   {&__pyx_n_s_cf_state, __pyx_k_cf_state, sizeof(__pyx_k_cf_state), 0, 0, 1, 1},
20249   {&__pyx_n_s_child_attrs, __pyx_k_child_attrs, sizeof(__pyx_k_child_attrs), 0, 0, 1, 1},
20250   {&__pyx_n_u_child_attrs, __pyx_k_child_attrs, sizeof(__pyx_k_child_attrs), 0, 1, 0, 1},
20251   {&__pyx_n_s_class, __pyx_k_class, sizeof(__pyx_k_class), 0, 0, 1, 1},
20252   {&__pyx_n_s_cline_in_traceback, __pyx_k_cline_in_traceback, sizeof(__pyx_k_cline_in_traceback), 0, 0, 1, 1},
20253   {&__pyx_n_s_co_filename, __pyx_k_co_filename, sizeof(__pyx_k_co_filename), 0, 0, 1, 1},
20254   {&__pyx_n_s_co_name, __pyx_k_co_name, sizeof(__pyx_k_co_name), 0, 0, 1, 1},
20255   {&__pyx_n_s_code, __pyx_k_code, sizeof(__pyx_k_code), 0, 0, 1, 1},
20256   {&__pyx_n_u_contains, __pyx_k_contains, sizeof(__pyx_k_contains), 0, 1, 0, 1},
20257   {&__pyx_n_s_context, __pyx_k_context, sizeof(__pyx_k_context), 0, 0, 1, 1},
20258   {&__pyx_n_u_cpp_message, __pyx_k_cpp_message, sizeof(__pyx_k_cpp_message), 0, 1, 0, 1},
20259   {&__pyx_n_s_current_env, __pyx_k_current_env, sizeof(__pyx_k_current_env), 0, 0, 1, 1},
20260   {&__pyx_n_s_current_scope_node, __pyx_k_current_scope_node, sizeof(__pyx_k_current_scope_node), 0, 0, 1, 1},
20261   {&__pyx_kp_u_d, __pyx_k_d, sizeof(__pyx_k_d), 0, 1, 0, 0},
20262   {&__pyx_kp_u_d_2, __pyx_k_d_2, sizeof(__pyx_k_d_2), 0, 1, 0, 0},
20263   {&__pyx_n_u_d_3, __pyx_k_d_3, sizeof(__pyx_k_d_3), 0, 1, 0, 1},
20264   {&__pyx_n_s_debug_no_exception_intercept, __pyx_k_debug_no_exception_intercept, sizeof(__pyx_k_debug_no_exception_intercept), 0, 0, 1, 1},
20265   {&__pyx_n_s_default, __pyx_k_default, sizeof(__pyx_k_default), 0, 0, 1, 1},
20266   {&__pyx_n_u_default, __pyx_k_default, sizeof(__pyx_k_default), 0, 1, 0, 1},
20267   {&__pyx_n_s_dict, __pyx_k_dict, sizeof(__pyx_k_dict), 0, 0, 1, 1},
20268   {&__pyx_n_s_directives, __pyx_k_directives, sizeof(__pyx_k_directives), 0, 0, 1, 1},
20269   {&__pyx_n_u_div, __pyx_k_div, sizeof(__pyx_k_div), 0, 1, 0, 1},
20270   {&__pyx_n_s_division, __pyx_k_division, sizeof(__pyx_k_division), 0, 0, 1, 1},
20271   {&__pyx_n_s_doc, __pyx_k_doc, sizeof(__pyx_k_doc), 0, 0, 1, 1},
20272   {&__pyx_n_s_doctest, __pyx_k_doctest, sizeof(__pyx_k_doctest), 0, 0, 1, 1},
20273   {&__pyx_kp_u_does_not_accept_object, __pyx_k_does_not_accept_object, sizeof(__pyx_k_does_not_accept_object), 0, 1, 0, 0},
20274   {&__pyx_n_s_dump_node, __pyx_k_dump_node, sizeof(__pyx_k_dump_node), 0, 0, 1, 1},
20275   {&__pyx_n_s_end, __pyx_k_end, sizeof(__pyx_k_end), 0, 0, 1, 1},
20276   {&__pyx_n_s_endswith, __pyx_k_endswith, sizeof(__pyx_k_endswith), 0, 0, 1, 1},
20277   {&__pyx_n_s_enter_scope, __pyx_k_enter_scope, sizeof(__pyx_k_enter_scope), 0, 0, 1, 1},
20278   {&__pyx_n_s_entry, __pyx_k_entry, sizeof(__pyx_k_entry), 0, 0, 1, 1},
20279   {&__pyx_n_s_enumerate, __pyx_k_enumerate, sizeof(__pyx_k_enumerate), 0, 0, 1, 1},
20280   {&__pyx_n_u_eq, __pyx_k_eq, sizeof(__pyx_k_eq), 0, 1, 0, 1},
20281   {&__pyx_n_s_exc_info, __pyx_k_exc_info, sizeof(__pyx_k_exc_info), 0, 0, 1, 1},
20282   {&__pyx_n_s_exclude, __pyx_k_exclude, sizeof(__pyx_k_exclude), 0, 0, 1, 1},
20283   {&__pyx_n_s_exit_scope, __pyx_k_exit_scope, sizeof(__pyx_k_exit_scope), 0, 0, 1, 1},
20284   {&__pyx_n_s_expr, __pyx_k_expr, sizeof(__pyx_k_expr), 0, 0, 1, 1},
20285   {&__pyx_n_s_expr_scope, __pyx_k_expr_scope, sizeof(__pyx_k_expr_scope), 0, 0, 1, 1},
20286   {&__pyx_n_s_expression, __pyx_k_expression, sizeof(__pyx_k_expression), 0, 0, 1, 1},
20287   {&__pyx_n_s_f_code, __pyx_k_f_code, sizeof(__pyx_k_f_code), 0, 0, 1, 1},
20288   {&__pyx_n_s_f_lineno, __pyx_k_f_lineno, sizeof(__pyx_k_f_lineno), 0, 0, 1, 1},
20289   {&__pyx_n_s_f_locals, __pyx_k_f_locals, sizeof(__pyx_k_f_locals), 0, 0, 1, 1},
20290   {&__pyx_n_s_find_node_path, __pyx_k_find_node_path, sizeof(__pyx_k_find_node_path), 0, 0, 1, 1},
20291   {&__pyx_n_s_find_special_method_for_binary_o, __pyx_k_find_special_method_for_binary_o, sizeof(__pyx_k_find_special_method_for_binary_o), 0, 0, 1, 1},
20292   {&__pyx_n_s_find_special_method_for_unary_op, __pyx_k_find_special_method_for_unary_op, sizeof(__pyx_k_find_special_method_for_unary_op), 0, 0, 1, 1},
20293   {&__pyx_n_s_finder, __pyx_k_finder, sizeof(__pyx_k_finder), 0, 0, 1, 1},
20294   {&__pyx_n_u_floordiv, __pyx_k_floordiv, sizeof(__pyx_k_floordiv), 0, 1, 0, 1},
20295   {&__pyx_n_s_frame, __pyx_k_frame, sizeof(__pyx_k_frame), 0, 0, 1, 1},
20296   {&__pyx_n_s_function, __pyx_k_function, sizeof(__pyx_k_function), 0, 0, 1, 1},
20297   {&__pyx_n_u_function, __pyx_k_function, sizeof(__pyx_k_function), 0, 1, 0, 1},
20298   {&__pyx_kp_u_function__s, __pyx_k_function__s, sizeof(__pyx_k_function__s), 0, 1, 0, 0},
20299   {&__pyx_n_s_function_name, __pyx_k_function_name, sizeof(__pyx_k_function_name), 0, 0, 1, 1},
20300   {&__pyx_n_s_future_directives, __pyx_k_future_directives, sizeof(__pyx_k_future_directives), 0, 0, 1, 1},
20301   {&__pyx_n_u_ge, __pyx_k_ge, sizeof(__pyx_k_ge), 0, 1, 0, 1},
20302   {&__pyx_n_u_general, __pyx_k_general, sizeof(__pyx_k_general), 0, 1, 0, 1},
20303   {&__pyx_n_s_get, __pyx_k_get, sizeof(__pyx_k_get), 0, 0, 1, 1},
20304   {&__pyx_n_s_get_description, __pyx_k_get_description, sizeof(__pyx_k_get_description), 0, 0, 1, 1},
20305   {&__pyx_n_s_getmro, __pyx_k_getmro, sizeof(__pyx_k_getmro), 0, 0, 1, 1},
20306   {&__pyx_n_u_gil_message, __pyx_k_gil_message, sizeof(__pyx_k_gil_message), 0, 1, 0, 1},
20307   {&__pyx_n_s_global_scope, __pyx_k_global_scope, sizeof(__pyx_k_global_scope), 0, 0, 1, 1},
20308   {&__pyx_n_u_gt, __pyx_k_gt, sizeof(__pyx_k_gt), 0, 1, 0, 1},
20309   {&__pyx_n_u_handle, __pyx_k_handle, sizeof(__pyx_k_handle), 0, 1, 0, 1},
20310   {&__pyx_kp_u_handle_any__s, __pyx_k_handle_any__s, sizeof(__pyx_k_handle_any__s), 0, 1, 0, 0},
20311   {&__pyx_n_s_handle_function, __pyx_k_handle_function, sizeof(__pyx_k_handle_function), 0, 0, 1, 1},
20312   {&__pyx_n_s_handle_method, __pyx_k_handle_method, sizeof(__pyx_k_handle_method), 0, 0, 1, 1},
20313   {&__pyx_n_s_idx, __pyx_k_idx, sizeof(__pyx_k_idx), 0, 0, 1, 1},
20314   {&__pyx_n_s_ignored, __pyx_k_ignored, sizeof(__pyx_k_ignored), 0, 0, 1, 1},
20315   {&__pyx_n_s_import, __pyx_k_import, sizeof(__pyx_k_import), 0, 0, 1, 1},
20316   {&__pyx_kp_u_in, __pyx_k_in, sizeof(__pyx_k_in), 0, 1, 0, 0},
20317   {&__pyx_kp_u_in_2, __pyx_k_in_2, sizeof(__pyx_k_in_2), 0, 1, 0, 0},
20318   {&__pyx_n_u_in_3, __pyx_k_in_3, sizeof(__pyx_k_in_3), 0, 1, 0, 1},
20319   {&__pyx_n_s_indent, __pyx_k_indent, sizeof(__pyx_k_indent), 0, 0, 1, 1},
20320   {&__pyx_n_s_indent_2, __pyx_k_indent_2, sizeof(__pyx_k_indent_2), 0, 0, 1, 1},
20321   {&__pyx_n_s_init, __pyx_k_init, sizeof(__pyx_k_init), 0, 0, 1, 1},
20322   {&__pyx_n_s_inspect, __pyx_k_inspect, sizeof(__pyx_k_inspect), 0, 0, 1, 1},
20323   {&__pyx_n_u_inv, __pyx_k_inv, sizeof(__pyx_k_inv), 0, 1, 0, 1},
20324   {&__pyx_n_s_is_attribute, __pyx_k_is_attribute, sizeof(__pyx_k_is_attribute), 0, 0, 1, 1},
20325   {&__pyx_n_s_is_builtin, __pyx_k_is_builtin, sizeof(__pyx_k_is_builtin), 0, 0, 1, 1},
20326   {&__pyx_n_s_is_builtin_type, __pyx_k_is_builtin_type, sizeof(__pyx_k_is_builtin_type), 0, 0, 1, 1},
20327   {&__pyx_n_s_is_cmethod, __pyx_k_is_cmethod, sizeof(__pyx_k_is_cmethod), 0, 0, 1, 1},
20328   {&__pyx_n_s_is_name, __pyx_k_is_name, sizeof(__pyx_k_is_name), 0, 0, 1, 1},
20329   {&__pyx_n_s_is_pyobject, __pyx_k_is_pyobject, sizeof(__pyx_k_is_pyobject), 0, 0, 1, 1},
20330   {&__pyx_n_s_is_single, __pyx_k_is_single, sizeof(__pyx_k_is_single), 0, 0, 1, 1},
20331   {&__pyx_n_s_is_unbound_method, __pyx_k_is_unbound_method, sizeof(__pyx_k_is_unbound_method), 0, 0, 1, 1},
20332   {&__pyx_n_s_items, __pyx_k_items, sizeof(__pyx_k_items), 0, 0, 1, 1},
20333   {&__pyx_n_s_keyword_args, __pyx_k_keyword_args, sizeof(__pyx_k_keyword_args), 0, 0, 1, 1},
20334   {&__pyx_n_s_kwargs, __pyx_k_kwargs, sizeof(__pyx_k_kwargs), 0, 0, 1, 1},
20335   {&__pyx_n_s_last_traceback, __pyx_k_last_traceback, sizeof(__pyx_k_last_traceback), 0, 0, 1, 1},
20336   {&__pyx_n_u_le, __pyx_k_le, sizeof(__pyx_k_le), 0, 1, 0, 1},
20337   {&__pyx_kp_u_line, __pyx_k_line, sizeof(__pyx_k_line), 0, 1, 0, 0},
20338   {&__pyx_n_s_line_2, __pyx_k_line_2, sizeof(__pyx_k_line_2), 0, 0, 1, 1},
20339   {&__pyx_n_s_line_range, __pyx_k_line_range, sizeof(__pyx_k_line_range), 0, 0, 1, 1},
20340   {&__pyx_n_s_listidx, __pyx_k_listidx, sizeof(__pyx_k_listidx), 0, 0, 1, 1},
20341   {&__pyx_n_s_local_scope, __pyx_k_local_scope, sizeof(__pyx_k_local_scope), 0, 0, 1, 1},
20342   {&__pyx_n_s_lookup_here, __pyx_k_lookup_here, sizeof(__pyx_k_lookup_here), 0, 0, 1, 1},
20343   {&__pyx_n_u_lshift, __pyx_k_lshift, sizeof(__pyx_k_lshift), 0, 1, 0, 1},
20344   {&__pyx_n_u_lt, __pyx_k_lt, sizeof(__pyx_k_lt), 0, 1, 0, 1},
20345   {&__pyx_n_s_main, __pyx_k_main, sizeof(__pyx_k_main), 0, 0, 1, 1},
20346   {&__pyx_n_u_main, __pyx_k_main, sizeof(__pyx_k_main), 0, 1, 0, 1},
20347   {&__pyx_n_s_metaclass, __pyx_k_metaclass, sizeof(__pyx_k_metaclass), 0, 0, 1, 1},
20348   {&__pyx_n_u_method, __pyx_k_method, sizeof(__pyx_k_method), 0, 1, 0, 1},
20349   {&__pyx_n_s_method_name, __pyx_k_method_name, sizeof(__pyx_k_method_name), 0, 0, 1, 1},
20350   {&__pyx_n_s_method_name_to_slot, __pyx_k_method_name_to_slot, sizeof(__pyx_k_method_name_to_slot), 0, 0, 1, 1},
20351   {&__pyx_n_u_mod, __pyx_k_mod, sizeof(__pyx_k_mod), 0, 1, 0, 1},
20352   {&__pyx_n_u_module, __pyx_k_module, sizeof(__pyx_k_module), 0, 1, 0, 1},
20353   {&__pyx_n_s_module_2, __pyx_k_module_2, sizeof(__pyx_k_module_2), 0, 0, 1, 1},
20354   {&__pyx_n_u_mul, __pyx_k_mul, sizeof(__pyx_k_mul), 0, 1, 0, 1},
20355   {&__pyx_n_s_name, __pyx_k_name, sizeof(__pyx_k_name), 0, 0, 1, 1},
20356   {&__pyx_n_s_name_2, __pyx_k_name_2, sizeof(__pyx_k_name_2), 0, 0, 1, 1},
20357   {&__pyx_kp_u_name_3, __pyx_k_name_3, sizeof(__pyx_k_name_3), 0, 1, 0, 0},
20358   {&__pyx_kp_u_name_s, __pyx_k_name_s, sizeof(__pyx_k_name_s), 0, 1, 0, 0},
20359   {&__pyx_n_u_ne, __pyx_k_ne, sizeof(__pyx_k_ne), 0, 1, 0, 1},
20360   {&__pyx_n_u_neg, __pyx_k_neg, sizeof(__pyx_k_neg), 0, 1, 0, 1},
20361   {&__pyx_n_u_new, __pyx_k_new, sizeof(__pyx_k_new), 0, 1, 0, 1},
20362   {&__pyx_n_s_new_node, __pyx_k_new_node, sizeof(__pyx_k_new_node), 0, 0, 1, 1},
20363   {&__pyx_n_s_node, __pyx_k_node, sizeof(__pyx_k_node), 0, 0, 1, 1},
20364   {&__pyx_n_s_nodes, __pyx_k_nodes, sizeof(__pyx_k_nodes), 0, 0, 1, 1},
20365   {&__pyx_kp_u_none, __pyx_k_none, sizeof(__pyx_k_none), 0, 1, 0, 0},
20366   {&__pyx_n_u_not, __pyx_k_not, sizeof(__pyx_k_not), 0, 1, 0, 1},
20367   {&__pyx_n_u_not_2, __pyx_k_not_2, sizeof(__pyx_k_not_2), 0, 1, 0, 1},
20368   {&__pyx_n_s_obj, __pyx_k_obj, sizeof(__pyx_k_obj), 0, 0, 1, 1},
20369   {&__pyx_n_s_obj_type, __pyx_k_obj_type, sizeof(__pyx_k_obj_type), 0, 0, 1, 1},
20370   {&__pyx_n_s_object, __pyx_k_object, sizeof(__pyx_k_object), 0, 0, 1, 1},
20371   {&__pyx_n_u_object, __pyx_k_object, sizeof(__pyx_k_object), 0, 1, 0, 1},
20372   {&__pyx_n_s_old, __pyx_k_old, sizeof(__pyx_k_old), 0, 0, 1, 1},
20373   {&__pyx_n_s_old_node, __pyx_k_old_node, sizeof(__pyx_k_old_node), 0, 0, 1, 1},
20374   {&__pyx_n_s_operand, __pyx_k_operand, sizeof(__pyx_k_operand), 0, 0, 1, 1},
20375   {&__pyx_n_s_operand1, __pyx_k_operand1, sizeof(__pyx_k_operand1), 0, 0, 1, 1},
20376   {&__pyx_n_s_operand2, __pyx_k_operand2, sizeof(__pyx_k_operand2), 0, 0, 1, 1},
20377   {&__pyx_n_s_operator, __pyx_k_operator, sizeof(__pyx_k_operator), 0, 0, 1, 1},
20378   {&__pyx_n_u_or, __pyx_k_or, sizeof(__pyx_k_or), 0, 1, 0, 1},
20379   {&__pyx_n_s_orig_node, __pyx_k_orig_node, sizeof(__pyx_k_orig_node), 0, 0, 1, 1},
20380   {&__pyx_n_s_os, __pyx_k_os, sizeof(__pyx_k_os), 0, 0, 1, 1},
20381   {&__pyx_n_s_os_path, __pyx_k_os_path, sizeof(__pyx_k_os_path), 0, 0, 1, 1},
20382   {&__pyx_n_s_outer_scope, __pyx_k_outer_scope, sizeof(__pyx_k_outer_scope), 0, 0, 1, 1},
20383   {&__pyx_n_s_parent, __pyx_k_parent, sizeof(__pyx_k_parent), 0, 0, 1, 1},
20384   {&__pyx_n_s_parent_type, __pyx_k_parent_type, sizeof(__pyx_k_parent_type), 0, 0, 1, 1},
20385   {&__pyx_n_s_path, __pyx_k_path, sizeof(__pyx_k_path), 0, 0, 1, 1},
20386   {&__pyx_n_s_phase, __pyx_k_phase, sizeof(__pyx_k_phase), 0, 0, 1, 1},
20387   {&__pyx_n_s_pop, __pyx_k_pop, sizeof(__pyx_k_pop), 0, 0, 1, 1},
20388   {&__pyx_n_s_pos, __pyx_k_pos, sizeof(__pyx_k_pos), 0, 0, 1, 1},
20389   {&__pyx_n_u_pos, __pyx_k_pos, sizeof(__pyx_k_pos), 0, 1, 0, 1},
20390   {&__pyx_kp_u_pos_2, __pyx_k_pos_2, sizeof(__pyx_k_pos_2), 0, 1, 0, 0},
20391   {&__pyx_n_u_pos_3, __pyx_k_pos_3, sizeof(__pyx_k_pos_3), 0, 1, 0, 1},
20392   {&__pyx_n_s_positional_args, __pyx_k_positional_args, sizeof(__pyx_k_positional_args), 0, 0, 1, 1},
20393   {&__pyx_n_u_pow, __pyx_k_pow, sizeof(__pyx_k_pow), 0, 1, 0, 1},
20394   {&__pyx_n_s_prepare, __pyx_k_prepare, sizeof(__pyx_k_prepare), 0, 0, 1, 1},
20395   {&__pyx_n_s_print, __pyx_k_print, sizeof(__pyx_k_print), 0, 0, 1, 1},
20396   {&__pyx_n_s_print_node, __pyx_k_print_node, sizeof(__pyx_k_print_node), 0, 0, 1, 1},
20397   {&__pyx_n_s_ptr, __pyx_k_ptr, sizeof(__pyx_k_ptr), 0, 0, 1, 1},
20398   {&__pyx_n_u_pyclass, __pyx_k_pyclass, sizeof(__pyx_k_pyclass), 0, 1, 0, 1},
20399   {&__pyx_n_s_pyx_vtable, __pyx_k_pyx_vtable, sizeof(__pyx_k_pyx_vtable), 0, 0, 1, 1},
20400   {&__pyx_n_s_qualname, __pyx_k_qualname, sizeof(__pyx_k_qualname), 0, 0, 1, 1},
20401   {&__pyx_n_s_recurse_to_children, __pyx_k_recurse_to_children, sizeof(__pyx_k_recurse_to_children), 0, 0, 1, 1},
20402   {&__pyx_n_s_recursively_replace_node, __pyx_k_recursively_replace_node, sizeof(__pyx_k_recursively_replace_node), 0, 0, 1, 1},
20403   {&__pyx_n_s_replace, __pyx_k_replace, sizeof(__pyx_k_replace), 0, 0, 1, 1},
20404   {&__pyx_n_s_replace_in, __pyx_k_replace_in, sizeof(__pyx_k_replace_in), 0, 0, 1, 1},
20405   {&__pyx_n_s_replace_node, __pyx_k_replace_node, sizeof(__pyx_k_replace_node), 0, 0, 1, 1},
20406   {&__pyx_n_s_replacement, __pyx_k_replacement, sizeof(__pyx_k_replacement), 0, 0, 1, 1},
20407   {&__pyx_n_s_replacements, __pyx_k_replacements, sizeof(__pyx_k_replacements), 0, 0, 1, 1},
20408   {&__pyx_n_s_repr_of, __pyx_k_repr_of, sizeof(__pyx_k_repr_of), 0, 0, 1, 1},
20409   {&__pyx_n_s_result, __pyx_k_result, sizeof(__pyx_k_result), 0, 0, 1, 1},
20410   {&__pyx_n_s_rhs, __pyx_k_rhs, sizeof(__pyx_k_rhs), 0, 0, 1, 1},
20411   {&__pyx_n_s_root, __pyx_k_root, sizeof(__pyx_k_root), 0, 0, 1, 1},
20412   {&__pyx_kp_u_root_2, __pyx_k_root_2, sizeof(__pyx_k_root_2), 0, 1, 0, 0},
20413   {&__pyx_n_u_rshift, __pyx_k_rshift, sizeof(__pyx_k_rshift), 0, 1, 0, 1},
20414   {&__pyx_n_s_scope, __pyx_k_scope, sizeof(__pyx_k_scope), 0, 0, 1, 1},
20415   {&__pyx_n_s_self, __pyx_k_self, sizeof(__pyx_k_self), 0, 0, 1, 1},
20416   {&__pyx_n_u_self, __pyx_k_self, sizeof(__pyx_k_self), 0, 1, 0, 1},
20417   {&__pyx_n_u_simple, __pyx_k_simple, sizeof(__pyx_k_simple), 0, 1, 0, 1},
20418   {&__pyx_kp_u_slot_s, __pyx_k_slot_s, sizeof(__pyx_k_slot_s), 0, 1, 0, 0},
20419   {&__pyx_n_s_source, __pyx_k_source, sizeof(__pyx_k_source), 0, 0, 1, 1},
20420   {&__pyx_n_s_special_method_name, __pyx_k_special_method_name, sizeof(__pyx_k_special_method_name), 0, 0, 1, 1},
20421   {&__pyx_n_s_split, __pyx_k_split, sizeof(__pyx_k_split), 0, 0, 1, 1},
20422   {&__pyx_n_s_stacktrace, __pyx_k_stacktrace, sizeof(__pyx_k_stacktrace), 0, 0, 1, 1},
20423   {&__pyx_n_s_start, __pyx_k_start, sizeof(__pyx_k_start), 0, 0, 1, 1},
20424   {&__pyx_n_s_startswith, __pyx_k_startswith, sizeof(__pyx_k_startswith), 0, 0, 1, 1},
20425   {&__pyx_n_u_struct, __pyx_k_struct, sizeof(__pyx_k_struct), 0, 1, 0, 1},
20426   {&__pyx_n_u_sub, __pyx_k_sub, sizeof(__pyx_k_sub), 0, 1, 0, 1},
20427   {&__pyx_n_u_subexprs, __pyx_k_subexprs, sizeof(__pyx_k_subexprs), 0, 1, 0, 1},
20428   {&__pyx_n_s_super, __pyx_k_super, sizeof(__pyx_k_super), 0, 0, 1, 1},
20429   {&__pyx_n_s_sys, __pyx_k_sys, sizeof(__pyx_k_sys), 0, 0, 1, 1},
20430   {&__pyx_n_s_t, __pyx_k_t, sizeof(__pyx_k_t), 0, 0, 1, 1},
20431   {&__pyx_n_s_tb_frame, __pyx_k_tb_frame, sizeof(__pyx_k_tb_frame), 0, 0, 1, 1},
20432   {&__pyx_n_u_tb_frame, __pyx_k_tb_frame, sizeof(__pyx_k_tb_frame), 0, 1, 0, 1},
20433   {&__pyx_n_s_tb_next, __pyx_k_tb_next, sizeof(__pyx_k_tb_next), 0, 0, 1, 1},
20434   {&__pyx_n_s_test, __pyx_k_test, sizeof(__pyx_k_test), 0, 0, 1, 1},
20435   {&__pyx_n_s_testmod, __pyx_k_testmod, sizeof(__pyx_k_testmod), 0, 0, 1, 1},
20436   {&__pyx_n_s_tree, __pyx_k_tree, sizeof(__pyx_k_tree), 0, 0, 1, 1},
20437   {&__pyx_n_s_tree_contains, __pyx_k_tree_contains, sizeof(__pyx_k_tree_contains), 0, 0, 1, 1},
20438   {&__pyx_n_u_truediv, __pyx_k_truediv, sizeof(__pyx_k_truediv), 0, 1, 0, 1},
20439   {&__pyx_n_s_type, __pyx_k_type, sizeof(__pyx_k_type), 0, 0, 1, 1},
20440   {&__pyx_kp_u_type_2, __pyx_k_type_2, sizeof(__pyx_k_type_2), 0, 1, 0, 0},
20441   {&__pyx_n_s_type_name, __pyx_k_type_name, sizeof(__pyx_k_type_name), 0, 0, 1, 1},
20442   {&__pyx_kp_u_type_s, __pyx_k_type_s, sizeof(__pyx_k_type_s), 0, 1, 0, 0},
20443   {&__pyx_n_s_type_type, __pyx_k_type_type, sizeof(__pyx_k_type_type), 0, 0, 1, 1},
20444   {&__pyx_n_s_unindent, __pyx_k_unindent, sizeof(__pyx_k_unindent), 0, 0, 1, 1},
20445   {&__pyx_n_s_value, __pyx_k_value, sizeof(__pyx_k_value), 0, 0, 1, 1},
20446   {&__pyx_n_s_values, __pyx_k_values, sizeof(__pyx_k_values), 0, 0, 1, 1},
20447   {&__pyx_n_s_version_info, __pyx_k_version_info, sizeof(__pyx_k_version_info), 0, 0, 1, 1},
20448   {&__pyx_n_s_visit, __pyx_k_visit, sizeof(__pyx_k_visit), 0, 0, 1, 1},
20449   {&__pyx_n_s_visit_BinopNode, __pyx_k_visit_BinopNode, sizeof(__pyx_k_visit_BinopNode), 0, 0, 1, 1},
20450   {&__pyx_n_s_visit_CArgDeclNode, __pyx_k_visit_CArgDeclNode, sizeof(__pyx_k_visit_CArgDeclNode), 0, 0, 1, 1},
20451   {&__pyx_n_s_visit_CClassDefNode, __pyx_k_visit_CClassDefNode, sizeof(__pyx_k_visit_CClassDefNode), 0, 0, 1, 1},
20452   {&__pyx_n_s_visit_CStructOrUnionDefNode, __pyx_k_visit_CStructOrUnionDefNode, sizeof(__pyx_k_visit_CStructOrUnionDefNode), 0, 0, 1, 1},
20453   {&__pyx_n_s_visit_ClassDefNode, __pyx_k_visit_ClassDefNode, sizeof(__pyx_k_visit_ClassDefNode), 0, 0, 1, 1},
20454   {&__pyx_n_s_visit_CloneNode, __pyx_k_visit_CloneNode, sizeof(__pyx_k_visit_CloneNode), 0, 0, 1, 1},
20455   {&__pyx_n_s_visit_CompilerDirectivesNode, __pyx_k_visit_CompilerDirectivesNode, sizeof(__pyx_k_visit_CompilerDirectivesNode), 0, 0, 1, 1},
20456   {&__pyx_n_s_visit_FuncDefNode, __pyx_k_visit_FuncDefNode, sizeof(__pyx_k_visit_FuncDefNode), 0, 0, 1, 1},
20457   {&__pyx_n_s_visit_GeneralCallNode, __pyx_k_visit_GeneralCallNode, sizeof(__pyx_k_visit_GeneralCallNode), 0, 0, 1, 1},
20458   {&__pyx_n_s_visit_GeneratorBodyDefNode, __pyx_k_visit_GeneratorBodyDefNode, sizeof(__pyx_k_visit_GeneratorBodyDefNode), 0, 0, 1, 1},
20459   {&__pyx_n_s_visit_ModuleNode, __pyx_k_visit_ModuleNode, sizeof(__pyx_k_visit_ModuleNode), 0, 0, 1, 1},
20460   {&__pyx_n_s_visit_Node, __pyx_k_visit_Node, sizeof(__pyx_k_visit_Node), 0, 0, 1, 1},
20461   {&__pyx_n_s_visit_PrimaryCmpNode, __pyx_k_visit_PrimaryCmpNode, sizeof(__pyx_k_visit_PrimaryCmpNode), 0, 0, 1, 1},
20462   {&__pyx_n_s_visit_PyClassDefNode, __pyx_k_visit_PyClassDefNode, sizeof(__pyx_k_visit_PyClassDefNode), 0, 0, 1, 1},
20463   {&__pyx_n_s_visit_ResultRefNode, __pyx_k_visit_ResultRefNode, sizeof(__pyx_k_visit_ResultRefNode), 0, 0, 1, 1},
20464   {&__pyx_n_s_visit_ScopedExprNode, __pyx_k_visit_ScopedExprNode, sizeof(__pyx_k_visit_ScopedExprNode), 0, 0, 1, 1},
20465   {&__pyx_n_s_visit_SimpleCallNode, __pyx_k_visit_SimpleCallNode, sizeof(__pyx_k_visit_SimpleCallNode), 0, 0, 1, 1},
20466   {&__pyx_n_s_visit_UnopNode, __pyx_k_visit_UnopNode, sizeof(__pyx_k_visit_UnopNode), 0, 0, 1, 1},
20467   {&__pyx_kp_u_visit__s, __pyx_k_visit__s, sizeof(__pyx_k_visit__s), 0, 1, 0, 0},
20468   {&__pyx_n_s_visitchildren, __pyx_k_visitchildren, sizeof(__pyx_k_visitchildren), 0, 0, 1, 1},
20469   {&__pyx_n_u_xor, __pyx_k_xor, sizeof(__pyx_k_xor), 0, 1, 0, 1},
20470   {0, 0, 0, 0, 0, 0, 0}
20471 };
__Pyx_InitCachedBuiltins(void)20472 static CYTHON_SMALL_CODE int __Pyx_InitCachedBuiltins(void) {
20473   __pyx_builtin_object = __Pyx_GetBuiltinName(__pyx_n_s_object); if (!__pyx_builtin_object) __PYX_ERR(0, 416, __pyx_L1_error)
20474   __pyx_builtin_super = __Pyx_GetBuiltinName(__pyx_n_s_super); if (!__pyx_builtin_super) __PYX_ERR(0, 77, __pyx_L1_error)
20475   __pyx_builtin_AttributeError = __Pyx_GetBuiltinName(__pyx_n_s_AttributeError); if (!__pyx_builtin_AttributeError) __PYX_ERR(0, 100, __pyx_L1_error)
20476   __pyx_builtin_print = __Pyx_GetBuiltinName(__pyx_n_s_print); if (!__pyx_builtin_print) __PYX_ERR(0, 162, __pyx_L1_error)
20477   __pyx_builtin_RuntimeError = __Pyx_GetBuiltinName(__pyx_n_s_RuntimeError); if (!__pyx_builtin_RuntimeError) __PYX_ERR(0, 167, __pyx_L1_error)
20478   __pyx_builtin_KeyError = __Pyx_GetBuiltinName(__pyx_n_s_KeyError); if (!__pyx_builtin_KeyError) __PYX_ERR(0, 177, __pyx_L1_error)
20479   __pyx_builtin_enumerate = __Pyx_GetBuiltinName(__pyx_n_s_enumerate); if (!__pyx_builtin_enumerate) __PYX_ERR(0, 219, __pyx_L1_error)
20480   return 0;
20481   __pyx_L1_error:;
20482   return -1;
20483 }
20484 
__Pyx_InitCachedConstants(void)20485 static CYTHON_SMALL_CODE int __Pyx_InitCachedConstants(void) {
20486   __Pyx_RefNannyDeclarations
20487   __Pyx_RefNannySetupContext("__Pyx_InitCachedConstants", 0);
20488 
20489   /* "Cython/Compiler/Visitor.py":409
20490  *             self._process_children(node, attrs)
20491  *             self.enter_scope(node, self.current_env().outer_scope)
20492  *             self.visitchildren(node, ('default',))             # <<<<<<<<<<<<<<
20493  *             self.exit_scope()
20494  *         else:
20495  */
20496   __pyx_tuple__11 = PyTuple_Pack(1, __pyx_n_u_default); if (unlikely(!__pyx_tuple__11)) __PYX_ERR(0, 409, __pyx_L1_error)
20497   __Pyx_GOTREF(__pyx_tuple__11);
20498   __Pyx_GIVEREF(__pyx_tuple__11);
20499 
20500   /* "Cython/Compiler/Visitor.py":637
20501  *                 # C implementation of a Python builtin method - see if we find further matches
20502  *                 self_arg = node.self
20503  *                 arg_list = arg_list[1:]  # drop CloneNode of self argument             # <<<<<<<<<<<<<<
20504  *             else:
20505  *                 return node
20506  */
20507   __pyx_slice__12 = PySlice_New(__pyx_int_1, Py_None, Py_None); if (unlikely(!__pyx_slice__12)) __PYX_ERR(0, 637, __pyx_L1_error)
20508   __Pyx_GOTREF(__pyx_slice__12);
20509   __Pyx_GIVEREF(__pyx_slice__12);
20510 
20511   /* "Cython/Compiler/Visitor.py":772
20512  *
20513  *     def unindent(self):
20514  *         self._indent = self._indent[:-2]             # <<<<<<<<<<<<<<
20515  *
20516  *     def __call__(self, tree, phase=None):
20517  */
20518   __pyx_slice__14 = PySlice_New(Py_None, __pyx_int_neg_2, Py_None); if (unlikely(!__pyx_slice__14)) __PYX_ERR(0, 772, __pyx_L1_error)
20519   __Pyx_GOTREF(__pyx_slice__14);
20520   __Pyx_GIVEREF(__pyx_slice__14);
20521 
20522   /* "Cython/Compiler/Visitor.py":81
20523  *         self.access_path = []
20524  *
20525  *     def dump_node(self, node):             # <<<<<<<<<<<<<<
20526  *         ignored = list(node.child_attrs or []) + [
20527  *             u'child_attrs', u'pos', u'gil_message', u'cpp_message', u'subexprs']
20528  */
20529   __pyx_tuple__22 = PyTuple_Pack(10, __pyx_n_s_self, __pyx_n_s_node, __pyx_n_s_ignored, __pyx_n_s_values, __pyx_n_s_pos, __pyx_n_s_source, __pyx_n_s_os, __pyx_n_s_attribute_names, __pyx_n_s_attr, __pyx_n_s_value); if (unlikely(!__pyx_tuple__22)) __PYX_ERR(0, 81, __pyx_L1_error)
20530   __Pyx_GOTREF(__pyx_tuple__22);
20531   __Pyx_GIVEREF(__pyx_tuple__22);
20532   __pyx_codeobj__23 = (PyObject*)__Pyx_PyCode_New(2, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__22, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Cython_Compiler_Visitor_py, __pyx_n_s_dump_node, 81, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__23)) __PYX_ERR(0, 81, __pyx_L1_error)
20533 
20534   /* "Cython/Compiler/Visitor.py":113
20535  *         return u'%s(%s)' % (node.__class__.__name__, u',\n    '.join(values))
20536  *
20537  *     def _find_node_path(self, stacktrace):             # <<<<<<<<<<<<<<
20538  *         import os.path
20539  *         last_traceback = stacktrace
20540  */
20541   __pyx_tuple__24 = PyTuple_Pack(10, __pyx_n_s_self, __pyx_n_s_stacktrace, __pyx_n_s_os, __pyx_n_s_last_traceback, __pyx_n_s_nodes, __pyx_n_s_frame, __pyx_n_s_node, __pyx_n_s_code, __pyx_n_s_method_name, __pyx_n_s_pos); if (unlikely(!__pyx_tuple__24)) __PYX_ERR(0, 113, __pyx_L1_error)
20542   __Pyx_GOTREF(__pyx_tuple__24);
20543   __Pyx_GIVEREF(__pyx_tuple__24);
20544   __pyx_codeobj__25 = (PyObject*)__Pyx_PyCode_New(2, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__24, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Cython_Compiler_Visitor_py, __pyx_n_s_find_node_path, 113, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__25)) __PYX_ERR(0, 113, __pyx_L1_error)
20545 
20546   /* "Cython/Compiler/Visitor.py":169
20547  *         raise RuntimeError("Visitor %r does not accept object: %s" % (self, obj))
20548  *
20549  *     def visit(self, obj):             # <<<<<<<<<<<<<<
20550  *         return self._visit(obj)
20551  *
20552  */
20553   __pyx_tuple__26 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_obj); if (unlikely(!__pyx_tuple__26)) __PYX_ERR(0, 169, __pyx_L1_error)
20554   __Pyx_GOTREF(__pyx_tuple__26);
20555   __Pyx_GIVEREF(__pyx_tuple__26);
20556   __pyx_codeobj__27 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__26, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Cython_Compiler_Visitor_py, __pyx_n_s_visit, 169, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__27)) __PYX_ERR(0, 169, __pyx_L1_error)
20557 
20558   /* "Cython/Compiler/Visitor.py":197
20559  *         return result
20560  *
20561  *     def visitchildren(self, parent, attrs=None):             # <<<<<<<<<<<<<<
20562  *         return self._visitchildren(parent, attrs)
20563  *
20564  */
20565   __pyx_tuple__28 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_parent, __pyx_n_s_attrs); if (unlikely(!__pyx_tuple__28)) __PYX_ERR(0, 197, __pyx_L1_error)
20566   __Pyx_GOTREF(__pyx_tuple__28);
20567   __Pyx_GIVEREF(__pyx_tuple__28);
20568   __pyx_codeobj__29 = (PyObject*)__Pyx_PyCode_New(3, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__28, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Cython_Compiler_Visitor_py, __pyx_n_s_visitchildren, 197, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__29)) __PYX_ERR(0, 197, __pyx_L1_error)
20569 
20570   /* "Cython/Compiler/Visitor.py":247
20571  *     are within a StatListNode or similar before doing this.)
20572  *     """
20573  *     def visitchildren(self, parent, attrs=None, exclude=None):             # <<<<<<<<<<<<<<
20574  *         # generic def entry point for calls from Python subclasses
20575  *         if exclude is not None:
20576  */
20577   __pyx_tuple__30 = PyTuple_Pack(4, __pyx_n_s_self, __pyx_n_s_parent, __pyx_n_s_attrs, __pyx_n_s_exclude); if (unlikely(!__pyx_tuple__30)) __PYX_ERR(0, 247, __pyx_L1_error)
20578   __Pyx_GOTREF(__pyx_tuple__30);
20579   __Pyx_GIVEREF(__pyx_tuple__30);
20580   __pyx_codeobj__31 = (PyObject*)__Pyx_PyCode_New(4, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__30, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Cython_Compiler_Visitor_py, __pyx_n_s_visitchildren, 247, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__31)) __PYX_ERR(0, 247, __pyx_L1_error)
20581 
20582   /* "Cython/Compiler/Visitor.py":279
20583  *         return newlist
20584  *
20585  *     def recurse_to_children(self, node):             # <<<<<<<<<<<<<<
20586  *         self._process_children(node)
20587  *         return node
20588  */
20589   __pyx_tuple__32 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_node); if (unlikely(!__pyx_tuple__32)) __PYX_ERR(0, 279, __pyx_L1_error)
20590   __Pyx_GOTREF(__pyx_tuple__32);
20591   __Pyx_GIVEREF(__pyx_tuple__32);
20592   __pyx_codeobj__33 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__32, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Cython_Compiler_Visitor_py, __pyx_n_s_recurse_to_children, 279, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__33)) __PYX_ERR(0, 279, __pyx_L1_error)
20593 
20594   /* "Cython/Compiler/Visitor.py":304
20595  *         return super(CythonTransform, self).__call__(node)
20596  *
20597  *     def visit_CompilerDirectivesNode(self, node):             # <<<<<<<<<<<<<<
20598  *         old = self.current_directives
20599  *         self.current_directives = node.directives
20600  */
20601   __pyx_tuple__34 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_node, __pyx_n_s_old); if (unlikely(!__pyx_tuple__34)) __PYX_ERR(0, 304, __pyx_L1_error)
20602   __Pyx_GOTREF(__pyx_tuple__34);
20603   __Pyx_GIVEREF(__pyx_tuple__34);
20604   __pyx_codeobj__35 = (PyObject*)__Pyx_PyCode_New(2, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__34, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Cython_Compiler_Visitor_py, __pyx_n_s_visit_CompilerDirectivesNode, 304, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__35)) __PYX_ERR(0, 304, __pyx_L1_error)
20605 
20606   /* "Cython/Compiler/Visitor.py":311
20607  *         return node
20608  *
20609  *     def visit_Node(self, node):             # <<<<<<<<<<<<<<
20610  *         self._process_children(node)
20611  *         return node
20612  */
20613   __pyx_tuple__36 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_node); if (unlikely(!__pyx_tuple__36)) __PYX_ERR(0, 311, __pyx_L1_error)
20614   __Pyx_GOTREF(__pyx_tuple__36);
20615   __Pyx_GIVEREF(__pyx_tuple__36);
20616   __pyx_codeobj__37 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__36, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Cython_Compiler_Visitor_py, __pyx_n_s_visit_Node, 311, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__37)) __PYX_ERR(0, 311, __pyx_L1_error)
20617 
20618   /* "Cython/Compiler/Visitor.py":321
20619  *     #scope_node: the node that owns the current scope
20620  *
20621  *     def visit_ModuleNode(self, node):             # <<<<<<<<<<<<<<
20622  *         self.scope_type = 'module'
20623  *         self.scope_node = node
20624  */
20625   __pyx_tuple__38 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_node); if (unlikely(!__pyx_tuple__38)) __PYX_ERR(0, 321, __pyx_L1_error)
20626   __Pyx_GOTREF(__pyx_tuple__38);
20627   __Pyx_GIVEREF(__pyx_tuple__38);
20628   __pyx_codeobj__39 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__38, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Cython_Compiler_Visitor_py, __pyx_n_s_visit_ModuleNode, 321, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__39)) __PYX_ERR(0, 321, __pyx_L1_error)
20629 
20630   /* "Cython/Compiler/Visitor.py":335
20631  *         return node
20632  *
20633  *     def visit_CClassDefNode(self, node):             # <<<<<<<<<<<<<<
20634  *         return self.visit_scope(node, 'cclass')
20635  *
20636  */
20637   __pyx_tuple__40 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_node); if (unlikely(!__pyx_tuple__40)) __PYX_ERR(0, 335, __pyx_L1_error)
20638   __Pyx_GOTREF(__pyx_tuple__40);
20639   __Pyx_GIVEREF(__pyx_tuple__40);
20640   __pyx_codeobj__41 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__40, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Cython_Compiler_Visitor_py, __pyx_n_s_visit_CClassDefNode, 335, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__41)) __PYX_ERR(0, 335, __pyx_L1_error)
20641 
20642   /* "Cython/Compiler/Visitor.py":338
20643  *         return self.visit_scope(node, 'cclass')
20644  *
20645  *     def visit_PyClassDefNode(self, node):             # <<<<<<<<<<<<<<
20646  *         return self.visit_scope(node, 'pyclass')
20647  *
20648  */
20649   __pyx_tuple__42 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_node); if (unlikely(!__pyx_tuple__42)) __PYX_ERR(0, 338, __pyx_L1_error)
20650   __Pyx_GOTREF(__pyx_tuple__42);
20651   __Pyx_GIVEREF(__pyx_tuple__42);
20652   __pyx_codeobj__43 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__42, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Cython_Compiler_Visitor_py, __pyx_n_s_visit_PyClassDefNode, 338, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__43)) __PYX_ERR(0, 338, __pyx_L1_error)
20653 
20654   /* "Cython/Compiler/Visitor.py":341
20655  *         return self.visit_scope(node, 'pyclass')
20656  *
20657  *     def visit_FuncDefNode(self, node):             # <<<<<<<<<<<<<<
20658  *         return self.visit_scope(node, 'function')
20659  *
20660  */
20661   __pyx_tuple__44 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_node); if (unlikely(!__pyx_tuple__44)) __PYX_ERR(0, 341, __pyx_L1_error)
20662   __Pyx_GOTREF(__pyx_tuple__44);
20663   __Pyx_GIVEREF(__pyx_tuple__44);
20664   __pyx_codeobj__45 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__44, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Cython_Compiler_Visitor_py, __pyx_n_s_visit_FuncDefNode, 341, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__45)) __PYX_ERR(0, 341, __pyx_L1_error)
20665 
20666   /* "Cython/Compiler/Visitor.py":344
20667  *         return self.visit_scope(node, 'function')
20668  *
20669  *     def visit_CStructOrUnionDefNode(self, node):             # <<<<<<<<<<<<<<
20670  *         return self.visit_scope(node, 'struct')
20671  *
20672  */
20673   __pyx_tuple__46 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_node); if (unlikely(!__pyx_tuple__46)) __PYX_ERR(0, 344, __pyx_L1_error)
20674   __Pyx_GOTREF(__pyx_tuple__46);
20675   __Pyx_GIVEREF(__pyx_tuple__46);
20676   __pyx_codeobj__47 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__46, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Cython_Compiler_Visitor_py, __pyx_n_s_visit_CStructOrUnionDefNode, 344, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__47)) __PYX_ERR(0, 344, __pyx_L1_error)
20677 
20678   /* "Cython/Compiler/Visitor.py":357
20679  *         return super(EnvTransform, self).__call__(root)
20680  *
20681  *     def current_env(self):             # <<<<<<<<<<<<<<
20682  *         return self.env_stack[-1][1]
20683  *
20684  */
20685   __pyx_tuple__48 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__48)) __PYX_ERR(0, 357, __pyx_L1_error)
20686   __Pyx_GOTREF(__pyx_tuple__48);
20687   __Pyx_GIVEREF(__pyx_tuple__48);
20688   __pyx_codeobj__49 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__48, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Cython_Compiler_Visitor_py, __pyx_n_s_current_env, 357, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__49)) __PYX_ERR(0, 357, __pyx_L1_error)
20689 
20690   /* "Cython/Compiler/Visitor.py":360
20691  *         return self.env_stack[-1][1]
20692  *
20693  *     def current_scope_node(self):             # <<<<<<<<<<<<<<
20694  *         return self.env_stack[-1][0]
20695  *
20696  */
20697   __pyx_tuple__50 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__50)) __PYX_ERR(0, 360, __pyx_L1_error)
20698   __Pyx_GOTREF(__pyx_tuple__50);
20699   __Pyx_GIVEREF(__pyx_tuple__50);
20700   __pyx_codeobj__51 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__50, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Cython_Compiler_Visitor_py, __pyx_n_s_current_scope_node, 360, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__51)) __PYX_ERR(0, 360, __pyx_L1_error)
20701 
20702   /* "Cython/Compiler/Visitor.py":363
20703  *         return self.env_stack[-1][0]
20704  *
20705  *     def global_scope(self):             # <<<<<<<<<<<<<<
20706  *         return self.current_env().global_scope()
20707  *
20708  */
20709   __pyx_tuple__52 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__52)) __PYX_ERR(0, 363, __pyx_L1_error)
20710   __Pyx_GOTREF(__pyx_tuple__52);
20711   __Pyx_GIVEREF(__pyx_tuple__52);
20712   __pyx_codeobj__53 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__52, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Cython_Compiler_Visitor_py, __pyx_n_s_global_scope, 363, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__53)) __PYX_ERR(0, 363, __pyx_L1_error)
20713 
20714   /* "Cython/Compiler/Visitor.py":366
20715  *         return self.current_env().global_scope()
20716  *
20717  *     def enter_scope(self, node, scope):             # <<<<<<<<<<<<<<
20718  *         self.env_stack.append((node, scope))
20719  *
20720  */
20721   __pyx_tuple__54 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_node, __pyx_n_s_scope); if (unlikely(!__pyx_tuple__54)) __PYX_ERR(0, 366, __pyx_L1_error)
20722   __Pyx_GOTREF(__pyx_tuple__54);
20723   __Pyx_GIVEREF(__pyx_tuple__54);
20724   __pyx_codeobj__55 = (PyObject*)__Pyx_PyCode_New(3, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__54, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Cython_Compiler_Visitor_py, __pyx_n_s_enter_scope, 366, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__55)) __PYX_ERR(0, 366, __pyx_L1_error)
20725 
20726   /* "Cython/Compiler/Visitor.py":369
20727  *         self.env_stack.append((node, scope))
20728  *
20729  *     def exit_scope(self):             # <<<<<<<<<<<<<<
20730  *         self.env_stack.pop()
20731  *
20732  */
20733   __pyx_tuple__56 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__56)) __PYX_ERR(0, 369, __pyx_L1_error)
20734   __Pyx_GOTREF(__pyx_tuple__56);
20735   __Pyx_GIVEREF(__pyx_tuple__56);
20736   __pyx_codeobj__57 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__56, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Cython_Compiler_Visitor_py, __pyx_n_s_exit_scope, 369, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__57)) __PYX_ERR(0, 369, __pyx_L1_error)
20737 
20738   /* "Cython/Compiler/Visitor.py":372
20739  *         self.env_stack.pop()
20740  *
20741  *     def visit_FuncDefNode(self, node):             # <<<<<<<<<<<<<<
20742  *         self.enter_scope(node, node.local_scope)
20743  *         self._process_children(node)
20744  */
20745   __pyx_tuple__58 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_node); if (unlikely(!__pyx_tuple__58)) __PYX_ERR(0, 372, __pyx_L1_error)
20746   __Pyx_GOTREF(__pyx_tuple__58);
20747   __Pyx_GIVEREF(__pyx_tuple__58);
20748   __pyx_codeobj__59 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__58, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Cython_Compiler_Visitor_py, __pyx_n_s_visit_FuncDefNode, 372, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__59)) __PYX_ERR(0, 372, __pyx_L1_error)
20749 
20750   /* "Cython/Compiler/Visitor.py":378
20751  *         return node
20752  *
20753  *     def visit_GeneratorBodyDefNode(self, node):             # <<<<<<<<<<<<<<
20754  *         self._process_children(node)
20755  *         return node
20756  */
20757   __pyx_tuple__60 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_node); if (unlikely(!__pyx_tuple__60)) __PYX_ERR(0, 378, __pyx_L1_error)
20758   __Pyx_GOTREF(__pyx_tuple__60);
20759   __Pyx_GIVEREF(__pyx_tuple__60);
20760   __pyx_codeobj__61 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__60, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Cython_Compiler_Visitor_py, __pyx_n_s_visit_GeneratorBodyDefNode, 378, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__61)) __PYX_ERR(0, 378, __pyx_L1_error)
20761 
20762   /* "Cython/Compiler/Visitor.py":382
20763  *         return node
20764  *
20765  *     def visit_ClassDefNode(self, node):             # <<<<<<<<<<<<<<
20766  *         self.enter_scope(node, node.scope)
20767  *         self._process_children(node)
20768  */
20769   __pyx_tuple__62 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_node); if (unlikely(!__pyx_tuple__62)) __PYX_ERR(0, 382, __pyx_L1_error)
20770   __Pyx_GOTREF(__pyx_tuple__62);
20771   __Pyx_GIVEREF(__pyx_tuple__62);
20772   __pyx_codeobj__63 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__62, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Cython_Compiler_Visitor_py, __pyx_n_s_visit_ClassDefNode, 382, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__63)) __PYX_ERR(0, 382, __pyx_L1_error)
20773 
20774   /* "Cython/Compiler/Visitor.py":388
20775  *         return node
20776  *
20777  *     def visit_CStructOrUnionDefNode(self, node):             # <<<<<<<<<<<<<<
20778  *         self.enter_scope(node, node.scope)
20779  *         self._process_children(node)
20780  */
20781   __pyx_tuple__64 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_node); if (unlikely(!__pyx_tuple__64)) __PYX_ERR(0, 388, __pyx_L1_error)
20782   __Pyx_GOTREF(__pyx_tuple__64);
20783   __Pyx_GIVEREF(__pyx_tuple__64);
20784   __pyx_codeobj__65 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__64, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Cython_Compiler_Visitor_py, __pyx_n_s_visit_CStructOrUnionDefNode, 388, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__65)) __PYX_ERR(0, 388, __pyx_L1_error)
20785 
20786   /* "Cython/Compiler/Visitor.py":394
20787  *         return node
20788  *
20789  *     def visit_ScopedExprNode(self, node):             # <<<<<<<<<<<<<<
20790  *         if node.expr_scope:
20791  *             self.enter_scope(node, node.expr_scope)
20792  */
20793   __pyx_tuple__66 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_node); if (unlikely(!__pyx_tuple__66)) __PYX_ERR(0, 394, __pyx_L1_error)
20794   __Pyx_GOTREF(__pyx_tuple__66);
20795   __Pyx_GIVEREF(__pyx_tuple__66);
20796   __pyx_codeobj__67 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__66, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Cython_Compiler_Visitor_py, __pyx_n_s_visit_ScopedExprNode, 394, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__67)) __PYX_ERR(0, 394, __pyx_L1_error)
20797 
20798   /* "Cython/Compiler/Visitor.py":403
20799  *         return node
20800  *
20801  *     def visit_CArgDeclNode(self, node):             # <<<<<<<<<<<<<<
20802  *         # default arguments are evaluated in the outer scope
20803  *         if node.default:
20804  */
20805   __pyx_tuple__68 = PyTuple_Pack(4, __pyx_n_s_self, __pyx_n_s_node, __pyx_n_s_attrs, __pyx_n_s_attr); if (unlikely(!__pyx_tuple__68)) __PYX_ERR(0, 403, __pyx_L1_error)
20806   __Pyx_GOTREF(__pyx_tuple__68);
20807   __Pyx_GIVEREF(__pyx_tuple__68);
20808   __pyx_codeobj__69 = (PyObject*)__Pyx_PyCode_New(2, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__68, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Cython_Compiler_Visitor_py, __pyx_n_s_visit_CArgDeclNode, 403, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__69)) __PYX_ERR(0, 403, __pyx_L1_error)
20809 
20810   /* "Cython/Compiler/Visitor.py":416
20811  *
20812  *
20813  * class NodeRefCleanupMixin(object):             # <<<<<<<<<<<<<<
20814  *     """
20815  *     Clean up references to nodes that were replaced.
20816  */
20817   __pyx_tuple__70 = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_tuple__70)) __PYX_ERR(0, 416, __pyx_L1_error)
20818   __Pyx_GOTREF(__pyx_tuple__70);
20819   __Pyx_GIVEREF(__pyx_tuple__70);
20820 
20821   /* "Cython/Compiler/Visitor.py":426
20822  *     and by ordering the "child_attrs" of nodes appropriately.
20823  *     """
20824  *     def __init__(self, *args):             # <<<<<<<<<<<<<<
20825  *         super(NodeRefCleanupMixin, self).__init__(*args)
20826  *         self._replacements = {}
20827  */
20828   __pyx_tuple__71 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_args); if (unlikely(!__pyx_tuple__71)) __PYX_ERR(0, 426, __pyx_L1_error)
20829   __Pyx_GOTREF(__pyx_tuple__71);
20830   __Pyx_GIVEREF(__pyx_tuple__71);
20831   __pyx_codeobj__72 = (PyObject*)__Pyx_PyCode_New(1, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_VARARGS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__71, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Cython_Compiler_Visitor_py, __pyx_n_s_init, 426, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__72)) __PYX_ERR(0, 426, __pyx_L1_error)
20832 
20833   /* "Cython/Compiler/Visitor.py":430
20834  *         self._replacements = {}
20835  *
20836  *     def visit_CloneNode(self, node):             # <<<<<<<<<<<<<<
20837  *         arg = node.arg
20838  *         if arg not in self._replacements:
20839  */
20840   __pyx_tuple__73 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_node, __pyx_n_s_arg); if (unlikely(!__pyx_tuple__73)) __PYX_ERR(0, 430, __pyx_L1_error)
20841   __Pyx_GOTREF(__pyx_tuple__73);
20842   __Pyx_GIVEREF(__pyx_tuple__73);
20843   __pyx_codeobj__74 = (PyObject*)__Pyx_PyCode_New(2, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__73, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Cython_Compiler_Visitor_py, __pyx_n_s_visit_CloneNode, 430, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__74)) __PYX_ERR(0, 430, __pyx_L1_error)
20844 
20845   /* "Cython/Compiler/Visitor.py":437
20846  *         return node
20847  *
20848  *     def visit_ResultRefNode(self, node):             # <<<<<<<<<<<<<<
20849  *         expr = node.expression
20850  *         if expr is None or expr not in self._replacements:
20851  */
20852   __pyx_tuple__75 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_node, __pyx_n_s_expr); if (unlikely(!__pyx_tuple__75)) __PYX_ERR(0, 437, __pyx_L1_error)
20853   __Pyx_GOTREF(__pyx_tuple__75);
20854   __Pyx_GIVEREF(__pyx_tuple__75);
20855   __pyx_codeobj__76 = (PyObject*)__Pyx_PyCode_New(2, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__75, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Cython_Compiler_Visitor_py, __pyx_n_s_visit_ResultRefNode, 437, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__76)) __PYX_ERR(0, 437, __pyx_L1_error)
20856 
20857   /* "Cython/Compiler/Visitor.py":446
20858  *         return node
20859  *
20860  *     def replace(self, node, replacement):             # <<<<<<<<<<<<<<
20861  *         self._replacements[node] = replacement
20862  *         return replacement
20863  */
20864   __pyx_tuple__77 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_node, __pyx_n_s_replacement); if (unlikely(!__pyx_tuple__77)) __PYX_ERR(0, 446, __pyx_L1_error)
20865   __Pyx_GOTREF(__pyx_tuple__77);
20866   __Pyx_GIVEREF(__pyx_tuple__77);
20867   __pyx_codeobj__78 = (PyObject*)__Pyx_PyCode_New(3, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__77, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Cython_Compiler_Visitor_py, __pyx_n_s_replace, 446, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__78)) __PYX_ERR(0, 446, __pyx_L1_error)
20868 
20869   /* "Cython/Compiler/Visitor.py":496
20870  *     """
20871  *     # only visit call nodes and Python operations
20872  *     def visit_GeneralCallNode(self, node):             # <<<<<<<<<<<<<<
20873  *         self._process_children(node)
20874  *         function = node.function
20875  */
20876   __pyx_tuple__97 = PyTuple_Pack(6, __pyx_n_s_self, __pyx_n_s_node, __pyx_n_s_function, __pyx_n_s_arg_tuple, __pyx_n_s_keyword_args, __pyx_n_s_args); if (unlikely(!__pyx_tuple__97)) __PYX_ERR(0, 496, __pyx_L1_error)
20877   __Pyx_GOTREF(__pyx_tuple__97);
20878   __Pyx_GIVEREF(__pyx_tuple__97);
20879   __pyx_codeobj__98 = (PyObject*)__Pyx_PyCode_New(2, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__97, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Cython_Compiler_Visitor_py, __pyx_n_s_visit_GeneralCallNode, 496, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__98)) __PYX_ERR(0, 496, __pyx_L1_error)
20880 
20881   /* "Cython/Compiler/Visitor.py":511
20882  *         return self._dispatch_to_handler(node, function, args, keyword_args)
20883  *
20884  *     def visit_SimpleCallNode(self, node):             # <<<<<<<<<<<<<<
20885  *         self._process_children(node)
20886  *         function = node.function
20887  */
20888   __pyx_tuple__99 = PyTuple_Pack(5, __pyx_n_s_self, __pyx_n_s_node, __pyx_n_s_function, __pyx_n_s_arg_tuple, __pyx_n_s_args); if (unlikely(!__pyx_tuple__99)) __PYX_ERR(0, 511, __pyx_L1_error)
20889   __Pyx_GOTREF(__pyx_tuple__99);
20890   __Pyx_GIVEREF(__pyx_tuple__99);
20891   __pyx_codeobj__100 = (PyObject*)__Pyx_PyCode_New(2, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__99, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Cython_Compiler_Visitor_py, __pyx_n_s_visit_SimpleCallNode, 511, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__100)) __PYX_ERR(0, 511, __pyx_L1_error)
20892 
20893   /* "Cython/Compiler/Visitor.py":523
20894  *         return self._dispatch_to_handler(node, function, args, None)
20895  *
20896  *     def visit_PrimaryCmpNode(self, node):             # <<<<<<<<<<<<<<
20897  *         if node.cascade:
20898  *             # not currently handled below
20899  */
20900   __pyx_tuple__101 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_node); if (unlikely(!__pyx_tuple__101)) __PYX_ERR(0, 523, __pyx_L1_error)
20901   __Pyx_GOTREF(__pyx_tuple__101);
20902   __Pyx_GIVEREF(__pyx_tuple__101);
20903   __pyx_codeobj__102 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__101, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Cython_Compiler_Visitor_py, __pyx_n_s_visit_PrimaryCmpNode, 523, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__102)) __PYX_ERR(0, 523, __pyx_L1_error)
20904 
20905   /* "Cython/Compiler/Visitor.py":530
20906  *         return self._visit_binop_node(node)
20907  *
20908  *     def visit_BinopNode(self, node):             # <<<<<<<<<<<<<<
20909  *         return self._visit_binop_node(node)
20910  *
20911  */
20912   __pyx_tuple__103 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_node); if (unlikely(!__pyx_tuple__103)) __PYX_ERR(0, 530, __pyx_L1_error)
20913   __Pyx_GOTREF(__pyx_tuple__103);
20914   __Pyx_GIVEREF(__pyx_tuple__103);
20915   __pyx_codeobj__104 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__103, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Cython_Compiler_Visitor_py, __pyx_n_s_visit_BinopNode, 530, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__104)) __PYX_ERR(0, 530, __pyx_L1_error)
20916 
20917   /* "Cython/Compiler/Visitor.py":554
20918  *         return node
20919  *
20920  *     def visit_UnopNode(self, node):             # <<<<<<<<<<<<<<
20921  *         self._process_children(node)
20922  *         special_method_name = find_special_method_for_unary_operator(node.operator)
20923  */
20924   __pyx_tuple__105 = PyTuple_Pack(6, __pyx_n_s_self, __pyx_n_s_node, __pyx_n_s_special_method_name, __pyx_n_s_operand, __pyx_n_s_obj_type, __pyx_n_s_type_name); if (unlikely(!__pyx_tuple__105)) __PYX_ERR(0, 554, __pyx_L1_error)
20925   __Pyx_GOTREF(__pyx_tuple__105);
20926   __Pyx_GIVEREF(__pyx_tuple__105);
20927   __pyx_codeobj__106 = (PyObject*)__Pyx_PyCode_New(2, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__105, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Cython_Compiler_Visitor_py, __pyx_n_s_visit_UnopNode, 554, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__106)) __PYX_ERR(0, 554, __pyx_L1_error)
20928 
20929   /* "Cython/Compiler/Visitor.py":683
20930  *         return result
20931  *
20932  *     def _handle_function(self, node, function_name, function, arg_list, kwargs):             # <<<<<<<<<<<<<<
20933  *         """Fallback handler"""
20934  *         return node
20935  */
20936   __pyx_tuple__107 = PyTuple_Pack(6, __pyx_n_s_self, __pyx_n_s_node, __pyx_n_s_function_name, __pyx_n_s_function, __pyx_n_s_arg_list, __pyx_n_s_kwargs); if (unlikely(!__pyx_tuple__107)) __PYX_ERR(0, 683, __pyx_L1_error)
20937   __Pyx_GOTREF(__pyx_tuple__107);
20938   __Pyx_GIVEREF(__pyx_tuple__107);
20939   __pyx_codeobj__108 = (PyObject*)__Pyx_PyCode_New(6, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__107, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Cython_Compiler_Visitor_py, __pyx_n_s_handle_function, 683, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__108)) __PYX_ERR(0, 683, __pyx_L1_error)
20940 
20941   /* "Cython/Compiler/Visitor.py":687
20942  *         return node
20943  *
20944  *     def _handle_method(self, node, type_name, attr_name, function,             # <<<<<<<<<<<<<<
20945  *                        arg_list, is_unbound_method, kwargs):
20946  *         """Fallback handler"""
20947  */
20948   __pyx_tuple__109 = PyTuple_Pack(8, __pyx_n_s_self, __pyx_n_s_node, __pyx_n_s_type_name, __pyx_n_s_attr_name, __pyx_n_s_function, __pyx_n_s_arg_list, __pyx_n_s_is_unbound_method, __pyx_n_s_kwargs); if (unlikely(!__pyx_tuple__109)) __PYX_ERR(0, 687, __pyx_L1_error)
20949   __Pyx_GOTREF(__pyx_tuple__109);
20950   __Pyx_GIVEREF(__pyx_tuple__109);
20951   __pyx_codeobj__110 = (PyObject*)__Pyx_PyCode_New(8, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__109, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Cython_Compiler_Visitor_py, __pyx_n_s_handle_method, 687, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__110)) __PYX_ERR(0, 687, __pyx_L1_error)
20952 
20953   /* "Cython/Compiler/Visitor.py":702
20954  *         self.orig_node, self.new_node = orig_node, new_node
20955  *
20956  *     def visit_CloneNode(self, node):             # <<<<<<<<<<<<<<
20957  *         if node is self.orig_node:
20958  *             return self.new_node
20959  */
20960   __pyx_tuple__111 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_node); if (unlikely(!__pyx_tuple__111)) __PYX_ERR(0, 702, __pyx_L1_error)
20961   __Pyx_GOTREF(__pyx_tuple__111);
20962   __Pyx_GIVEREF(__pyx_tuple__111);
20963   __pyx_codeobj__112 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__111, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Cython_Compiler_Visitor_py, __pyx_n_s_visit_CloneNode, 702, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__112)) __PYX_ERR(0, 702, __pyx_L1_error)
20964 
20965   /* "Cython/Compiler/Visitor.py":709
20966  *         return node
20967  *
20968  *     def visit_Node(self, node):             # <<<<<<<<<<<<<<
20969  *         self._process_children(node)
20970  *         if node is self.orig_node:
20971  */
20972   __pyx_tuple__113 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_node); if (unlikely(!__pyx_tuple__113)) __PYX_ERR(0, 709, __pyx_L1_error)
20973   __Pyx_GOTREF(__pyx_tuple__113);
20974   __Pyx_GIVEREF(__pyx_tuple__113);
20975   __pyx_codeobj__114 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__113, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Cython_Compiler_Visitor_py, __pyx_n_s_visit_Node, 709, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__114)) __PYX_ERR(0, 709, __pyx_L1_error)
20976 
20977   /* "Cython/Compiler/Visitor.py":716
20978  *             return node
20979  *
20980  * def recursively_replace_node(tree, old_node, new_node):             # <<<<<<<<<<<<<<
20981  *     replace_in = RecursiveNodeReplacer(old_node, new_node)
20982  *     replace_in(tree)
20983  */
20984   __pyx_tuple__115 = PyTuple_Pack(4, __pyx_n_s_tree, __pyx_n_s_old_node, __pyx_n_s_new_node, __pyx_n_s_replace_in); if (unlikely(!__pyx_tuple__115)) __PYX_ERR(0, 716, __pyx_L1_error)
20985   __Pyx_GOTREF(__pyx_tuple__115);
20986   __Pyx_GIVEREF(__pyx_tuple__115);
20987   __pyx_codeobj__116 = (PyObject*)__Pyx_PyCode_New(3, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__115, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Cython_Compiler_Visitor_py, __pyx_n_s_recursively_replace_node, 716, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__116)) __PYX_ERR(0, 716, __pyx_L1_error)
20988 
20989   /* "Cython/Compiler/Visitor.py":730
20990  *         self.found = False
20991  *
20992  *     def visit_Node(self, node):             # <<<<<<<<<<<<<<
20993  *         if self.found:
20994  *             pass  # short-circuit
20995  */
20996   __pyx_tuple__117 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_node); if (unlikely(!__pyx_tuple__117)) __PYX_ERR(0, 730, __pyx_L1_error)
20997   __Pyx_GOTREF(__pyx_tuple__117);
20998   __Pyx_GIVEREF(__pyx_tuple__117);
20999   __pyx_codeobj__118 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__117, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Cython_Compiler_Visitor_py, __pyx_n_s_visit_Node, 730, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__118)) __PYX_ERR(0, 730, __pyx_L1_error)
21000 
21001   /* "Cython/Compiler/Visitor.py":738
21002  *             self._visitchildren(node, None)
21003  *
21004  * def tree_contains(tree, node):             # <<<<<<<<<<<<<<
21005  *     finder = NodeFinder(node)
21006  *     finder.visit(tree)
21007  */
21008   __pyx_tuple__119 = PyTuple_Pack(3, __pyx_n_s_tree, __pyx_n_s_node, __pyx_n_s_finder); if (unlikely(!__pyx_tuple__119)) __PYX_ERR(0, 738, __pyx_L1_error)
21009   __Pyx_GOTREF(__pyx_tuple__119);
21010   __Pyx_GIVEREF(__pyx_tuple__119);
21011   __pyx_codeobj__120 = (PyObject*)__Pyx_PyCode_New(2, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__119, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Cython_Compiler_Visitor_py, __pyx_n_s_tree_contains, 738, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__120)) __PYX_ERR(0, 738, __pyx_L1_error)
21012 
21013   /* "Cython/Compiler/Visitor.py":745
21014  *
21015  * # Utils
21016  * def replace_node(ptr, value):             # <<<<<<<<<<<<<<
21017  *     """Replaces a node. ptr is of the form used on the access path stack
21018  *     (parent, attrname, listidx|None)
21019  */
21020   __pyx_tuple__121 = PyTuple_Pack(5, __pyx_n_s_ptr, __pyx_n_s_value, __pyx_n_s_parent, __pyx_n_s_attrname, __pyx_n_s_listidx); if (unlikely(!__pyx_tuple__121)) __PYX_ERR(0, 745, __pyx_L1_error)
21021   __Pyx_GOTREF(__pyx_tuple__121);
21022   __Pyx_GIVEREF(__pyx_tuple__121);
21023   __pyx_codeobj__122 = (PyObject*)__Pyx_PyCode_New(2, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__121, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Cython_Compiler_Visitor_py, __pyx_n_s_replace_node, 745, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__122)) __PYX_ERR(0, 745, __pyx_L1_error)
21024 
21025   /* "Cython/Compiler/Visitor.py":760
21026  *     Subclass and override repr_of to provide more information
21027  *     about nodes. """
21028  *     def __init__(self, start=None, end=None):             # <<<<<<<<<<<<<<
21029  *         TreeVisitor.__init__(self)
21030  *         self._indent = ""
21031  */
21032   __pyx_tuple__123 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_start, __pyx_n_s_end); if (unlikely(!__pyx_tuple__123)) __PYX_ERR(0, 760, __pyx_L1_error)
21033   __Pyx_GOTREF(__pyx_tuple__123);
21034   __Pyx_GIVEREF(__pyx_tuple__123);
21035   __pyx_codeobj__124 = (PyObject*)__Pyx_PyCode_New(3, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__123, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Cython_Compiler_Visitor_py, __pyx_n_s_init, 760, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__124)) __PYX_ERR(0, 760, __pyx_L1_error)
21036   __pyx_tuple__125 = PyTuple_Pack(2, ((PyObject *)Py_None), ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__125)) __PYX_ERR(0, 760, __pyx_L1_error)
21037   __Pyx_GOTREF(__pyx_tuple__125);
21038   __Pyx_GIVEREF(__pyx_tuple__125);
21039 
21040   /* "Cython/Compiler/Visitor.py":768
21041  *             self._line_range = None
21042  *
21043  *     def indent(self):             # <<<<<<<<<<<<<<
21044  *         self._indent += "  "
21045  *
21046  */
21047   __pyx_tuple__126 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__126)) __PYX_ERR(0, 768, __pyx_L1_error)
21048   __Pyx_GOTREF(__pyx_tuple__126);
21049   __Pyx_GIVEREF(__pyx_tuple__126);
21050   __pyx_codeobj__127 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__126, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Cython_Compiler_Visitor_py, __pyx_n_s_indent_2, 768, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__127)) __PYX_ERR(0, 768, __pyx_L1_error)
21051 
21052   /* "Cython/Compiler/Visitor.py":771
21053  *         self._indent += "  "
21054  *
21055  *     def unindent(self):             # <<<<<<<<<<<<<<
21056  *         self._indent = self._indent[:-2]
21057  *
21058  */
21059   __pyx_tuple__128 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__128)) __PYX_ERR(0, 771, __pyx_L1_error)
21060   __Pyx_GOTREF(__pyx_tuple__128);
21061   __Pyx_GIVEREF(__pyx_tuple__128);
21062   __pyx_codeobj__129 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__128, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Cython_Compiler_Visitor_py, __pyx_n_s_unindent, 771, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__129)) __PYX_ERR(0, 771, __pyx_L1_error)
21063 
21064   /* "Cython/Compiler/Visitor.py":774
21065  *         self._indent = self._indent[:-2]
21066  *
21067  *     def __call__(self, tree, phase=None):             # <<<<<<<<<<<<<<
21068  *         print("Parse tree dump at phase '%s'" % phase)
21069  *         self.visit(tree)
21070  */
21071   __pyx_tuple__130 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_tree, __pyx_n_s_phase); if (unlikely(!__pyx_tuple__130)) __PYX_ERR(0, 774, __pyx_L1_error)
21072   __Pyx_GOTREF(__pyx_tuple__130);
21073   __Pyx_GIVEREF(__pyx_tuple__130);
21074   __pyx_codeobj__131 = (PyObject*)__Pyx_PyCode_New(3, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__130, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Cython_Compiler_Visitor_py, __pyx_n_s_call, 774, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__131)) __PYX_ERR(0, 774, __pyx_L1_error)
21075   __pyx_tuple__132 = PyTuple_Pack(1, ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__132)) __PYX_ERR(0, 774, __pyx_L1_error)
21076   __Pyx_GOTREF(__pyx_tuple__132);
21077   __Pyx_GIVEREF(__pyx_tuple__132);
21078 
21079   /* "Cython/Compiler/Visitor.py":783
21080  *     # under the parent-node, not displaying the list itself in
21081  *     # the hierarchy.
21082  *     def visit_Node(self, node):             # <<<<<<<<<<<<<<
21083  *         self._print_node(node)
21084  *         self.indent()
21085  */
21086   __pyx_tuple__133 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_node); if (unlikely(!__pyx_tuple__133)) __PYX_ERR(0, 783, __pyx_L1_error)
21087   __Pyx_GOTREF(__pyx_tuple__133);
21088   __Pyx_GIVEREF(__pyx_tuple__133);
21089   __pyx_codeobj__134 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__133, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Cython_Compiler_Visitor_py, __pyx_n_s_visit_Node, 783, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__134)) __PYX_ERR(0, 783, __pyx_L1_error)
21090 
21091   /* "Cython/Compiler/Visitor.py":790
21092  *         return node
21093  *
21094  *     def visit_CloneNode(self, node):             # <<<<<<<<<<<<<<
21095  *         self._print_node(node)
21096  *         self.indent()
21097  */
21098   __pyx_tuple__135 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_node, __pyx_n_s_line_2); if (unlikely(!__pyx_tuple__135)) __PYX_ERR(0, 790, __pyx_L1_error)
21099   __Pyx_GOTREF(__pyx_tuple__135);
21100   __Pyx_GIVEREF(__pyx_tuple__135);
21101   __pyx_codeobj__136 = (PyObject*)__Pyx_PyCode_New(2, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__135, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Cython_Compiler_Visitor_py, __pyx_n_s_visit_CloneNode, 790, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__136)) __PYX_ERR(0, 790, __pyx_L1_error)
21102 
21103   /* "Cython/Compiler/Visitor.py":802
21104  *         return node
21105  *
21106  *     def _print_node(self, node):             # <<<<<<<<<<<<<<
21107  *         line = node.pos[1]
21108  *         if self._line_range is None or self._line_range[0] <= line <= self._line_range[1]:
21109  */
21110   __pyx_tuple__137 = PyTuple_Pack(7, __pyx_n_s_self, __pyx_n_s_node, __pyx_n_s_line_2, __pyx_n_s_name_2, __pyx_n_s_parent, __pyx_n_s_attr, __pyx_n_s_idx); if (unlikely(!__pyx_tuple__137)) __PYX_ERR(0, 802, __pyx_L1_error)
21111   __Pyx_GOTREF(__pyx_tuple__137);
21112   __Pyx_GIVEREF(__pyx_tuple__137);
21113   __pyx_codeobj__138 = (PyObject*)__Pyx_PyCode_New(2, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__137, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Cython_Compiler_Visitor_py, __pyx_n_s_print_node, 802, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__138)) __PYX_ERR(0, 802, __pyx_L1_error)
21114 
21115   /* "Cython/Compiler/Visitor.py":815
21116  *             print("%s- %s: %s" % (self._indent, name, self.repr_of(node)))
21117  *
21118  *     def repr_of(self, node):             # <<<<<<<<<<<<<<
21119  *         if node is None:
21120  *             return "(none)"
21121  */
21122   __pyx_tuple__139 = PyTuple_Pack(6, __pyx_n_s_self, __pyx_n_s_node, __pyx_n_s_result, __pyx_n_s_t, __pyx_n_s_pos, __pyx_n_s_path); if (unlikely(!__pyx_tuple__139)) __PYX_ERR(0, 815, __pyx_L1_error)
21123   __Pyx_GOTREF(__pyx_tuple__139);
21124   __Pyx_GIVEREF(__pyx_tuple__139);
21125   __pyx_codeobj__140 = (PyObject*)__Pyx_PyCode_New(2, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__139, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Cython_Compiler_Visitor_py, __pyx_n_s_repr_of, 815, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__140)) __PYX_ERR(0, 815, __pyx_L1_error)
21126   __Pyx_RefNannyFinishContext();
21127   return 0;
21128   __pyx_L1_error:;
21129   __Pyx_RefNannyFinishContext();
21130   return -1;
21131 }
21132 
__Pyx_InitGlobals(void)21133 static CYTHON_SMALL_CODE int __Pyx_InitGlobals(void) {
21134   __pyx_umethod_PyList_Type_pop.type = (PyObject*)&PyList_Type;
21135   if (__Pyx_InitStrings(__pyx_string_tab) < 0) __PYX_ERR(0, 1, __pyx_L1_error);
21136   __pyx_int_0 = PyInt_FromLong(0); if (unlikely(!__pyx_int_0)) __PYX_ERR(0, 1, __pyx_L1_error)
21137   __pyx_int_1 = PyInt_FromLong(1); if (unlikely(!__pyx_int_1)) __PYX_ERR(0, 1, __pyx_L1_error)
21138   __pyx_int_3 = PyInt_FromLong(3); if (unlikely(!__pyx_int_3)) __PYX_ERR(0, 1, __pyx_L1_error)
21139   __pyx_int_neg_2 = PyInt_FromLong(-2); if (unlikely(!__pyx_int_neg_2)) __PYX_ERR(0, 1, __pyx_L1_error)
21140   return 0;
21141   __pyx_L1_error:;
21142   return -1;
21143 }
21144 
21145 static CYTHON_SMALL_CODE int __Pyx_modinit_global_init_code(void); /*proto*/
21146 static CYTHON_SMALL_CODE int __Pyx_modinit_variable_export_code(void); /*proto*/
21147 static CYTHON_SMALL_CODE int __Pyx_modinit_function_export_code(void); /*proto*/
21148 static CYTHON_SMALL_CODE int __Pyx_modinit_type_init_code(void); /*proto*/
21149 static CYTHON_SMALL_CODE int __Pyx_modinit_type_import_code(void); /*proto*/
21150 static CYTHON_SMALL_CODE int __Pyx_modinit_variable_import_code(void); /*proto*/
21151 static CYTHON_SMALL_CODE int __Pyx_modinit_function_import_code(void); /*proto*/
21152 
__Pyx_modinit_global_init_code(void)21153 static int __Pyx_modinit_global_init_code(void) {
21154   __Pyx_RefNannyDeclarations
21155   __Pyx_RefNannySetupContext("__Pyx_modinit_global_init_code", 0);
21156   /*--- Global init code ---*/
21157   __pyx_v_6Cython_8Compiler_7Visitor__PRINTABLE = ((PyObject*)Py_None); Py_INCREF(Py_None);
21158   __Pyx_RefNannyFinishContext();
21159   return 0;
21160 }
21161 
__Pyx_modinit_variable_export_code(void)21162 static int __Pyx_modinit_variable_export_code(void) {
21163   __Pyx_RefNannyDeclarations
21164   __Pyx_RefNannySetupContext("__Pyx_modinit_variable_export_code", 0);
21165   /*--- Variable export code ---*/
21166   __Pyx_RefNannyFinishContext();
21167   return 0;
21168 }
21169 
__Pyx_modinit_function_export_code(void)21170 static int __Pyx_modinit_function_export_code(void) {
21171   __Pyx_RefNannyDeclarations
21172   __Pyx_RefNannySetupContext("__Pyx_modinit_function_export_code", 0);
21173   /*--- Function export code ---*/
21174   __Pyx_RefNannyFinishContext();
21175   return 0;
21176 }
21177 
__Pyx_modinit_type_init_code(void)21178 static int __Pyx_modinit_type_init_code(void) {
21179   __Pyx_RefNannyDeclarations
21180   int __pyx_lineno = 0;
21181   const char *__pyx_filename = NULL;
21182   int __pyx_clineno = 0;
21183   __Pyx_RefNannySetupContext("__Pyx_modinit_type_init_code", 0);
21184   /*--- Type init code ---*/
21185   __pyx_vtabptr_6Cython_8Compiler_7Visitor_TreeVisitor = &__pyx_vtable_6Cython_8Compiler_7Visitor_TreeVisitor;
21186   __pyx_vtable_6Cython_8Compiler_7Visitor_TreeVisitor.visit = (PyObject *(*)(struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor *, PyObject *, int __pyx_skip_dispatch))__pyx_f_6Cython_8Compiler_7Visitor_11TreeVisitor_visit;
21187   __pyx_vtable_6Cython_8Compiler_7Visitor_TreeVisitor._visit = (PyObject *(*)(struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor *, PyObject *))__pyx_f_6Cython_8Compiler_7Visitor_11TreeVisitor__visit;
21188   __pyx_vtable_6Cython_8Compiler_7Visitor_TreeVisitor.find_handler = (PyObject *(*)(struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor *, PyObject *))__pyx_f_6Cython_8Compiler_7Visitor_11TreeVisitor_find_handler;
21189   __pyx_vtable_6Cython_8Compiler_7Visitor_TreeVisitor._visitchild = (PyObject *(*)(struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor *, PyObject *, PyObject *, PyObject *, PyObject *))__pyx_f_6Cython_8Compiler_7Visitor_11TreeVisitor__visitchild;
21190   __pyx_vtable_6Cython_8Compiler_7Visitor_TreeVisitor._visitchildren = (PyObject *(*)(struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor *, PyObject *, PyObject *))__pyx_f_6Cython_8Compiler_7Visitor_11TreeVisitor__visitchildren;
21191   __pyx_vtable_6Cython_8Compiler_7Visitor_TreeVisitor.visitchildren = (PyObject *(*)(struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor *, PyObject *, int __pyx_skip_dispatch, struct __pyx_opt_args_6Cython_8Compiler_7Visitor_11TreeVisitor_visitchildren *__pyx_optional_args))__pyx_f_6Cython_8Compiler_7Visitor_11TreeVisitor_visitchildren;
21192   __pyx_vtable_6Cython_8Compiler_7Visitor_TreeVisitor._raise_compiler_error = (PyObject *(*)(struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor *, PyObject *, PyObject *))__pyx_f_6Cython_8Compiler_7Visitor_11TreeVisitor__raise_compiler_error;
21193   if (PyType_Ready(&__pyx_type_6Cython_8Compiler_7Visitor_TreeVisitor) < 0) __PYX_ERR(0, 33, __pyx_L1_error)
21194   #if PY_VERSION_HEX < 0x030800B1
21195   __pyx_type_6Cython_8Compiler_7Visitor_TreeVisitor.tp_print = 0;
21196   #endif
21197   if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_6Cython_8Compiler_7Visitor_TreeVisitor.tp_dictoffset && __pyx_type_6Cython_8Compiler_7Visitor_TreeVisitor.tp_getattro == PyObject_GenericGetAttr)) {
21198     __pyx_type_6Cython_8Compiler_7Visitor_TreeVisitor.tp_getattro = __Pyx_PyObject_GenericGetAttr;
21199   }
21200   if (__Pyx_SetVtable(__pyx_type_6Cython_8Compiler_7Visitor_TreeVisitor.tp_dict, __pyx_vtabptr_6Cython_8Compiler_7Visitor_TreeVisitor) < 0) __PYX_ERR(0, 33, __pyx_L1_error)
21201   if (PyObject_SetAttr(__pyx_m, __pyx_n_s_TreeVisitor, (PyObject *)&__pyx_type_6Cython_8Compiler_7Visitor_TreeVisitor) < 0) __PYX_ERR(0, 33, __pyx_L1_error)
21202   __pyx_ptype_6Cython_8Compiler_7Visitor_TreeVisitor = &__pyx_type_6Cython_8Compiler_7Visitor_TreeVisitor;
21203   __pyx_vtabptr_6Cython_8Compiler_7Visitor_VisitorTransform = &__pyx_vtable_6Cython_8Compiler_7Visitor_VisitorTransform;
21204   __pyx_vtable_6Cython_8Compiler_7Visitor_VisitorTransform.__pyx_base = *__pyx_vtabptr_6Cython_8Compiler_7Visitor_TreeVisitor;
21205   __pyx_vtable_6Cython_8Compiler_7Visitor_VisitorTransform.__pyx_base.visitchildren = (PyObject *(*)(struct __pyx_obj_6Cython_8Compiler_7Visitor_TreeVisitor *, PyObject *, int __pyx_skip_dispatch, struct __pyx_opt_args_6Cython_8Compiler_7Visitor_11TreeVisitor_visitchildren *__pyx_optional_args))__pyx_f_6Cython_8Compiler_7Visitor_16VisitorTransform_visitchildren__pyx_wrap_1;
21206   __pyx_vtable_6Cython_8Compiler_7Visitor_VisitorTransform._process_children = (PyObject *(*)(struct __pyx_obj_6Cython_8Compiler_7Visitor_VisitorTransform *, PyObject *, struct __pyx_opt_args_6Cython_8Compiler_7Visitor_16VisitorTransform__process_children *__pyx_optional_args))__pyx_f_6Cython_8Compiler_7Visitor_16VisitorTransform__process_children;
21207   __pyx_vtable_6Cython_8Compiler_7Visitor_VisitorTransform.visitchildren = (PyObject *(*)(struct __pyx_obj_6Cython_8Compiler_7Visitor_VisitorTransform *, PyObject *, int __pyx_skip_dispatch, struct __pyx_opt_args_6Cython_8Compiler_7Visitor_16VisitorTransform_visitchildren *__pyx_optional_args))__pyx_f_6Cython_8Compiler_7Visitor_16VisitorTransform_visitchildren;
21208   __pyx_vtable_6Cython_8Compiler_7Visitor_VisitorTransform._flatten_list = (PyObject *(*)(struct __pyx_obj_6Cython_8Compiler_7Visitor_VisitorTransform *, PyObject *))__pyx_f_6Cython_8Compiler_7Visitor_16VisitorTransform__flatten_list;
21209   __pyx_vtable_6Cython_8Compiler_7Visitor_VisitorTransform._select_attrs = (PyObject *(*)(struct __pyx_obj_6Cython_8Compiler_7Visitor_VisitorTransform *, PyObject *, PyObject *))__pyx_f_6Cython_8Compiler_7Visitor_16VisitorTransform__select_attrs;
21210   __pyx_type_6Cython_8Compiler_7Visitor_VisitorTransform.tp_base = __pyx_ptype_6Cython_8Compiler_7Visitor_TreeVisitor;
21211   if (PyType_Ready(&__pyx_type_6Cython_8Compiler_7Visitor_VisitorTransform) < 0) __PYX_ERR(0, 227, __pyx_L1_error)
21212   #if PY_VERSION_HEX < 0x030800B1
21213   __pyx_type_6Cython_8Compiler_7Visitor_VisitorTransform.tp_print = 0;
21214   #endif
21215   if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_6Cython_8Compiler_7Visitor_VisitorTransform.tp_dictoffset && __pyx_type_6Cython_8Compiler_7Visitor_VisitorTransform.tp_getattro == PyObject_GenericGetAttr)) {
21216     __pyx_type_6Cython_8Compiler_7Visitor_VisitorTransform.tp_getattro = __Pyx_PyObject_GenericGetAttr;
21217   }
21218   if (__Pyx_SetVtable(__pyx_type_6Cython_8Compiler_7Visitor_VisitorTransform.tp_dict, __pyx_vtabptr_6Cython_8Compiler_7Visitor_VisitorTransform) < 0) __PYX_ERR(0, 227, __pyx_L1_error)
21219   if (PyObject_SetAttr(__pyx_m, __pyx_n_s_VisitorTransform, (PyObject *)&__pyx_type_6Cython_8Compiler_7Visitor_VisitorTransform) < 0) __PYX_ERR(0, 227, __pyx_L1_error)
21220   __pyx_ptype_6Cython_8Compiler_7Visitor_VisitorTransform = &__pyx_type_6Cython_8Compiler_7Visitor_VisitorTransform;
21221   __pyx_vtabptr_6Cython_8Compiler_7Visitor_CythonTransform = &__pyx_vtable_6Cython_8Compiler_7Visitor_CythonTransform;
21222   __pyx_vtable_6Cython_8Compiler_7Visitor_CythonTransform.__pyx_base = *__pyx_vtabptr_6Cython_8Compiler_7Visitor_VisitorTransform;
21223   __pyx_type_6Cython_8Compiler_7Visitor_CythonTransform.tp_base = __pyx_ptype_6Cython_8Compiler_7Visitor_VisitorTransform;
21224   if (PyType_Ready(&__pyx_type_6Cython_8Compiler_7Visitor_CythonTransform) < 0) __PYX_ERR(0, 287, __pyx_L1_error)
21225   #if PY_VERSION_HEX < 0x030800B1
21226   __pyx_type_6Cython_8Compiler_7Visitor_CythonTransform.tp_print = 0;
21227   #endif
21228   if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_6Cython_8Compiler_7Visitor_CythonTransform.tp_dictoffset && __pyx_type_6Cython_8Compiler_7Visitor_CythonTransform.tp_getattro == PyObject_GenericGetAttr)) {
21229     __pyx_type_6Cython_8Compiler_7Visitor_CythonTransform.tp_getattro = __Pyx_PyObject_GenericGetAttr;
21230   }
21231   if (__Pyx_SetVtable(__pyx_type_6Cython_8Compiler_7Visitor_CythonTransform.tp_dict, __pyx_vtabptr_6Cython_8Compiler_7Visitor_CythonTransform) < 0) __PYX_ERR(0, 287, __pyx_L1_error)
21232   if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CythonTransform, (PyObject *)&__pyx_type_6Cython_8Compiler_7Visitor_CythonTransform) < 0) __PYX_ERR(0, 287, __pyx_L1_error)
21233   __pyx_ptype_6Cython_8Compiler_7Visitor_CythonTransform = &__pyx_type_6Cython_8Compiler_7Visitor_CythonTransform;
21234   __pyx_vtabptr_6Cython_8Compiler_7Visitor_ScopeTrackingTransform = &__pyx_vtable_6Cython_8Compiler_7Visitor_ScopeTrackingTransform;
21235   __pyx_vtable_6Cython_8Compiler_7Visitor_ScopeTrackingTransform.__pyx_base = *__pyx_vtabptr_6Cython_8Compiler_7Visitor_CythonTransform;
21236   __pyx_vtable_6Cython_8Compiler_7Visitor_ScopeTrackingTransform.visit_scope = (PyObject *(*)(struct __pyx_obj_6Cython_8Compiler_7Visitor_ScopeTrackingTransform *, PyObject *, PyObject *))__pyx_f_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_visit_scope;
21237   __pyx_type_6Cython_8Compiler_7Visitor_ScopeTrackingTransform.tp_base = __pyx_ptype_6Cython_8Compiler_7Visitor_CythonTransform;
21238   if (PyType_Ready(&__pyx_type_6Cython_8Compiler_7Visitor_ScopeTrackingTransform) < 0) __PYX_ERR(0, 316, __pyx_L1_error)
21239   #if PY_VERSION_HEX < 0x030800B1
21240   __pyx_type_6Cython_8Compiler_7Visitor_ScopeTrackingTransform.tp_print = 0;
21241   #endif
21242   if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_6Cython_8Compiler_7Visitor_ScopeTrackingTransform.tp_dictoffset && __pyx_type_6Cython_8Compiler_7Visitor_ScopeTrackingTransform.tp_getattro == PyObject_GenericGetAttr)) {
21243     __pyx_type_6Cython_8Compiler_7Visitor_ScopeTrackingTransform.tp_getattro = __Pyx_PyObject_GenericGetAttr;
21244   }
21245   if (__Pyx_SetVtable(__pyx_type_6Cython_8Compiler_7Visitor_ScopeTrackingTransform.tp_dict, __pyx_vtabptr_6Cython_8Compiler_7Visitor_ScopeTrackingTransform) < 0) __PYX_ERR(0, 316, __pyx_L1_error)
21246   if (PyObject_SetAttr(__pyx_m, __pyx_n_s_ScopeTrackingTransform, (PyObject *)&__pyx_type_6Cython_8Compiler_7Visitor_ScopeTrackingTransform) < 0) __PYX_ERR(0, 316, __pyx_L1_error)
21247   __pyx_ptype_6Cython_8Compiler_7Visitor_ScopeTrackingTransform = &__pyx_type_6Cython_8Compiler_7Visitor_ScopeTrackingTransform;
21248   __pyx_vtabptr_6Cython_8Compiler_7Visitor_EnvTransform = &__pyx_vtable_6Cython_8Compiler_7Visitor_EnvTransform;
21249   __pyx_vtable_6Cython_8Compiler_7Visitor_EnvTransform.__pyx_base = *__pyx_vtabptr_6Cython_8Compiler_7Visitor_CythonTransform;
21250   __pyx_type_6Cython_8Compiler_7Visitor_EnvTransform.tp_base = __pyx_ptype_6Cython_8Compiler_7Visitor_CythonTransform;
21251   if (PyType_Ready(&__pyx_type_6Cython_8Compiler_7Visitor_EnvTransform) < 0) __PYX_ERR(0, 348, __pyx_L1_error)
21252   #if PY_VERSION_HEX < 0x030800B1
21253   __pyx_type_6Cython_8Compiler_7Visitor_EnvTransform.tp_print = 0;
21254   #endif
21255   if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_6Cython_8Compiler_7Visitor_EnvTransform.tp_dictoffset && __pyx_type_6Cython_8Compiler_7Visitor_EnvTransform.tp_getattro == PyObject_GenericGetAttr)) {
21256     __pyx_type_6Cython_8Compiler_7Visitor_EnvTransform.tp_getattro = __Pyx_PyObject_GenericGetAttr;
21257   }
21258   if (__Pyx_SetVtable(__pyx_type_6Cython_8Compiler_7Visitor_EnvTransform.tp_dict, __pyx_vtabptr_6Cython_8Compiler_7Visitor_EnvTransform) < 0) __PYX_ERR(0, 348, __pyx_L1_error)
21259   if (PyObject_SetAttr(__pyx_m, __pyx_n_s_EnvTransform, (PyObject *)&__pyx_type_6Cython_8Compiler_7Visitor_EnvTransform) < 0) __PYX_ERR(0, 348, __pyx_L1_error)
21260   __pyx_ptype_6Cython_8Compiler_7Visitor_EnvTransform = &__pyx_type_6Cython_8Compiler_7Visitor_EnvTransform;
21261   __pyx_vtabptr_6Cython_8Compiler_7Visitor_MethodDispatcherTransform = &__pyx_vtable_6Cython_8Compiler_7Visitor_MethodDispatcherTransform;
21262   __pyx_vtable_6Cython_8Compiler_7Visitor_MethodDispatcherTransform.__pyx_base = *__pyx_vtabptr_6Cython_8Compiler_7Visitor_EnvTransform;
21263   __pyx_vtable_6Cython_8Compiler_7Visitor_MethodDispatcherTransform._visit_binop_node = (PyObject *(*)(struct __pyx_obj_6Cython_8Compiler_7Visitor_MethodDispatcherTransform *, PyObject *))__pyx_f_6Cython_8Compiler_7Visitor_25MethodDispatcherTransform__visit_binop_node;
21264   __pyx_vtable_6Cython_8Compiler_7Visitor_MethodDispatcherTransform._find_handler = (PyObject *(*)(struct __pyx_obj_6Cython_8Compiler_7Visitor_MethodDispatcherTransform *, PyObject *, int))__pyx_f_6Cython_8Compiler_7Visitor_25MethodDispatcherTransform__find_handler;
21265   __pyx_vtable_6Cython_8Compiler_7Visitor_MethodDispatcherTransform._delegate_to_assigned_value = (PyObject *(*)(struct __pyx_obj_6Cython_8Compiler_7Visitor_MethodDispatcherTransform *, PyObject *, PyObject *, PyObject *, PyObject *))__pyx_f_6Cython_8Compiler_7Visitor_25MethodDispatcherTransform__delegate_to_assigned_value;
21266   __pyx_vtable_6Cython_8Compiler_7Visitor_MethodDispatcherTransform._dispatch_to_handler = (PyObject *(*)(struct __pyx_obj_6Cython_8Compiler_7Visitor_MethodDispatcherTransform *, PyObject *, PyObject *, PyObject *, PyObject *))__pyx_f_6Cython_8Compiler_7Visitor_25MethodDispatcherTransform__dispatch_to_handler;
21267   __pyx_vtable_6Cython_8Compiler_7Visitor_MethodDispatcherTransform._dispatch_to_method_handler = (PyObject *(*)(struct __pyx_obj_6Cython_8Compiler_7Visitor_MethodDispatcherTransform *, PyObject *, PyObject *, PyObject *, PyObject *, PyObject *, PyObject *, PyObject *, PyObject *))__pyx_f_6Cython_8Compiler_7Visitor_25MethodDispatcherTransform__dispatch_to_method_handler;
21268   __pyx_type_6Cython_8Compiler_7Visitor_MethodDispatcherTransform.tp_base = __pyx_ptype_6Cython_8Compiler_7Visitor_EnvTransform;
21269   if (PyType_Ready(&__pyx_type_6Cython_8Compiler_7Visitor_MethodDispatcherTransform) < 0) __PYX_ERR(0, 482, __pyx_L1_error)
21270   #if PY_VERSION_HEX < 0x030800B1
21271   __pyx_type_6Cython_8Compiler_7Visitor_MethodDispatcherTransform.tp_print = 0;
21272   #endif
21273   if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_6Cython_8Compiler_7Visitor_MethodDispatcherTransform.tp_dictoffset && __pyx_type_6Cython_8Compiler_7Visitor_MethodDispatcherTransform.tp_getattro == PyObject_GenericGetAttr)) {
21274     __pyx_type_6Cython_8Compiler_7Visitor_MethodDispatcherTransform.tp_getattro = __Pyx_PyObject_GenericGetAttr;
21275   }
21276   if (__Pyx_SetVtable(__pyx_type_6Cython_8Compiler_7Visitor_MethodDispatcherTransform.tp_dict, __pyx_vtabptr_6Cython_8Compiler_7Visitor_MethodDispatcherTransform) < 0) __PYX_ERR(0, 482, __pyx_L1_error)
21277   if (PyObject_SetAttr(__pyx_m, __pyx_n_s_MethodDispatcherTransform, (PyObject *)&__pyx_type_6Cython_8Compiler_7Visitor_MethodDispatcherTransform) < 0) __PYX_ERR(0, 482, __pyx_L1_error)
21278   __pyx_ptype_6Cython_8Compiler_7Visitor_MethodDispatcherTransform = &__pyx_type_6Cython_8Compiler_7Visitor_MethodDispatcherTransform;
21279   __pyx_vtabptr_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer = &__pyx_vtable_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer;
21280   __pyx_vtable_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer.__pyx_base = *__pyx_vtabptr_6Cython_8Compiler_7Visitor_VisitorTransform;
21281   __pyx_type_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer.tp_base = __pyx_ptype_6Cython_8Compiler_7Visitor_VisitorTransform;
21282   if (PyType_Ready(&__pyx_type_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer) < 0) __PYX_ERR(0, 693, __pyx_L1_error)
21283   #if PY_VERSION_HEX < 0x030800B1
21284   __pyx_type_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer.tp_print = 0;
21285   #endif
21286   if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer.tp_dictoffset && __pyx_type_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer.tp_getattro == PyObject_GenericGetAttr)) {
21287     __pyx_type_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer.tp_getattro = __Pyx_PyObject_GenericGetAttr;
21288   }
21289   if (__Pyx_SetVtable(__pyx_type_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer.tp_dict, __pyx_vtabptr_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer) < 0) __PYX_ERR(0, 693, __pyx_L1_error)
21290   if (PyObject_SetAttr(__pyx_m, __pyx_n_s_RecursiveNodeReplacer, (PyObject *)&__pyx_type_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer) < 0) __PYX_ERR(0, 693, __pyx_L1_error)
21291   __pyx_ptype_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer = &__pyx_type_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer;
21292   __pyx_vtabptr_6Cython_8Compiler_7Visitor_NodeFinder = &__pyx_vtable_6Cython_8Compiler_7Visitor_NodeFinder;
21293   __pyx_vtable_6Cython_8Compiler_7Visitor_NodeFinder.__pyx_base = *__pyx_vtabptr_6Cython_8Compiler_7Visitor_TreeVisitor;
21294   __pyx_type_6Cython_8Compiler_7Visitor_NodeFinder.tp_base = __pyx_ptype_6Cython_8Compiler_7Visitor_TreeVisitor;
21295   if (PyType_Ready(&__pyx_type_6Cython_8Compiler_7Visitor_NodeFinder) < 0) __PYX_ERR(0, 721, __pyx_L1_error)
21296   #if PY_VERSION_HEX < 0x030800B1
21297   __pyx_type_6Cython_8Compiler_7Visitor_NodeFinder.tp_print = 0;
21298   #endif
21299   if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_6Cython_8Compiler_7Visitor_NodeFinder.tp_dictoffset && __pyx_type_6Cython_8Compiler_7Visitor_NodeFinder.tp_getattro == PyObject_GenericGetAttr)) {
21300     __pyx_type_6Cython_8Compiler_7Visitor_NodeFinder.tp_getattro = __Pyx_PyObject_GenericGetAttr;
21301   }
21302   if (__Pyx_SetVtable(__pyx_type_6Cython_8Compiler_7Visitor_NodeFinder.tp_dict, __pyx_vtabptr_6Cython_8Compiler_7Visitor_NodeFinder) < 0) __PYX_ERR(0, 721, __pyx_L1_error)
21303   if (PyObject_SetAttr(__pyx_m, __pyx_n_s_NodeFinder, (PyObject *)&__pyx_type_6Cython_8Compiler_7Visitor_NodeFinder) < 0) __PYX_ERR(0, 721, __pyx_L1_error)
21304   __pyx_ptype_6Cython_8Compiler_7Visitor_NodeFinder = &__pyx_type_6Cython_8Compiler_7Visitor_NodeFinder;
21305   __Pyx_RefNannyFinishContext();
21306   return 0;
21307   __pyx_L1_error:;
21308   __Pyx_RefNannyFinishContext();
21309   return -1;
21310 }
21311 
__Pyx_modinit_type_import_code(void)21312 static int __Pyx_modinit_type_import_code(void) {
21313   __Pyx_RefNannyDeclarations
21314   __Pyx_RefNannySetupContext("__Pyx_modinit_type_import_code", 0);
21315   /*--- Type import code ---*/
21316   __Pyx_RefNannyFinishContext();
21317   return 0;
21318 }
21319 
__Pyx_modinit_variable_import_code(void)21320 static int __Pyx_modinit_variable_import_code(void) {
21321   __Pyx_RefNannyDeclarations
21322   __Pyx_RefNannySetupContext("__Pyx_modinit_variable_import_code", 0);
21323   /*--- Variable import code ---*/
21324   __Pyx_RefNannyFinishContext();
21325   return 0;
21326 }
21327 
__Pyx_modinit_function_import_code(void)21328 static int __Pyx_modinit_function_import_code(void) {
21329   __Pyx_RefNannyDeclarations
21330   __Pyx_RefNannySetupContext("__Pyx_modinit_function_import_code", 0);
21331   /*--- Function import code ---*/
21332   __Pyx_RefNannyFinishContext();
21333   return 0;
21334 }
21335 
21336 
21337 #ifndef CYTHON_NO_PYINIT_EXPORT
21338 #define __Pyx_PyMODINIT_FUNC PyMODINIT_FUNC
21339 #elif PY_MAJOR_VERSION < 3
21340 #ifdef __cplusplus
21341 #define __Pyx_PyMODINIT_FUNC extern "C" void
21342 #else
21343 #define __Pyx_PyMODINIT_FUNC void
21344 #endif
21345 #else
21346 #ifdef __cplusplus
21347 #define __Pyx_PyMODINIT_FUNC extern "C" PyObject *
21348 #else
21349 #define __Pyx_PyMODINIT_FUNC PyObject *
21350 #endif
21351 #endif
21352 
21353 
21354 #if PY_MAJOR_VERSION < 3
21355 __Pyx_PyMODINIT_FUNC initVisitor(void) CYTHON_SMALL_CODE; /*proto*/
initVisitor(void)21356 __Pyx_PyMODINIT_FUNC initVisitor(void)
21357 #else
21358 __Pyx_PyMODINIT_FUNC PyInit_Visitor(void) CYTHON_SMALL_CODE; /*proto*/
21359 __Pyx_PyMODINIT_FUNC PyInit_Visitor(void)
21360 #if CYTHON_PEP489_MULTI_PHASE_INIT
21361 {
21362   return PyModuleDef_Init(&__pyx_moduledef);
21363 }
21364 static CYTHON_SMALL_CODE int __Pyx_check_single_interpreter(void) {
21365     #if PY_VERSION_HEX >= 0x030700A1
21366     static PY_INT64_T main_interpreter_id = -1;
21367     PY_INT64_T current_id = PyInterpreterState_GetID(PyThreadState_Get()->interp);
21368     if (main_interpreter_id == -1) {
21369         main_interpreter_id = current_id;
21370         return (unlikely(current_id == -1)) ? -1 : 0;
21371     } else if (unlikely(main_interpreter_id != current_id))
21372     #else
21373     static PyInterpreterState *main_interpreter = NULL;
21374     PyInterpreterState *current_interpreter = PyThreadState_Get()->interp;
21375     if (!main_interpreter) {
21376         main_interpreter = current_interpreter;
21377     } else if (unlikely(main_interpreter != current_interpreter))
21378     #endif
21379     {
21380         PyErr_SetString(
21381             PyExc_ImportError,
21382             "Interpreter change detected - this module can only be loaded into one interpreter per process.");
21383         return -1;
21384     }
21385     return 0;
21386 }
21387 static CYTHON_SMALL_CODE int __Pyx_copy_spec_to_module(PyObject *spec, PyObject *moddict, const char* from_name, const char* to_name, int allow_none) {
21388     PyObject *value = PyObject_GetAttrString(spec, from_name);
21389     int result = 0;
21390     if (likely(value)) {
21391         if (allow_none || value != Py_None) {
21392             result = PyDict_SetItemString(moddict, to_name, value);
21393         }
21394         Py_DECREF(value);
21395     } else if (PyErr_ExceptionMatches(PyExc_AttributeError)) {
21396         PyErr_Clear();
21397     } else {
21398         result = -1;
21399     }
21400     return result;
21401 }
21402 static CYTHON_SMALL_CODE PyObject* __pyx_pymod_create(PyObject *spec, CYTHON_UNUSED PyModuleDef *def) {
21403     PyObject *module = NULL, *moddict, *modname;
21404     if (__Pyx_check_single_interpreter())
21405         return NULL;
21406     if (__pyx_m)
21407         return __Pyx_NewRef(__pyx_m);
21408     modname = PyObject_GetAttrString(spec, "name");
21409     if (unlikely(!modname)) goto bad;
21410     module = PyModule_NewObject(modname);
21411     Py_DECREF(modname);
21412     if (unlikely(!module)) goto bad;
21413     moddict = PyModule_GetDict(module);
21414     if (unlikely(!moddict)) goto bad;
21415     if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "loader", "__loader__", 1) < 0)) goto bad;
21416     if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "origin", "__file__", 1) < 0)) goto bad;
21417     if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "parent", "__package__", 1) < 0)) goto bad;
21418     if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "submodule_search_locations", "__path__", 0) < 0)) goto bad;
21419     return module;
21420 bad:
21421     Py_XDECREF(module);
21422     return NULL;
21423 }
21424 
21425 
21426 static CYTHON_SMALL_CODE int __pyx_pymod_exec_Visitor(PyObject *__pyx_pyinit_module)
21427 #endif
21428 #endif
21429 {
21430   PyObject *__pyx_t_1 = NULL;
21431   PyObject *__pyx_t_2 = NULL;
21432   int __pyx_t_3;
21433   PyObject *__pyx_t_4 = NULL;
21434   PyObject *__pyx_t_5 = NULL;
21435   int __pyx_lineno = 0;
21436   const char *__pyx_filename = NULL;
21437   int __pyx_clineno = 0;
21438   __Pyx_RefNannyDeclarations
21439   #if CYTHON_PEP489_MULTI_PHASE_INIT
21440   if (__pyx_m) {
21441     if (__pyx_m == __pyx_pyinit_module) return 0;
21442     PyErr_SetString(PyExc_RuntimeError, "Module 'Visitor' has already been imported. Re-initialisation is not supported.");
21443     return -1;
21444   }
21445   #elif PY_MAJOR_VERSION >= 3
21446   if (__pyx_m) return __Pyx_NewRef(__pyx_m);
21447   #endif
21448   #if CYTHON_REFNANNY
21449 __Pyx_RefNanny = __Pyx_RefNannyImportAPI("refnanny");
21450 if (!__Pyx_RefNanny) {
21451   PyErr_Clear();
21452   __Pyx_RefNanny = __Pyx_RefNannyImportAPI("Cython.Runtime.refnanny");
21453   if (!__Pyx_RefNanny)
21454       Py_FatalError("failed to import 'refnanny' module");
21455 }
21456 #endif
21457   __Pyx_RefNannySetupContext("__Pyx_PyMODINIT_FUNC PyInit_Visitor(void)", 0);
21458   if (__Pyx_check_binary_version() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
21459   #ifdef __Pxy_PyFrame_Initialize_Offsets
21460   __Pxy_PyFrame_Initialize_Offsets();
21461   #endif
21462   __pyx_empty_tuple = PyTuple_New(0); if (unlikely(!__pyx_empty_tuple)) __PYX_ERR(0, 1, __pyx_L1_error)
21463   __pyx_empty_bytes = PyBytes_FromStringAndSize("", 0); if (unlikely(!__pyx_empty_bytes)) __PYX_ERR(0, 1, __pyx_L1_error)
21464   __pyx_empty_unicode = PyUnicode_FromStringAndSize("", 0); if (unlikely(!__pyx_empty_unicode)) __PYX_ERR(0, 1, __pyx_L1_error)
21465   #ifdef __Pyx_CyFunction_USED
21466   if (__pyx_CyFunction_init() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
21467   #endif
21468   #ifdef __Pyx_FusedFunction_USED
21469   if (__pyx_FusedFunction_init() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
21470   #endif
21471   #ifdef __Pyx_Coroutine_USED
21472   if (__pyx_Coroutine_init() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
21473   #endif
21474   #ifdef __Pyx_Generator_USED
21475   if (__pyx_Generator_init() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
21476   #endif
21477   #ifdef __Pyx_AsyncGen_USED
21478   if (__pyx_AsyncGen_init() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
21479   #endif
21480   #ifdef __Pyx_StopAsyncIteration_USED
21481   if (__pyx_StopAsyncIteration_init() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
21482   #endif
21483   /*--- Library function declarations ---*/
21484   /*--- Threads initialization code ---*/
21485   #if defined(WITH_THREAD) && PY_VERSION_HEX < 0x030700F0 && defined(__PYX_FORCE_INIT_THREADS) && __PYX_FORCE_INIT_THREADS
21486   PyEval_InitThreads();
21487   #endif
21488   /*--- Module creation code ---*/
21489   #if CYTHON_PEP489_MULTI_PHASE_INIT
21490   __pyx_m = __pyx_pyinit_module;
21491   Py_INCREF(__pyx_m);
21492   #else
21493   #if PY_MAJOR_VERSION < 3
21494   __pyx_m = Py_InitModule4("Visitor", __pyx_methods, 0, 0, PYTHON_API_VERSION); Py_XINCREF(__pyx_m);
21495   #else
21496   __pyx_m = PyModule_Create(&__pyx_moduledef);
21497   #endif
21498   if (unlikely(!__pyx_m)) __PYX_ERR(0, 1, __pyx_L1_error)
21499   #endif
21500   __pyx_d = PyModule_GetDict(__pyx_m); if (unlikely(!__pyx_d)) __PYX_ERR(0, 1, __pyx_L1_error)
21501   Py_INCREF(__pyx_d);
21502   __pyx_b = PyImport_AddModule(__Pyx_BUILTIN_MODULE_NAME); if (unlikely(!__pyx_b)) __PYX_ERR(0, 1, __pyx_L1_error)
21503   Py_INCREF(__pyx_b);
21504   __pyx_cython_runtime = PyImport_AddModule((char *) "cython_runtime"); if (unlikely(!__pyx_cython_runtime)) __PYX_ERR(0, 1, __pyx_L1_error)
21505   Py_INCREF(__pyx_cython_runtime);
21506   if (PyObject_SetAttrString(__pyx_m, "__builtins__", __pyx_b) < 0) __PYX_ERR(0, 1, __pyx_L1_error);
21507   /*--- Initialize various global constants etc. ---*/
21508   if (__Pyx_InitGlobals() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
21509   #if PY_MAJOR_VERSION < 3 && (__PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT)
21510   if (__Pyx_init_sys_getdefaultencoding_params() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
21511   #endif
21512   if (__pyx_module_is_main_Cython__Compiler__Visitor) {
21513     if (PyObject_SetAttr(__pyx_m, __pyx_n_s_name, __pyx_n_s_main) < 0) __PYX_ERR(0, 1, __pyx_L1_error)
21514   }
21515   #if PY_MAJOR_VERSION >= 3
21516   {
21517     PyObject *modules = PyImport_GetModuleDict(); if (unlikely(!modules)) __PYX_ERR(0, 1, __pyx_L1_error)
21518     if (!PyDict_GetItemString(modules, "Cython.Compiler.Visitor")) {
21519       if (unlikely(PyDict_SetItemString(modules, "Cython.Compiler.Visitor", __pyx_m) < 0)) __PYX_ERR(0, 1, __pyx_L1_error)
21520     }
21521   }
21522   #endif
21523   /*--- Builtin init code ---*/
21524   if (__Pyx_InitCachedBuiltins() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
21525   /*--- Constants init code ---*/
21526   if (__Pyx_InitCachedConstants() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
21527   /*--- Global type/function init code ---*/
21528   (void)__Pyx_modinit_global_init_code();
21529   (void)__Pyx_modinit_variable_export_code();
21530   (void)__Pyx_modinit_function_export_code();
21531   if (unlikely(__Pyx_modinit_type_init_code() < 0)) __PYX_ERR(0, 1, __pyx_L1_error)
21532   (void)__Pyx_modinit_type_import_code();
21533   (void)__Pyx_modinit_variable_import_code();
21534   (void)__Pyx_modinit_function_import_code();
21535   /*--- Execution code ---*/
21536   #if defined(__Pyx_Generator_USED) || defined(__Pyx_Coroutine_USED)
21537   if (__Pyx_patch_abc() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
21538   #endif
21539 
21540   /* "Cython/Compiler/Visitor.py":11
21541  * from __future__ import absolute_import, print_function
21542  *
21543  * import sys             # <<<<<<<<<<<<<<
21544  * import inspect
21545  *
21546  */
21547   __pyx_t_1 = __Pyx_Import(__pyx_n_s_sys, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 11, __pyx_L1_error)
21548   __Pyx_GOTREF(__pyx_t_1);
21549   if (PyDict_SetItem(__pyx_d, __pyx_n_s_sys, __pyx_t_1) < 0) __PYX_ERR(0, 11, __pyx_L1_error)
21550   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
21551 
21552   /* "Cython/Compiler/Visitor.py":12
21553  *
21554  * import sys
21555  * import inspect             # <<<<<<<<<<<<<<
21556  *
21557  * from . import TypeSlots
21558  */
21559   __pyx_t_1 = __Pyx_patch_inspect(__Pyx_Import(__pyx_n_s_inspect, 0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 12, __pyx_L1_error)
21560   __Pyx_GOTREF(__pyx_t_1);
21561   if (PyDict_SetItem(__pyx_d, __pyx_n_s_inspect, __pyx_t_1) < 0) __PYX_ERR(0, 12, __pyx_L1_error)
21562   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
21563 
21564   /* "Cython/Compiler/Visitor.py":14
21565  * import inspect
21566  *
21567  * from . import TypeSlots             # <<<<<<<<<<<<<<
21568  * from . import Builtin
21569  * from . import Nodes
21570  */
21571   __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 14, __pyx_L1_error)
21572   __Pyx_GOTREF(__pyx_t_1);
21573   __Pyx_INCREF(__pyx_n_s_TypeSlots);
21574   __Pyx_GIVEREF(__pyx_n_s_TypeSlots);
21575   PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_TypeSlots);
21576   __pyx_t_2 = __Pyx_Import(__pyx_n_s__7, __pyx_t_1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 14, __pyx_L1_error)
21577   __Pyx_GOTREF(__pyx_t_2);
21578   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
21579   __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_TypeSlots); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 14, __pyx_L1_error)
21580   __Pyx_GOTREF(__pyx_t_1);
21581   if (PyDict_SetItem(__pyx_d, __pyx_n_s_TypeSlots, __pyx_t_1) < 0) __PYX_ERR(0, 14, __pyx_L1_error)
21582   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
21583   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
21584 
21585   /* "Cython/Compiler/Visitor.py":15
21586  *
21587  * from . import TypeSlots
21588  * from . import Builtin             # <<<<<<<<<<<<<<
21589  * from . import Nodes
21590  * from . import ExprNodes
21591  */
21592   __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 15, __pyx_L1_error)
21593   __Pyx_GOTREF(__pyx_t_2);
21594   __Pyx_INCREF(__pyx_n_s_Builtin);
21595   __Pyx_GIVEREF(__pyx_n_s_Builtin);
21596   PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_Builtin);
21597   __pyx_t_1 = __Pyx_Import(__pyx_n_s__7, __pyx_t_2, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 15, __pyx_L1_error)
21598   __Pyx_GOTREF(__pyx_t_1);
21599   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
21600   __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_Builtin); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 15, __pyx_L1_error)
21601   __Pyx_GOTREF(__pyx_t_2);
21602   if (PyDict_SetItem(__pyx_d, __pyx_n_s_Builtin, __pyx_t_2) < 0) __PYX_ERR(0, 15, __pyx_L1_error)
21603   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
21604   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
21605 
21606   /* "Cython/Compiler/Visitor.py":16
21607  * from . import TypeSlots
21608  * from . import Builtin
21609  * from . import Nodes             # <<<<<<<<<<<<<<
21610  * from . import ExprNodes
21611  * from . import Errors
21612  */
21613   __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 16, __pyx_L1_error)
21614   __Pyx_GOTREF(__pyx_t_1);
21615   __Pyx_INCREF(__pyx_n_s_Nodes);
21616   __Pyx_GIVEREF(__pyx_n_s_Nodes);
21617   PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_Nodes);
21618   __pyx_t_2 = __Pyx_Import(__pyx_n_s__7, __pyx_t_1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 16, __pyx_L1_error)
21619   __Pyx_GOTREF(__pyx_t_2);
21620   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
21621   __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_Nodes); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 16, __pyx_L1_error)
21622   __Pyx_GOTREF(__pyx_t_1);
21623   if (PyDict_SetItem(__pyx_d, __pyx_n_s_Nodes, __pyx_t_1) < 0) __PYX_ERR(0, 16, __pyx_L1_error)
21624   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
21625   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
21626 
21627   /* "Cython/Compiler/Visitor.py":17
21628  * from . import Builtin
21629  * from . import Nodes
21630  * from . import ExprNodes             # <<<<<<<<<<<<<<
21631  * from . import Errors
21632  * from . import DebugFlags
21633  */
21634   __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 17, __pyx_L1_error)
21635   __Pyx_GOTREF(__pyx_t_2);
21636   __Pyx_INCREF(__pyx_n_s_ExprNodes);
21637   __Pyx_GIVEREF(__pyx_n_s_ExprNodes);
21638   PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_ExprNodes);
21639   __pyx_t_1 = __Pyx_Import(__pyx_n_s__7, __pyx_t_2, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 17, __pyx_L1_error)
21640   __Pyx_GOTREF(__pyx_t_1);
21641   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
21642   __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_ExprNodes); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 17, __pyx_L1_error)
21643   __Pyx_GOTREF(__pyx_t_2);
21644   if (PyDict_SetItem(__pyx_d, __pyx_n_s_ExprNodes, __pyx_t_2) < 0) __PYX_ERR(0, 17, __pyx_L1_error)
21645   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
21646   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
21647 
21648   /* "Cython/Compiler/Visitor.py":18
21649  * from . import Nodes
21650  * from . import ExprNodes
21651  * from . import Errors             # <<<<<<<<<<<<<<
21652  * from . import DebugFlags
21653  * from . import Future
21654  */
21655   __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 18, __pyx_L1_error)
21656   __Pyx_GOTREF(__pyx_t_1);
21657   __Pyx_INCREF(__pyx_n_s_Errors);
21658   __Pyx_GIVEREF(__pyx_n_s_Errors);
21659   PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_Errors);
21660   __pyx_t_2 = __Pyx_Import(__pyx_n_s__7, __pyx_t_1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 18, __pyx_L1_error)
21661   __Pyx_GOTREF(__pyx_t_2);
21662   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
21663   __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_Errors); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 18, __pyx_L1_error)
21664   __Pyx_GOTREF(__pyx_t_1);
21665   if (PyDict_SetItem(__pyx_d, __pyx_n_s_Errors, __pyx_t_1) < 0) __PYX_ERR(0, 18, __pyx_L1_error)
21666   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
21667   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
21668 
21669   /* "Cython/Compiler/Visitor.py":19
21670  * from . import ExprNodes
21671  * from . import Errors
21672  * from . import DebugFlags             # <<<<<<<<<<<<<<
21673  * from . import Future
21674  *
21675  */
21676   __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 19, __pyx_L1_error)
21677   __Pyx_GOTREF(__pyx_t_2);
21678   __Pyx_INCREF(__pyx_n_s_DebugFlags);
21679   __Pyx_GIVEREF(__pyx_n_s_DebugFlags);
21680   PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_DebugFlags);
21681   __pyx_t_1 = __Pyx_Import(__pyx_n_s__7, __pyx_t_2, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 19, __pyx_L1_error)
21682   __Pyx_GOTREF(__pyx_t_1);
21683   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
21684   __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_DebugFlags); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 19, __pyx_L1_error)
21685   __Pyx_GOTREF(__pyx_t_2);
21686   if (PyDict_SetItem(__pyx_d, __pyx_n_s_DebugFlags, __pyx_t_2) < 0) __PYX_ERR(0, 19, __pyx_L1_error)
21687   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
21688   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
21689 
21690   /* "Cython/Compiler/Visitor.py":20
21691  * from . import Errors
21692  * from . import DebugFlags
21693  * from . import Future             # <<<<<<<<<<<<<<
21694  *
21695  * import cython
21696  */
21697   __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 20, __pyx_L1_error)
21698   __Pyx_GOTREF(__pyx_t_1);
21699   __Pyx_INCREF(__pyx_n_s_Future);
21700   __Pyx_GIVEREF(__pyx_n_s_Future);
21701   PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_Future);
21702   __pyx_t_2 = __Pyx_Import(__pyx_n_s__7, __pyx_t_1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 20, __pyx_L1_error)
21703   __Pyx_GOTREF(__pyx_t_2);
21704   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
21705   __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_Future); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 20, __pyx_L1_error)
21706   __Pyx_GOTREF(__pyx_t_1);
21707   if (PyDict_SetItem(__pyx_d, __pyx_n_s_Future, __pyx_t_1) < 0) __PYX_ERR(0, 20, __pyx_L1_error)
21708   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
21709   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
21710 
21711   /* "Cython/Compiler/Visitor.py":27
21712  * cython.declare(_PRINTABLE=tuple)
21713  *
21714  * if sys.version_info[0] >= 3:             # <<<<<<<<<<<<<<
21715  *     _PRINTABLE = (bytes, str, int, float)
21716  * else:
21717  */
21718   __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_sys); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 27, __pyx_L1_error)
21719   __Pyx_GOTREF(__pyx_t_2);
21720   __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_version_info); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 27, __pyx_L1_error)
21721   __Pyx_GOTREF(__pyx_t_1);
21722   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
21723   __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_1, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 27, __pyx_L1_error)
21724   __Pyx_GOTREF(__pyx_t_2);
21725   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
21726   __pyx_t_1 = PyObject_RichCompare(__pyx_t_2, __pyx_int_3, Py_GE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 27, __pyx_L1_error)
21727   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
21728   __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 27, __pyx_L1_error)
21729   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
21730   if (__pyx_t_3) {
21731 
21732     /* "Cython/Compiler/Visitor.py":28
21733  *
21734  * if sys.version_info[0] >= 3:
21735  *     _PRINTABLE = (bytes, str, int, float)             # <<<<<<<<<<<<<<
21736  * else:
21737  *     _PRINTABLE = (str, unicode, long, int, float)
21738  */
21739     __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28, __pyx_L1_error)
21740     __Pyx_GOTREF(__pyx_t_1);
21741     __Pyx_INCREF(((PyObject *)(&PyBytes_Type)));
21742     __Pyx_GIVEREF(((PyObject *)(&PyBytes_Type)));
21743     PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)(&PyBytes_Type)));
21744     __Pyx_INCREF(((PyObject *)(&PyUnicode_Type)));
21745     __Pyx_GIVEREF(((PyObject *)(&PyUnicode_Type)));
21746     PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)(&PyUnicode_Type)));
21747     __Pyx_INCREF(((PyObject *)(&PyInt_Type)));
21748     __Pyx_GIVEREF(((PyObject *)(&PyInt_Type)));
21749     PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)(&PyInt_Type)));
21750     __Pyx_INCREF(((PyObject *)(&PyFloat_Type)));
21751     __Pyx_GIVEREF(((PyObject *)(&PyFloat_Type)));
21752     PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)(&PyFloat_Type)));
21753     __Pyx_XGOTREF(__pyx_v_6Cython_8Compiler_7Visitor__PRINTABLE);
21754     __Pyx_DECREF_SET(__pyx_v_6Cython_8Compiler_7Visitor__PRINTABLE, ((PyObject*)__pyx_t_1));
21755     __Pyx_GIVEREF(__pyx_t_1);
21756     __pyx_t_1 = 0;
21757 
21758     /* "Cython/Compiler/Visitor.py":27
21759  * cython.declare(_PRINTABLE=tuple)
21760  *
21761  * if sys.version_info[0] >= 3:             # <<<<<<<<<<<<<<
21762  *     _PRINTABLE = (bytes, str, int, float)
21763  * else:
21764  */
21765     goto __pyx_L2;
21766   }
21767 
21768   /* "Cython/Compiler/Visitor.py":30
21769  *     _PRINTABLE = (bytes, str, int, float)
21770  * else:
21771  *     _PRINTABLE = (str, unicode, long, int, float)             # <<<<<<<<<<<<<<
21772  *
21773  *
21774  */
21775   /*else*/ {
21776     __pyx_t_1 = PyTuple_New(5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 30, __pyx_L1_error)
21777     __Pyx_GOTREF(__pyx_t_1);
21778     __Pyx_INCREF(((PyObject *)(&PyUnicode_Type)));
21779     __Pyx_GIVEREF(((PyObject *)(&PyUnicode_Type)));
21780     PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)(&PyUnicode_Type)));
21781     __Pyx_INCREF(((PyObject *)(&PyUnicode_Type)));
21782     __Pyx_GIVEREF(((PyObject *)(&PyUnicode_Type)));
21783     PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)(&PyUnicode_Type)));
21784     __Pyx_INCREF(((PyObject *)(&PyLong_Type)));
21785     __Pyx_GIVEREF(((PyObject *)(&PyLong_Type)));
21786     PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)(&PyLong_Type)));
21787     __Pyx_INCREF(((PyObject *)(&PyInt_Type)));
21788     __Pyx_GIVEREF(((PyObject *)(&PyInt_Type)));
21789     PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)(&PyInt_Type)));
21790     __Pyx_INCREF(((PyObject *)(&PyFloat_Type)));
21791     __Pyx_GIVEREF(((PyObject *)(&PyFloat_Type)));
21792     PyTuple_SET_ITEM(__pyx_t_1, 4, ((PyObject *)(&PyFloat_Type)));
21793     __Pyx_XGOTREF(__pyx_v_6Cython_8Compiler_7Visitor__PRINTABLE);
21794     __Pyx_DECREF_SET(__pyx_v_6Cython_8Compiler_7Visitor__PRINTABLE, ((PyObject*)__pyx_t_1));
21795     __Pyx_GIVEREF(__pyx_t_1);
21796     __pyx_t_1 = 0;
21797   }
21798   __pyx_L2:;
21799 
21800   /* "Cython/Compiler/Visitor.py":81
21801  *         self.access_path = []
21802  *
21803  *     def dump_node(self, node):             # <<<<<<<<<<<<<<
21804  *         ignored = list(node.child_attrs or []) + [
21805  *             u'child_attrs', u'pos', u'gil_message', u'cpp_message', u'subexprs']
21806  */
21807   __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_6Cython_8Compiler_7Visitor_11TreeVisitor_3dump_node, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_TreeVisitor_dump_node, NULL, __pyx_n_s_Cython_Compiler_Visitor, __pyx_d, ((PyObject *)__pyx_codeobj__23)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 81, __pyx_L1_error)
21808   __Pyx_GOTREF(__pyx_t_1);
21809   if (PyDict_SetItem((PyObject *)__pyx_ptype_6Cython_8Compiler_7Visitor_TreeVisitor->tp_dict, __pyx_n_s_dump_node, __pyx_t_1) < 0) __PYX_ERR(0, 81, __pyx_L1_error)
21810   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
21811   PyType_Modified(__pyx_ptype_6Cython_8Compiler_7Visitor_TreeVisitor);
21812 
21813   /* "Cython/Compiler/Visitor.py":113
21814  *         return u'%s(%s)' % (node.__class__.__name__, u',\n    '.join(values))
21815  *
21816  *     def _find_node_path(self, stacktrace):             # <<<<<<<<<<<<<<
21817  *         import os.path
21818  *         last_traceback = stacktrace
21819  */
21820   __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_6Cython_8Compiler_7Visitor_11TreeVisitor_5_find_node_path, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_TreeVisitor__find_node_path, NULL, __pyx_n_s_Cython_Compiler_Visitor, __pyx_d, ((PyObject *)__pyx_codeobj__25)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 113, __pyx_L1_error)
21821   __Pyx_GOTREF(__pyx_t_1);
21822   if (PyDict_SetItem((PyObject *)__pyx_ptype_6Cython_8Compiler_7Visitor_TreeVisitor->tp_dict, __pyx_n_s_find_node_path, __pyx_t_1) < 0) __PYX_ERR(0, 113, __pyx_L1_error)
21823   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
21824   PyType_Modified(__pyx_ptype_6Cython_8Compiler_7Visitor_TreeVisitor);
21825 
21826   /* "Cython/Compiler/Visitor.py":169
21827  *         raise RuntimeError("Visitor %r does not accept object: %s" % (self, obj))
21828  *
21829  *     def visit(self, obj):             # <<<<<<<<<<<<<<
21830  *         return self._visit(obj)
21831  *
21832  */
21833   __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_6Cython_8Compiler_7Visitor_11TreeVisitor_7visit, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_TreeVisitor_visit, NULL, __pyx_n_s_Cython_Compiler_Visitor, __pyx_d, ((PyObject *)__pyx_codeobj__27)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 169, __pyx_L1_error)
21834   __Pyx_GOTREF(__pyx_t_1);
21835   if (PyDict_SetItem((PyObject *)__pyx_ptype_6Cython_8Compiler_7Visitor_TreeVisitor->tp_dict, __pyx_n_s_visit, __pyx_t_1) < 0) __PYX_ERR(0, 169, __pyx_L1_error)
21836   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
21837   PyType_Modified(__pyx_ptype_6Cython_8Compiler_7Visitor_TreeVisitor);
21838 
21839   /* "Cython/Compiler/Visitor.py":197
21840  *         return result
21841  *
21842  *     def visitchildren(self, parent, attrs=None):             # <<<<<<<<<<<<<<
21843  *         return self._visitchildren(parent, attrs)
21844  *
21845  */
21846   __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_6Cython_8Compiler_7Visitor_11TreeVisitor_9visitchildren, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_TreeVisitor_visitchildren, NULL, __pyx_n_s_Cython_Compiler_Visitor, __pyx_d, ((PyObject *)__pyx_codeobj__29)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 197, __pyx_L1_error)
21847   __Pyx_GOTREF(__pyx_t_1);
21848   if (PyDict_SetItem((PyObject *)__pyx_ptype_6Cython_8Compiler_7Visitor_TreeVisitor->tp_dict, __pyx_n_s_visitchildren, __pyx_t_1) < 0) __PYX_ERR(0, 197, __pyx_L1_error)
21849   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
21850   PyType_Modified(__pyx_ptype_6Cython_8Compiler_7Visitor_TreeVisitor);
21851 
21852   /* "Cython/Compiler/Visitor.py":247
21853  *     are within a StatListNode or similar before doing this.)
21854  *     """
21855  *     def visitchildren(self, parent, attrs=None, exclude=None):             # <<<<<<<<<<<<<<
21856  *         # generic def entry point for calls from Python subclasses
21857  *         if exclude is not None:
21858  */
21859   __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_6Cython_8Compiler_7Visitor_16VisitorTransform_1visitchildren, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_VisitorTransform_visitchildren, NULL, __pyx_n_s_Cython_Compiler_Visitor, __pyx_d, ((PyObject *)__pyx_codeobj__31)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 247, __pyx_L1_error)
21860   __Pyx_GOTREF(__pyx_t_1);
21861   if (PyDict_SetItem((PyObject *)__pyx_ptype_6Cython_8Compiler_7Visitor_VisitorTransform->tp_dict, __pyx_n_s_visitchildren, __pyx_t_1) < 0) __PYX_ERR(0, 247, __pyx_L1_error)
21862   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
21863   PyType_Modified(__pyx_ptype_6Cython_8Compiler_7Visitor_VisitorTransform);
21864 
21865   /* "Cython/Compiler/Visitor.py":279
21866  *         return newlist
21867  *
21868  *     def recurse_to_children(self, node):             # <<<<<<<<<<<<<<
21869  *         self._process_children(node)
21870  *         return node
21871  */
21872   __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_6Cython_8Compiler_7Visitor_16VisitorTransform_3recurse_to_children, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_VisitorTransform_recurse_to_chil, NULL, __pyx_n_s_Cython_Compiler_Visitor, __pyx_d, ((PyObject *)__pyx_codeobj__33)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 279, __pyx_L1_error)
21873   __Pyx_GOTREF(__pyx_t_1);
21874   if (PyDict_SetItem((PyObject *)__pyx_ptype_6Cython_8Compiler_7Visitor_VisitorTransform->tp_dict, __pyx_n_s_recurse_to_children, __pyx_t_1) < 0) __PYX_ERR(0, 279, __pyx_L1_error)
21875   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
21876   PyType_Modified(__pyx_ptype_6Cython_8Compiler_7Visitor_VisitorTransform);
21877 
21878   /* "Cython/Compiler/Visitor.py":304
21879  *         return super(CythonTransform, self).__call__(node)
21880  *
21881  *     def visit_CompilerDirectivesNode(self, node):             # <<<<<<<<<<<<<<
21882  *         old = self.current_directives
21883  *         self.current_directives = node.directives
21884  */
21885   __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_6Cython_8Compiler_7Visitor_15CythonTransform_5visit_CompilerDirectivesNode, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CythonTransform_visit_CompilerDi, NULL, __pyx_n_s_Cython_Compiler_Visitor, __pyx_d, ((PyObject *)__pyx_codeobj__35)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 304, __pyx_L1_error)
21886   __Pyx_GOTREF(__pyx_t_1);
21887   if (PyDict_SetItem((PyObject *)__pyx_ptype_6Cython_8Compiler_7Visitor_CythonTransform->tp_dict, __pyx_n_s_visit_CompilerDirectivesNode, __pyx_t_1) < 0) __PYX_ERR(0, 304, __pyx_L1_error)
21888   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
21889   PyType_Modified(__pyx_ptype_6Cython_8Compiler_7Visitor_CythonTransform);
21890 
21891   /* "Cython/Compiler/Visitor.py":311
21892  *         return node
21893  *
21894  *     def visit_Node(self, node):             # <<<<<<<<<<<<<<
21895  *         self._process_children(node)
21896  *         return node
21897  */
21898   __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_6Cython_8Compiler_7Visitor_15CythonTransform_7visit_Node, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CythonTransform_visit_Node, NULL, __pyx_n_s_Cython_Compiler_Visitor, __pyx_d, ((PyObject *)__pyx_codeobj__37)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 311, __pyx_L1_error)
21899   __Pyx_GOTREF(__pyx_t_1);
21900   if (PyDict_SetItem((PyObject *)__pyx_ptype_6Cython_8Compiler_7Visitor_CythonTransform->tp_dict, __pyx_n_s_visit_Node, __pyx_t_1) < 0) __PYX_ERR(0, 311, __pyx_L1_error)
21901   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
21902   PyType_Modified(__pyx_ptype_6Cython_8Compiler_7Visitor_CythonTransform);
21903 
21904   /* "Cython/Compiler/Visitor.py":321
21905  *     #scope_node: the node that owns the current scope
21906  *
21907  *     def visit_ModuleNode(self, node):             # <<<<<<<<<<<<<<
21908  *         self.scope_type = 'module'
21909  *         self.scope_node = node
21910  */
21911   __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_1visit_ModuleNode, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ScopeTrackingTransform_visit_Mod, NULL, __pyx_n_s_Cython_Compiler_Visitor, __pyx_d, ((PyObject *)__pyx_codeobj__39)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 321, __pyx_L1_error)
21912   __Pyx_GOTREF(__pyx_t_1);
21913   if (PyDict_SetItem((PyObject *)__pyx_ptype_6Cython_8Compiler_7Visitor_ScopeTrackingTransform->tp_dict, __pyx_n_s_visit_ModuleNode, __pyx_t_1) < 0) __PYX_ERR(0, 321, __pyx_L1_error)
21914   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
21915   PyType_Modified(__pyx_ptype_6Cython_8Compiler_7Visitor_ScopeTrackingTransform);
21916 
21917   /* "Cython/Compiler/Visitor.py":335
21918  *         return node
21919  *
21920  *     def visit_CClassDefNode(self, node):             # <<<<<<<<<<<<<<
21921  *         return self.visit_scope(node, 'cclass')
21922  *
21923  */
21924   __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_3visit_CClassDefNode, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ScopeTrackingTransform_visit_CCl, NULL, __pyx_n_s_Cython_Compiler_Visitor, __pyx_d, ((PyObject *)__pyx_codeobj__41)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 335, __pyx_L1_error)
21925   __Pyx_GOTREF(__pyx_t_1);
21926   if (PyDict_SetItem((PyObject *)__pyx_ptype_6Cython_8Compiler_7Visitor_ScopeTrackingTransform->tp_dict, __pyx_n_s_visit_CClassDefNode, __pyx_t_1) < 0) __PYX_ERR(0, 335, __pyx_L1_error)
21927   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
21928   PyType_Modified(__pyx_ptype_6Cython_8Compiler_7Visitor_ScopeTrackingTransform);
21929 
21930   /* "Cython/Compiler/Visitor.py":338
21931  *         return self.visit_scope(node, 'cclass')
21932  *
21933  *     def visit_PyClassDefNode(self, node):             # <<<<<<<<<<<<<<
21934  *         return self.visit_scope(node, 'pyclass')
21935  *
21936  */
21937   __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_5visit_PyClassDefNode, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ScopeTrackingTransform_visit_PyC, NULL, __pyx_n_s_Cython_Compiler_Visitor, __pyx_d, ((PyObject *)__pyx_codeobj__43)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 338, __pyx_L1_error)
21938   __Pyx_GOTREF(__pyx_t_1);
21939   if (PyDict_SetItem((PyObject *)__pyx_ptype_6Cython_8Compiler_7Visitor_ScopeTrackingTransform->tp_dict, __pyx_n_s_visit_PyClassDefNode, __pyx_t_1) < 0) __PYX_ERR(0, 338, __pyx_L1_error)
21940   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
21941   PyType_Modified(__pyx_ptype_6Cython_8Compiler_7Visitor_ScopeTrackingTransform);
21942 
21943   /* "Cython/Compiler/Visitor.py":341
21944  *         return self.visit_scope(node, 'pyclass')
21945  *
21946  *     def visit_FuncDefNode(self, node):             # <<<<<<<<<<<<<<
21947  *         return self.visit_scope(node, 'function')
21948  *
21949  */
21950   __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_7visit_FuncDefNode, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ScopeTrackingTransform_visit_Fun, NULL, __pyx_n_s_Cython_Compiler_Visitor, __pyx_d, ((PyObject *)__pyx_codeobj__45)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 341, __pyx_L1_error)
21951   __Pyx_GOTREF(__pyx_t_1);
21952   if (PyDict_SetItem((PyObject *)__pyx_ptype_6Cython_8Compiler_7Visitor_ScopeTrackingTransform->tp_dict, __pyx_n_s_visit_FuncDefNode, __pyx_t_1) < 0) __PYX_ERR(0, 341, __pyx_L1_error)
21953   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
21954   PyType_Modified(__pyx_ptype_6Cython_8Compiler_7Visitor_ScopeTrackingTransform);
21955 
21956   /* "Cython/Compiler/Visitor.py":344
21957  *         return self.visit_scope(node, 'function')
21958  *
21959  *     def visit_CStructOrUnionDefNode(self, node):             # <<<<<<<<<<<<<<
21960  *         return self.visit_scope(node, 'struct')
21961  *
21962  */
21963   __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_6Cython_8Compiler_7Visitor_22ScopeTrackingTransform_9visit_CStructOrUnionDefNode, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ScopeTrackingTransform_visit_CSt, NULL, __pyx_n_s_Cython_Compiler_Visitor, __pyx_d, ((PyObject *)__pyx_codeobj__47)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 344, __pyx_L1_error)
21964   __Pyx_GOTREF(__pyx_t_1);
21965   if (PyDict_SetItem((PyObject *)__pyx_ptype_6Cython_8Compiler_7Visitor_ScopeTrackingTransform->tp_dict, __pyx_n_s_visit_CStructOrUnionDefNode, __pyx_t_1) < 0) __PYX_ERR(0, 344, __pyx_L1_error)
21966   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
21967   PyType_Modified(__pyx_ptype_6Cython_8Compiler_7Visitor_ScopeTrackingTransform);
21968 
21969   /* "Cython/Compiler/Visitor.py":357
21970  *         return super(EnvTransform, self).__call__(root)
21971  *
21972  *     def current_env(self):             # <<<<<<<<<<<<<<
21973  *         return self.env_stack[-1][1]
21974  *
21975  */
21976   __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_6Cython_8Compiler_7Visitor_12EnvTransform_3current_env, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_EnvTransform_current_env, NULL, __pyx_n_s_Cython_Compiler_Visitor, __pyx_d, ((PyObject *)__pyx_codeobj__49)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 357, __pyx_L1_error)
21977   __Pyx_GOTREF(__pyx_t_1);
21978   if (PyDict_SetItem((PyObject *)__pyx_ptype_6Cython_8Compiler_7Visitor_EnvTransform->tp_dict, __pyx_n_s_current_env, __pyx_t_1) < 0) __PYX_ERR(0, 357, __pyx_L1_error)
21979   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
21980   PyType_Modified(__pyx_ptype_6Cython_8Compiler_7Visitor_EnvTransform);
21981 
21982   /* "Cython/Compiler/Visitor.py":360
21983  *         return self.env_stack[-1][1]
21984  *
21985  *     def current_scope_node(self):             # <<<<<<<<<<<<<<
21986  *         return self.env_stack[-1][0]
21987  *
21988  */
21989   __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_6Cython_8Compiler_7Visitor_12EnvTransform_5current_scope_node, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_EnvTransform_current_scope_node, NULL, __pyx_n_s_Cython_Compiler_Visitor, __pyx_d, ((PyObject *)__pyx_codeobj__51)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 360, __pyx_L1_error)
21990   __Pyx_GOTREF(__pyx_t_1);
21991   if (PyDict_SetItem((PyObject *)__pyx_ptype_6Cython_8Compiler_7Visitor_EnvTransform->tp_dict, __pyx_n_s_current_scope_node, __pyx_t_1) < 0) __PYX_ERR(0, 360, __pyx_L1_error)
21992   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
21993   PyType_Modified(__pyx_ptype_6Cython_8Compiler_7Visitor_EnvTransform);
21994 
21995   /* "Cython/Compiler/Visitor.py":363
21996  *         return self.env_stack[-1][0]
21997  *
21998  *     def global_scope(self):             # <<<<<<<<<<<<<<
21999  *         return self.current_env().global_scope()
22000  *
22001  */
22002   __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_6Cython_8Compiler_7Visitor_12EnvTransform_7global_scope, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_EnvTransform_global_scope, NULL, __pyx_n_s_Cython_Compiler_Visitor, __pyx_d, ((PyObject *)__pyx_codeobj__53)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 363, __pyx_L1_error)
22003   __Pyx_GOTREF(__pyx_t_1);
22004   if (PyDict_SetItem((PyObject *)__pyx_ptype_6Cython_8Compiler_7Visitor_EnvTransform->tp_dict, __pyx_n_s_global_scope, __pyx_t_1) < 0) __PYX_ERR(0, 363, __pyx_L1_error)
22005   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
22006   PyType_Modified(__pyx_ptype_6Cython_8Compiler_7Visitor_EnvTransform);
22007 
22008   /* "Cython/Compiler/Visitor.py":366
22009  *         return self.current_env().global_scope()
22010  *
22011  *     def enter_scope(self, node, scope):             # <<<<<<<<<<<<<<
22012  *         self.env_stack.append((node, scope))
22013  *
22014  */
22015   __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_6Cython_8Compiler_7Visitor_12EnvTransform_9enter_scope, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_EnvTransform_enter_scope, NULL, __pyx_n_s_Cython_Compiler_Visitor, __pyx_d, ((PyObject *)__pyx_codeobj__55)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 366, __pyx_L1_error)
22016   __Pyx_GOTREF(__pyx_t_1);
22017   if (PyDict_SetItem((PyObject *)__pyx_ptype_6Cython_8Compiler_7Visitor_EnvTransform->tp_dict, __pyx_n_s_enter_scope, __pyx_t_1) < 0) __PYX_ERR(0, 366, __pyx_L1_error)
22018   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
22019   PyType_Modified(__pyx_ptype_6Cython_8Compiler_7Visitor_EnvTransform);
22020 
22021   /* "Cython/Compiler/Visitor.py":369
22022  *         self.env_stack.append((node, scope))
22023  *
22024  *     def exit_scope(self):             # <<<<<<<<<<<<<<
22025  *         self.env_stack.pop()
22026  *
22027  */
22028   __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_6Cython_8Compiler_7Visitor_12EnvTransform_11exit_scope, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_EnvTransform_exit_scope, NULL, __pyx_n_s_Cython_Compiler_Visitor, __pyx_d, ((PyObject *)__pyx_codeobj__57)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 369, __pyx_L1_error)
22029   __Pyx_GOTREF(__pyx_t_1);
22030   if (PyDict_SetItem((PyObject *)__pyx_ptype_6Cython_8Compiler_7Visitor_EnvTransform->tp_dict, __pyx_n_s_exit_scope, __pyx_t_1) < 0) __PYX_ERR(0, 369, __pyx_L1_error)
22031   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
22032   PyType_Modified(__pyx_ptype_6Cython_8Compiler_7Visitor_EnvTransform);
22033 
22034   /* "Cython/Compiler/Visitor.py":372
22035  *         self.env_stack.pop()
22036  *
22037  *     def visit_FuncDefNode(self, node):             # <<<<<<<<<<<<<<
22038  *         self.enter_scope(node, node.local_scope)
22039  *         self._process_children(node)
22040  */
22041   __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_6Cython_8Compiler_7Visitor_12EnvTransform_13visit_FuncDefNode, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_EnvTransform_visit_FuncDefNode, NULL, __pyx_n_s_Cython_Compiler_Visitor, __pyx_d, ((PyObject *)__pyx_codeobj__59)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 372, __pyx_L1_error)
22042   __Pyx_GOTREF(__pyx_t_1);
22043   if (PyDict_SetItem((PyObject *)__pyx_ptype_6Cython_8Compiler_7Visitor_EnvTransform->tp_dict, __pyx_n_s_visit_FuncDefNode, __pyx_t_1) < 0) __PYX_ERR(0, 372, __pyx_L1_error)
22044   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
22045   PyType_Modified(__pyx_ptype_6Cython_8Compiler_7Visitor_EnvTransform);
22046 
22047   /* "Cython/Compiler/Visitor.py":378
22048  *         return node
22049  *
22050  *     def visit_GeneratorBodyDefNode(self, node):             # <<<<<<<<<<<<<<
22051  *         self._process_children(node)
22052  *         return node
22053  */
22054   __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_6Cython_8Compiler_7Visitor_12EnvTransform_15visit_GeneratorBodyDefNode, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_EnvTransform_visit_GeneratorBody, NULL, __pyx_n_s_Cython_Compiler_Visitor, __pyx_d, ((PyObject *)__pyx_codeobj__61)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 378, __pyx_L1_error)
22055   __Pyx_GOTREF(__pyx_t_1);
22056   if (PyDict_SetItem((PyObject *)__pyx_ptype_6Cython_8Compiler_7Visitor_EnvTransform->tp_dict, __pyx_n_s_visit_GeneratorBodyDefNode, __pyx_t_1) < 0) __PYX_ERR(0, 378, __pyx_L1_error)
22057   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
22058   PyType_Modified(__pyx_ptype_6Cython_8Compiler_7Visitor_EnvTransform);
22059 
22060   /* "Cython/Compiler/Visitor.py":382
22061  *         return node
22062  *
22063  *     def visit_ClassDefNode(self, node):             # <<<<<<<<<<<<<<
22064  *         self.enter_scope(node, node.scope)
22065  *         self._process_children(node)
22066  */
22067   __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_6Cython_8Compiler_7Visitor_12EnvTransform_17visit_ClassDefNode, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_EnvTransform_visit_ClassDefNode, NULL, __pyx_n_s_Cython_Compiler_Visitor, __pyx_d, ((PyObject *)__pyx_codeobj__63)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 382, __pyx_L1_error)
22068   __Pyx_GOTREF(__pyx_t_1);
22069   if (PyDict_SetItem((PyObject *)__pyx_ptype_6Cython_8Compiler_7Visitor_EnvTransform->tp_dict, __pyx_n_s_visit_ClassDefNode, __pyx_t_1) < 0) __PYX_ERR(0, 382, __pyx_L1_error)
22070   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
22071   PyType_Modified(__pyx_ptype_6Cython_8Compiler_7Visitor_EnvTransform);
22072 
22073   /* "Cython/Compiler/Visitor.py":388
22074  *         return node
22075  *
22076  *     def visit_CStructOrUnionDefNode(self, node):             # <<<<<<<<<<<<<<
22077  *         self.enter_scope(node, node.scope)
22078  *         self._process_children(node)
22079  */
22080   __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_6Cython_8Compiler_7Visitor_12EnvTransform_19visit_CStructOrUnionDefNode, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_EnvTransform_visit_CStructOrUnio, NULL, __pyx_n_s_Cython_Compiler_Visitor, __pyx_d, ((PyObject *)__pyx_codeobj__65)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 388, __pyx_L1_error)
22081   __Pyx_GOTREF(__pyx_t_1);
22082   if (PyDict_SetItem((PyObject *)__pyx_ptype_6Cython_8Compiler_7Visitor_EnvTransform->tp_dict, __pyx_n_s_visit_CStructOrUnionDefNode, __pyx_t_1) < 0) __PYX_ERR(0, 388, __pyx_L1_error)
22083   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
22084   PyType_Modified(__pyx_ptype_6Cython_8Compiler_7Visitor_EnvTransform);
22085 
22086   /* "Cython/Compiler/Visitor.py":394
22087  *         return node
22088  *
22089  *     def visit_ScopedExprNode(self, node):             # <<<<<<<<<<<<<<
22090  *         if node.expr_scope:
22091  *             self.enter_scope(node, node.expr_scope)
22092  */
22093   __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_6Cython_8Compiler_7Visitor_12EnvTransform_21visit_ScopedExprNode, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_EnvTransform_visit_ScopedExprNod, NULL, __pyx_n_s_Cython_Compiler_Visitor, __pyx_d, ((PyObject *)__pyx_codeobj__67)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 394, __pyx_L1_error)
22094   __Pyx_GOTREF(__pyx_t_1);
22095   if (PyDict_SetItem((PyObject *)__pyx_ptype_6Cython_8Compiler_7Visitor_EnvTransform->tp_dict, __pyx_n_s_visit_ScopedExprNode, __pyx_t_1) < 0) __PYX_ERR(0, 394, __pyx_L1_error)
22096   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
22097   PyType_Modified(__pyx_ptype_6Cython_8Compiler_7Visitor_EnvTransform);
22098 
22099   /* "Cython/Compiler/Visitor.py":403
22100  *         return node
22101  *
22102  *     def visit_CArgDeclNode(self, node):             # <<<<<<<<<<<<<<
22103  *         # default arguments are evaluated in the outer scope
22104  *         if node.default:
22105  */
22106   __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_6Cython_8Compiler_7Visitor_12EnvTransform_23visit_CArgDeclNode, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_EnvTransform_visit_CArgDeclNode, NULL, __pyx_n_s_Cython_Compiler_Visitor, __pyx_d, ((PyObject *)__pyx_codeobj__69)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 403, __pyx_L1_error)
22107   __Pyx_GOTREF(__pyx_t_1);
22108   if (PyDict_SetItem((PyObject *)__pyx_ptype_6Cython_8Compiler_7Visitor_EnvTransform->tp_dict, __pyx_n_s_visit_CArgDeclNode, __pyx_t_1) < 0) __PYX_ERR(0, 403, __pyx_L1_error)
22109   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
22110   PyType_Modified(__pyx_ptype_6Cython_8Compiler_7Visitor_EnvTransform);
22111 
22112   /* "Cython/Compiler/Visitor.py":416
22113  *
22114  *
22115  * class NodeRefCleanupMixin(object):             # <<<<<<<<<<<<<<
22116  *     """
22117  *     Clean up references to nodes that were replaced.
22118  */
22119   __pyx_t_1 = __Pyx_CalculateMetaclass(NULL, __pyx_tuple__70); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 416, __pyx_L1_error)
22120   __Pyx_GOTREF(__pyx_t_1);
22121   __pyx_t_2 = __Pyx_Py3MetaclassPrepare(__pyx_t_1, __pyx_tuple__70, __pyx_n_s_NodeRefCleanupMixin, __pyx_n_s_NodeRefCleanupMixin, (PyObject *) NULL, __pyx_n_s_Cython_Compiler_Visitor, __pyx_kp_s_Clean_up_references_to_nodes_th); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 416, __pyx_L1_error)
22122   __Pyx_GOTREF(__pyx_t_2);
22123 
22124   /* "Cython/Compiler/Visitor.py":426
22125  *     and by ordering the "child_attrs" of nodes appropriately.
22126  *     """
22127  *     def __init__(self, *args):             # <<<<<<<<<<<<<<
22128  *         super(NodeRefCleanupMixin, self).__init__(*args)
22129  *         self._replacements = {}
22130  */
22131   __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_6Cython_8Compiler_7Visitor_19NodeRefCleanupMixin_1__init__, 0, __pyx_n_s_NodeRefCleanupMixin___init, NULL, __pyx_n_s_Cython_Compiler_Visitor, __pyx_d, ((PyObject *)__pyx_codeobj__72)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 426, __pyx_L1_error)
22132   __Pyx_GOTREF(__pyx_t_4);
22133   if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_init, __pyx_t_4) < 0) __PYX_ERR(0, 426, __pyx_L1_error)
22134   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
22135 
22136   /* "Cython/Compiler/Visitor.py":430
22137  *         self._replacements = {}
22138  *
22139  *     def visit_CloneNode(self, node):             # <<<<<<<<<<<<<<
22140  *         arg = node.arg
22141  *         if arg not in self._replacements:
22142  */
22143   __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_6Cython_8Compiler_7Visitor_19NodeRefCleanupMixin_3visit_CloneNode, 0, __pyx_n_s_NodeRefCleanupMixin_visit_CloneN, NULL, __pyx_n_s_Cython_Compiler_Visitor, __pyx_d, ((PyObject *)__pyx_codeobj__74)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 430, __pyx_L1_error)
22144   __Pyx_GOTREF(__pyx_t_4);
22145   if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_visit_CloneNode, __pyx_t_4) < 0) __PYX_ERR(0, 430, __pyx_L1_error)
22146   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
22147 
22148   /* "Cython/Compiler/Visitor.py":437
22149  *         return node
22150  *
22151  *     def visit_ResultRefNode(self, node):             # <<<<<<<<<<<<<<
22152  *         expr = node.expression
22153  *         if expr is None or expr not in self._replacements:
22154  */
22155   __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_6Cython_8Compiler_7Visitor_19NodeRefCleanupMixin_5visit_ResultRefNode, 0, __pyx_n_s_NodeRefCleanupMixin_visit_Result, NULL, __pyx_n_s_Cython_Compiler_Visitor, __pyx_d, ((PyObject *)__pyx_codeobj__76)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 437, __pyx_L1_error)
22156   __Pyx_GOTREF(__pyx_t_4);
22157   if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_visit_ResultRefNode, __pyx_t_4) < 0) __PYX_ERR(0, 437, __pyx_L1_error)
22158   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
22159 
22160   /* "Cython/Compiler/Visitor.py":446
22161  *         return node
22162  *
22163  *     def replace(self, node, replacement):             # <<<<<<<<<<<<<<
22164  *         self._replacements[node] = replacement
22165  *         return replacement
22166  */
22167   __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_6Cython_8Compiler_7Visitor_19NodeRefCleanupMixin_7replace, 0, __pyx_n_s_NodeRefCleanupMixin_replace, NULL, __pyx_n_s_Cython_Compiler_Visitor, __pyx_d, ((PyObject *)__pyx_codeobj__78)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 446, __pyx_L1_error)
22168   __Pyx_GOTREF(__pyx_t_4);
22169   if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_replace, __pyx_t_4) < 0) __PYX_ERR(0, 446, __pyx_L1_error)
22170   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
22171 
22172   /* "Cython/Compiler/Visitor.py":416
22173  *
22174  *
22175  * class NodeRefCleanupMixin(object):             # <<<<<<<<<<<<<<
22176  *     """
22177  *     Clean up references to nodes that were replaced.
22178  */
22179   __pyx_t_4 = __Pyx_Py3ClassCreate(__pyx_t_1, __pyx_n_s_NodeRefCleanupMixin, __pyx_tuple__70, __pyx_t_2, NULL, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 416, __pyx_L1_error)
22180   __Pyx_GOTREF(__pyx_t_4);
22181   if (PyDict_SetItem(__pyx_d, __pyx_n_s_NodeRefCleanupMixin, __pyx_t_4) < 0) __PYX_ERR(0, 416, __pyx_L1_error)
22182   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
22183   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
22184   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
22185 
22186   /* "Cython/Compiler/Visitor.py":452
22187  *
22188  * find_special_method_for_binary_operator = {
22189  *     '<':  '__lt__',             # <<<<<<<<<<<<<<
22190  *     '<=': '__le__',
22191  *     '==': '__eq__',
22192  */
22193   __pyx_t_1 = __Pyx_PyDict_NewPresized(19); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 452, __pyx_L1_error)
22194   __Pyx_GOTREF(__pyx_t_1);
22195   if (PyDict_SetItem(__pyx_t_1, __pyx_kp_u__79, __pyx_n_u_lt) < 0) __PYX_ERR(0, 452, __pyx_L1_error)
22196   if (PyDict_SetItem(__pyx_t_1, __pyx_kp_u__80, __pyx_n_u_le) < 0) __PYX_ERR(0, 452, __pyx_L1_error)
22197   if (PyDict_SetItem(__pyx_t_1, __pyx_kp_u__81, __pyx_n_u_eq) < 0) __PYX_ERR(0, 452, __pyx_L1_error)
22198   if (PyDict_SetItem(__pyx_t_1, __pyx_kp_u__82, __pyx_n_u_ne) < 0) __PYX_ERR(0, 452, __pyx_L1_error)
22199   if (PyDict_SetItem(__pyx_t_1, __pyx_kp_u__83, __pyx_n_u_ge) < 0) __PYX_ERR(0, 452, __pyx_L1_error)
22200   if (PyDict_SetItem(__pyx_t_1, __pyx_kp_u__84, __pyx_n_u_gt) < 0) __PYX_ERR(0, 452, __pyx_L1_error)
22201   if (PyDict_SetItem(__pyx_t_1, __pyx_kp_u__85, __pyx_n_u_add) < 0) __PYX_ERR(0, 452, __pyx_L1_error)
22202   if (PyDict_SetItem(__pyx_t_1, __pyx_kp_u__86, __pyx_n_u_and) < 0) __PYX_ERR(0, 452, __pyx_L1_error)
22203   if (PyDict_SetItem(__pyx_t_1, __pyx_kp_u__19, __pyx_n_u_div) < 0) __PYX_ERR(0, 452, __pyx_L1_error)
22204   if (PyDict_SetItem(__pyx_t_1, __pyx_kp_u__87, __pyx_n_u_floordiv) < 0) __PYX_ERR(0, 452, __pyx_L1_error)
22205   if (PyDict_SetItem(__pyx_t_1, __pyx_kp_u__88, __pyx_n_u_lshift) < 0) __PYX_ERR(0, 452, __pyx_L1_error)
22206   if (PyDict_SetItem(__pyx_t_1, __pyx_kp_u__89, __pyx_n_u_mod) < 0) __PYX_ERR(0, 452, __pyx_L1_error)
22207   if (PyDict_SetItem(__pyx_t_1, __pyx_kp_u__90, __pyx_n_u_mul) < 0) __PYX_ERR(0, 452, __pyx_L1_error)
22208   if (PyDict_SetItem(__pyx_t_1, __pyx_kp_u__91, __pyx_n_u_or) < 0) __PYX_ERR(0, 452, __pyx_L1_error)
22209   if (PyDict_SetItem(__pyx_t_1, __pyx_kp_u__92, __pyx_n_u_pow) < 0) __PYX_ERR(0, 452, __pyx_L1_error)
22210   if (PyDict_SetItem(__pyx_t_1, __pyx_kp_u__93, __pyx_n_u_rshift) < 0) __PYX_ERR(0, 452, __pyx_L1_error)
22211   if (PyDict_SetItem(__pyx_t_1, __pyx_kp_u__94, __pyx_n_u_sub) < 0) __PYX_ERR(0, 452, __pyx_L1_error)
22212   if (PyDict_SetItem(__pyx_t_1, __pyx_kp_u__95, __pyx_n_u_xor) < 0) __PYX_ERR(0, 452, __pyx_L1_error)
22213   if (PyDict_SetItem(__pyx_t_1, __pyx_n_u_in_3, __pyx_n_u_contains) < 0) __PYX_ERR(0, 452, __pyx_L1_error)
22214 
22215   /* "Cython/Compiler/Visitor.py":471
22216  *     '^':  '__xor__',
22217  *     'in': '__contains__',
22218  * }.get             # <<<<<<<<<<<<<<
22219  *
22220  *
22221  */
22222   __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_get); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 471, __pyx_L1_error)
22223   __Pyx_GOTREF(__pyx_t_2);
22224   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
22225   if (PyDict_SetItem(__pyx_d, __pyx_n_s_find_special_method_for_binary_o, __pyx_t_2) < 0) __PYX_ERR(0, 451, __pyx_L1_error)
22226   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
22227 
22228   /* "Cython/Compiler/Visitor.py":475
22229  *
22230  * find_special_method_for_unary_operator = {
22231  *     'not': '__not__',             # <<<<<<<<<<<<<<
22232  *     '~':   '__inv__',
22233  *     '-':   '__neg__',
22234  */
22235   __pyx_t_2 = __Pyx_PyDict_NewPresized(4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 475, __pyx_L1_error)
22236   __Pyx_GOTREF(__pyx_t_2);
22237   if (PyDict_SetItem(__pyx_t_2, __pyx_n_u_not, __pyx_n_u_not_2) < 0) __PYX_ERR(0, 475, __pyx_L1_error)
22238   if (PyDict_SetItem(__pyx_t_2, __pyx_kp_u__96, __pyx_n_u_inv) < 0) __PYX_ERR(0, 475, __pyx_L1_error)
22239   if (PyDict_SetItem(__pyx_t_2, __pyx_kp_u__94, __pyx_n_u_neg) < 0) __PYX_ERR(0, 475, __pyx_L1_error)
22240   if (PyDict_SetItem(__pyx_t_2, __pyx_kp_u__85, __pyx_n_u_pos_3) < 0) __PYX_ERR(0, 475, __pyx_L1_error)
22241 
22242   /* "Cython/Compiler/Visitor.py":479
22243  *     '-':   '__neg__',
22244  *     '+':   '__pos__',
22245  * }.get             # <<<<<<<<<<<<<<
22246  *
22247  *
22248  */
22249   __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_get); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 479, __pyx_L1_error)
22250   __Pyx_GOTREF(__pyx_t_1);
22251   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
22252   if (PyDict_SetItem(__pyx_d, __pyx_n_s_find_special_method_for_unary_op, __pyx_t_1) < 0) __PYX_ERR(0, 474, __pyx_L1_error)
22253   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
22254 
22255   /* "Cython/Compiler/Visitor.py":496
22256  *     """
22257  *     # only visit call nodes and Python operations
22258  *     def visit_GeneralCallNode(self, node):             # <<<<<<<<<<<<<<
22259  *         self._process_children(node)
22260  *         function = node.function
22261  */
22262   __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_6Cython_8Compiler_7Visitor_25MethodDispatcherTransform_1visit_GeneralCallNode, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_MethodDispatcherTransform_visit, NULL, __pyx_n_s_Cython_Compiler_Visitor, __pyx_d, ((PyObject *)__pyx_codeobj__98)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 496, __pyx_L1_error)
22263   __Pyx_GOTREF(__pyx_t_1);
22264   if (PyDict_SetItem((PyObject *)__pyx_ptype_6Cython_8Compiler_7Visitor_MethodDispatcherTransform->tp_dict, __pyx_n_s_visit_GeneralCallNode, __pyx_t_1) < 0) __PYX_ERR(0, 496, __pyx_L1_error)
22265   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
22266   PyType_Modified(__pyx_ptype_6Cython_8Compiler_7Visitor_MethodDispatcherTransform);
22267 
22268   /* "Cython/Compiler/Visitor.py":511
22269  *         return self._dispatch_to_handler(node, function, args, keyword_args)
22270  *
22271  *     def visit_SimpleCallNode(self, node):             # <<<<<<<<<<<<<<
22272  *         self._process_children(node)
22273  *         function = node.function
22274  */
22275   __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_6Cython_8Compiler_7Visitor_25MethodDispatcherTransform_3visit_SimpleCallNode, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_MethodDispatcherTransform_visit_2, NULL, __pyx_n_s_Cython_Compiler_Visitor, __pyx_d, ((PyObject *)__pyx_codeobj__100)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 511, __pyx_L1_error)
22276   __Pyx_GOTREF(__pyx_t_1);
22277   if (PyDict_SetItem((PyObject *)__pyx_ptype_6Cython_8Compiler_7Visitor_MethodDispatcherTransform->tp_dict, __pyx_n_s_visit_SimpleCallNode, __pyx_t_1) < 0) __PYX_ERR(0, 511, __pyx_L1_error)
22278   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
22279   PyType_Modified(__pyx_ptype_6Cython_8Compiler_7Visitor_MethodDispatcherTransform);
22280 
22281   /* "Cython/Compiler/Visitor.py":523
22282  *         return self._dispatch_to_handler(node, function, args, None)
22283  *
22284  *     def visit_PrimaryCmpNode(self, node):             # <<<<<<<<<<<<<<
22285  *         if node.cascade:
22286  *             # not currently handled below
22287  */
22288   __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_6Cython_8Compiler_7Visitor_25MethodDispatcherTransform_5visit_PrimaryCmpNode, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_MethodDispatcherTransform_visit_3, NULL, __pyx_n_s_Cython_Compiler_Visitor, __pyx_d, ((PyObject *)__pyx_codeobj__102)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 523, __pyx_L1_error)
22289   __Pyx_GOTREF(__pyx_t_1);
22290   if (PyDict_SetItem((PyObject *)__pyx_ptype_6Cython_8Compiler_7Visitor_MethodDispatcherTransform->tp_dict, __pyx_n_s_visit_PrimaryCmpNode, __pyx_t_1) < 0) __PYX_ERR(0, 523, __pyx_L1_error)
22291   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
22292   PyType_Modified(__pyx_ptype_6Cython_8Compiler_7Visitor_MethodDispatcherTransform);
22293 
22294   /* "Cython/Compiler/Visitor.py":530
22295  *         return self._visit_binop_node(node)
22296  *
22297  *     def visit_BinopNode(self, node):             # <<<<<<<<<<<<<<
22298  *         return self._visit_binop_node(node)
22299  *
22300  */
22301   __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_6Cython_8Compiler_7Visitor_25MethodDispatcherTransform_7visit_BinopNode, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_MethodDispatcherTransform_visit_4, NULL, __pyx_n_s_Cython_Compiler_Visitor, __pyx_d, ((PyObject *)__pyx_codeobj__104)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 530, __pyx_L1_error)
22302   __Pyx_GOTREF(__pyx_t_1);
22303   if (PyDict_SetItem((PyObject *)__pyx_ptype_6Cython_8Compiler_7Visitor_MethodDispatcherTransform->tp_dict, __pyx_n_s_visit_BinopNode, __pyx_t_1) < 0) __PYX_ERR(0, 530, __pyx_L1_error)
22304   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
22305   PyType_Modified(__pyx_ptype_6Cython_8Compiler_7Visitor_MethodDispatcherTransform);
22306 
22307   /* "Cython/Compiler/Visitor.py":554
22308  *         return node
22309  *
22310  *     def visit_UnopNode(self, node):             # <<<<<<<<<<<<<<
22311  *         self._process_children(node)
22312  *         special_method_name = find_special_method_for_unary_operator(node.operator)
22313  */
22314   __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_6Cython_8Compiler_7Visitor_25MethodDispatcherTransform_9visit_UnopNode, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_MethodDispatcherTransform_visit_5, NULL, __pyx_n_s_Cython_Compiler_Visitor, __pyx_d, ((PyObject *)__pyx_codeobj__106)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 554, __pyx_L1_error)
22315   __Pyx_GOTREF(__pyx_t_1);
22316   if (PyDict_SetItem((PyObject *)__pyx_ptype_6Cython_8Compiler_7Visitor_MethodDispatcherTransform->tp_dict, __pyx_n_s_visit_UnopNode, __pyx_t_1) < 0) __PYX_ERR(0, 554, __pyx_L1_error)
22317   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
22318   PyType_Modified(__pyx_ptype_6Cython_8Compiler_7Visitor_MethodDispatcherTransform);
22319 
22320   /* "Cython/Compiler/Visitor.py":683
22321  *         return result
22322  *
22323  *     def _handle_function(self, node, function_name, function, arg_list, kwargs):             # <<<<<<<<<<<<<<
22324  *         """Fallback handler"""
22325  *         return node
22326  */
22327   __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_6Cython_8Compiler_7Visitor_25MethodDispatcherTransform_11_handle_function, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_MethodDispatcherTransform__handl, NULL, __pyx_n_s_Cython_Compiler_Visitor, __pyx_d, ((PyObject *)__pyx_codeobj__108)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 683, __pyx_L1_error)
22328   __Pyx_GOTREF(__pyx_t_1);
22329   if (PyDict_SetItem((PyObject *)__pyx_ptype_6Cython_8Compiler_7Visitor_MethodDispatcherTransform->tp_dict, __pyx_n_s_handle_function, __pyx_t_1) < 0) __PYX_ERR(0, 683, __pyx_L1_error)
22330   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
22331   PyType_Modified(__pyx_ptype_6Cython_8Compiler_7Visitor_MethodDispatcherTransform);
22332 
22333   /* "Cython/Compiler/Visitor.py":687
22334  *         return node
22335  *
22336  *     def _handle_method(self, node, type_name, attr_name, function,             # <<<<<<<<<<<<<<
22337  *                        arg_list, is_unbound_method, kwargs):
22338  *         """Fallback handler"""
22339  */
22340   __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_6Cython_8Compiler_7Visitor_25MethodDispatcherTransform_13_handle_method, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_MethodDispatcherTransform__handl_2, NULL, __pyx_n_s_Cython_Compiler_Visitor, __pyx_d, ((PyObject *)__pyx_codeobj__110)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 687, __pyx_L1_error)
22341   __Pyx_GOTREF(__pyx_t_1);
22342   if (PyDict_SetItem((PyObject *)__pyx_ptype_6Cython_8Compiler_7Visitor_MethodDispatcherTransform->tp_dict, __pyx_n_s_handle_method, __pyx_t_1) < 0) __PYX_ERR(0, 687, __pyx_L1_error)
22343   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
22344   PyType_Modified(__pyx_ptype_6Cython_8Compiler_7Visitor_MethodDispatcherTransform);
22345 
22346   /* "Cython/Compiler/Visitor.py":702
22347  *         self.orig_node, self.new_node = orig_node, new_node
22348  *
22349  *     def visit_CloneNode(self, node):             # <<<<<<<<<<<<<<
22350  *         if node is self.orig_node:
22351  *             return self.new_node
22352  */
22353   __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_6Cython_8Compiler_7Visitor_21RecursiveNodeReplacer_3visit_CloneNode, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_RecursiveNodeReplacer_visit_Clon, NULL, __pyx_n_s_Cython_Compiler_Visitor, __pyx_d, ((PyObject *)__pyx_codeobj__112)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 702, __pyx_L1_error)
22354   __Pyx_GOTREF(__pyx_t_1);
22355   if (PyDict_SetItem((PyObject *)__pyx_ptype_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer->tp_dict, __pyx_n_s_visit_CloneNode, __pyx_t_1) < 0) __PYX_ERR(0, 702, __pyx_L1_error)
22356   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
22357   PyType_Modified(__pyx_ptype_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer);
22358 
22359   /* "Cython/Compiler/Visitor.py":709
22360  *         return node
22361  *
22362  *     def visit_Node(self, node):             # <<<<<<<<<<<<<<
22363  *         self._process_children(node)
22364  *         if node is self.orig_node:
22365  */
22366   __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_6Cython_8Compiler_7Visitor_21RecursiveNodeReplacer_5visit_Node, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_RecursiveNodeReplacer_visit_Node, NULL, __pyx_n_s_Cython_Compiler_Visitor, __pyx_d, ((PyObject *)__pyx_codeobj__114)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 709, __pyx_L1_error)
22367   __Pyx_GOTREF(__pyx_t_1);
22368   if (PyDict_SetItem((PyObject *)__pyx_ptype_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer->tp_dict, __pyx_n_s_visit_Node, __pyx_t_1) < 0) __PYX_ERR(0, 709, __pyx_L1_error)
22369   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
22370   PyType_Modified(__pyx_ptype_6Cython_8Compiler_7Visitor_RecursiveNodeReplacer);
22371 
22372   /* "Cython/Compiler/Visitor.py":716
22373  *             return node
22374  *
22375  * def recursively_replace_node(tree, old_node, new_node):             # <<<<<<<<<<<<<<
22376  *     replace_in = RecursiveNodeReplacer(old_node, new_node)
22377  *     replace_in(tree)
22378  */
22379   __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_6Cython_8Compiler_7Visitor_1recursively_replace_node, 0, __pyx_n_s_recursively_replace_node, NULL, __pyx_n_s_Cython_Compiler_Visitor, __pyx_d, ((PyObject *)__pyx_codeobj__116)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 716, __pyx_L1_error)
22380   __Pyx_GOTREF(__pyx_t_1);
22381   if (PyDict_SetItem(__pyx_d, __pyx_n_s_recursively_replace_node, __pyx_t_1) < 0) __PYX_ERR(0, 716, __pyx_L1_error)
22382   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
22383 
22384   /* "Cython/Compiler/Visitor.py":730
22385  *         self.found = False
22386  *
22387  *     def visit_Node(self, node):             # <<<<<<<<<<<<<<
22388  *         if self.found:
22389  *             pass  # short-circuit
22390  */
22391   __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_6Cython_8Compiler_7Visitor_10NodeFinder_3visit_Node, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_NodeFinder_visit_Node, NULL, __pyx_n_s_Cython_Compiler_Visitor, __pyx_d, ((PyObject *)__pyx_codeobj__118)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 730, __pyx_L1_error)
22392   __Pyx_GOTREF(__pyx_t_1);
22393   if (PyDict_SetItem((PyObject *)__pyx_ptype_6Cython_8Compiler_7Visitor_NodeFinder->tp_dict, __pyx_n_s_visit_Node, __pyx_t_1) < 0) __PYX_ERR(0, 730, __pyx_L1_error)
22394   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
22395   PyType_Modified(__pyx_ptype_6Cython_8Compiler_7Visitor_NodeFinder);
22396 
22397   /* "Cython/Compiler/Visitor.py":738
22398  *             self._visitchildren(node, None)
22399  *
22400  * def tree_contains(tree, node):             # <<<<<<<<<<<<<<
22401  *     finder = NodeFinder(node)
22402  *     finder.visit(tree)
22403  */
22404   __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_6Cython_8Compiler_7Visitor_3tree_contains, 0, __pyx_n_s_tree_contains, NULL, __pyx_n_s_Cython_Compiler_Visitor, __pyx_d, ((PyObject *)__pyx_codeobj__120)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 738, __pyx_L1_error)
22405   __Pyx_GOTREF(__pyx_t_1);
22406   if (PyDict_SetItem(__pyx_d, __pyx_n_s_tree_contains, __pyx_t_1) < 0) __PYX_ERR(0, 738, __pyx_L1_error)
22407   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
22408 
22409   /* "Cython/Compiler/Visitor.py":745
22410  *
22411  * # Utils
22412  * def replace_node(ptr, value):             # <<<<<<<<<<<<<<
22413  *     """Replaces a node. ptr is of the form used on the access path stack
22414  *     (parent, attrname, listidx|None)
22415  */
22416   __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_6Cython_8Compiler_7Visitor_5replace_node, 0, __pyx_n_s_replace_node, NULL, __pyx_n_s_Cython_Compiler_Visitor, __pyx_d, ((PyObject *)__pyx_codeobj__122)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 745, __pyx_L1_error)
22417   __Pyx_GOTREF(__pyx_t_1);
22418   if (PyDict_SetItem(__pyx_d, __pyx_n_s_replace_node, __pyx_t_1) < 0) __PYX_ERR(0, 745, __pyx_L1_error)
22419   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
22420 
22421   /* "Cython/Compiler/Visitor.py":756
22422  *
22423  *
22424  * class PrintTree(TreeVisitor):             # <<<<<<<<<<<<<<
22425  *     """Prints a representation of the tree to standard output.
22426  *     Subclass and override repr_of to provide more information
22427  */
22428   __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 756, __pyx_L1_error)
22429   __Pyx_GOTREF(__pyx_t_1);
22430   __Pyx_INCREF(((PyObject *)__pyx_ptype_6Cython_8Compiler_7Visitor_TreeVisitor));
22431   __Pyx_GIVEREF(((PyObject *)__pyx_ptype_6Cython_8Compiler_7Visitor_TreeVisitor));
22432   PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_ptype_6Cython_8Compiler_7Visitor_TreeVisitor));
22433   __pyx_t_2 = __Pyx_CalculateMetaclass(NULL, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 756, __pyx_L1_error)
22434   __Pyx_GOTREF(__pyx_t_2);
22435   __pyx_t_4 = __Pyx_Py3MetaclassPrepare(__pyx_t_2, __pyx_t_1, __pyx_n_s_PrintTree, __pyx_n_s_PrintTree, (PyObject *) NULL, __pyx_n_s_Cython_Compiler_Visitor, __pyx_kp_s_Prints_a_representation_of_the_t); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 756, __pyx_L1_error)
22436   __Pyx_GOTREF(__pyx_t_4);
22437 
22438   /* "Cython/Compiler/Visitor.py":760
22439  *     Subclass and override repr_of to provide more information
22440  *     about nodes. """
22441  *     def __init__(self, start=None, end=None):             # <<<<<<<<<<<<<<
22442  *         TreeVisitor.__init__(self)
22443  *         self._indent = ""
22444  */
22445   __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_6Cython_8Compiler_7Visitor_9PrintTree_1__init__, 0, __pyx_n_s_PrintTree___init, NULL, __pyx_n_s_Cython_Compiler_Visitor, __pyx_d, ((PyObject *)__pyx_codeobj__124)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 760, __pyx_L1_error)
22446   __Pyx_GOTREF(__pyx_t_5);
22447   __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_tuple__125);
22448   if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_n_s_init, __pyx_t_5) < 0) __PYX_ERR(0, 760, __pyx_L1_error)
22449   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
22450 
22451   /* "Cython/Compiler/Visitor.py":768
22452  *             self._line_range = None
22453  *
22454  *     def indent(self):             # <<<<<<<<<<<<<<
22455  *         self._indent += "  "
22456  *
22457  */
22458   __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_6Cython_8Compiler_7Visitor_9PrintTree_3indent, 0, __pyx_n_s_PrintTree_indent, NULL, __pyx_n_s_Cython_Compiler_Visitor, __pyx_d, ((PyObject *)__pyx_codeobj__127)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 768, __pyx_L1_error)
22459   __Pyx_GOTREF(__pyx_t_5);
22460   if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_n_s_indent_2, __pyx_t_5) < 0) __PYX_ERR(0, 768, __pyx_L1_error)
22461   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
22462 
22463   /* "Cython/Compiler/Visitor.py":771
22464  *         self._indent += "  "
22465  *
22466  *     def unindent(self):             # <<<<<<<<<<<<<<
22467  *         self._indent = self._indent[:-2]
22468  *
22469  */
22470   __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_6Cython_8Compiler_7Visitor_9PrintTree_5unindent, 0, __pyx_n_s_PrintTree_unindent, NULL, __pyx_n_s_Cython_Compiler_Visitor, __pyx_d, ((PyObject *)__pyx_codeobj__129)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 771, __pyx_L1_error)
22471   __Pyx_GOTREF(__pyx_t_5);
22472   if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_n_s_unindent, __pyx_t_5) < 0) __PYX_ERR(0, 771, __pyx_L1_error)
22473   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
22474 
22475   /* "Cython/Compiler/Visitor.py":774
22476  *         self._indent = self._indent[:-2]
22477  *
22478  *     def __call__(self, tree, phase=None):             # <<<<<<<<<<<<<<
22479  *         print("Parse tree dump at phase '%s'" % phase)
22480  *         self.visit(tree)
22481  */
22482   __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_6Cython_8Compiler_7Visitor_9PrintTree_7__call__, 0, __pyx_n_s_PrintTree___call, NULL, __pyx_n_s_Cython_Compiler_Visitor, __pyx_d, ((PyObject *)__pyx_codeobj__131)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 774, __pyx_L1_error)
22483   __Pyx_GOTREF(__pyx_t_5);
22484   __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_tuple__132);
22485   if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_n_s_call, __pyx_t_5) < 0) __PYX_ERR(0, 774, __pyx_L1_error)
22486   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
22487 
22488   /* "Cython/Compiler/Visitor.py":783
22489  *     # under the parent-node, not displaying the list itself in
22490  *     # the hierarchy.
22491  *     def visit_Node(self, node):             # <<<<<<<<<<<<<<
22492  *         self._print_node(node)
22493  *         self.indent()
22494  */
22495   __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_6Cython_8Compiler_7Visitor_9PrintTree_9visit_Node, 0, __pyx_n_s_PrintTree_visit_Node, NULL, __pyx_n_s_Cython_Compiler_Visitor, __pyx_d, ((PyObject *)__pyx_codeobj__134)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 783, __pyx_L1_error)
22496   __Pyx_GOTREF(__pyx_t_5);
22497   if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_n_s_visit_Node, __pyx_t_5) < 0) __PYX_ERR(0, 783, __pyx_L1_error)
22498   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
22499 
22500   /* "Cython/Compiler/Visitor.py":790
22501  *         return node
22502  *
22503  *     def visit_CloneNode(self, node):             # <<<<<<<<<<<<<<
22504  *         self._print_node(node)
22505  *         self.indent()
22506  */
22507   __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_6Cython_8Compiler_7Visitor_9PrintTree_11visit_CloneNode, 0, __pyx_n_s_PrintTree_visit_CloneNode, NULL, __pyx_n_s_Cython_Compiler_Visitor, __pyx_d, ((PyObject *)__pyx_codeobj__136)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 790, __pyx_L1_error)
22508   __Pyx_GOTREF(__pyx_t_5);
22509   if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_n_s_visit_CloneNode, __pyx_t_5) < 0) __PYX_ERR(0, 790, __pyx_L1_error)
22510   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
22511 
22512   /* "Cython/Compiler/Visitor.py":802
22513  *         return node
22514  *
22515  *     def _print_node(self, node):             # <<<<<<<<<<<<<<
22516  *         line = node.pos[1]
22517  *         if self._line_range is None or self._line_range[0] <= line <= self._line_range[1]:
22518  */
22519   __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_6Cython_8Compiler_7Visitor_9PrintTree_13_print_node, 0, __pyx_n_s_PrintTree__print_node, NULL, __pyx_n_s_Cython_Compiler_Visitor, __pyx_d, ((PyObject *)__pyx_codeobj__138)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 802, __pyx_L1_error)
22520   __Pyx_GOTREF(__pyx_t_5);
22521   if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_n_s_print_node, __pyx_t_5) < 0) __PYX_ERR(0, 802, __pyx_L1_error)
22522   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
22523 
22524   /* "Cython/Compiler/Visitor.py":815
22525  *             print("%s- %s: %s" % (self._indent, name, self.repr_of(node)))
22526  *
22527  *     def repr_of(self, node):             # <<<<<<<<<<<<<<
22528  *         if node is None:
22529  *             return "(none)"
22530  */
22531   __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_6Cython_8Compiler_7Visitor_9PrintTree_15repr_of, 0, __pyx_n_s_PrintTree_repr_of, NULL, __pyx_n_s_Cython_Compiler_Visitor, __pyx_d, ((PyObject *)__pyx_codeobj__140)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 815, __pyx_L1_error)
22532   __Pyx_GOTREF(__pyx_t_5);
22533   if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_n_s_repr_of, __pyx_t_5) < 0) __PYX_ERR(0, 815, __pyx_L1_error)
22534   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
22535 
22536   /* "Cython/Compiler/Visitor.py":756
22537  *
22538  *
22539  * class PrintTree(TreeVisitor):             # <<<<<<<<<<<<<<
22540  *     """Prints a representation of the tree to standard output.
22541  *     Subclass and override repr_of to provide more information
22542  */
22543   __pyx_t_5 = __Pyx_Py3ClassCreate(__pyx_t_2, __pyx_n_s_PrintTree, __pyx_t_1, __pyx_t_4, NULL, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 756, __pyx_L1_error)
22544   __Pyx_GOTREF(__pyx_t_5);
22545   if (PyDict_SetItem(__pyx_d, __pyx_n_s_PrintTree, __pyx_t_5) < 0) __PYX_ERR(0, 756, __pyx_L1_error)
22546   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
22547   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
22548   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
22549   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
22550 
22551   /* "Cython/Compiler/Visitor.py":838
22552  *             return result
22553  *
22554  * if __name__ == "__main__":             # <<<<<<<<<<<<<<
22555  *     import doctest
22556  *     doctest.testmod()
22557  */
22558   __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 838, __pyx_L1_error)
22559   __Pyx_GOTREF(__pyx_t_1);
22560   __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_n_u_main, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 838, __pyx_L1_error)
22561   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
22562   if (__pyx_t_3) {
22563 
22564     /* "Cython/Compiler/Visitor.py":839
22565  *
22566  * if __name__ == "__main__":
22567  *     import doctest             # <<<<<<<<<<<<<<
22568  *     doctest.testmod()
22569  */
22570     __pyx_t_1 = __Pyx_Import(__pyx_n_s_doctest, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 839, __pyx_L1_error)
22571     __Pyx_GOTREF(__pyx_t_1);
22572     if (PyDict_SetItem(__pyx_d, __pyx_n_s_doctest, __pyx_t_1) < 0) __PYX_ERR(0, 839, __pyx_L1_error)
22573     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
22574 
22575     /* "Cython/Compiler/Visitor.py":840
22576  * if __name__ == "__main__":
22577  *     import doctest
22578  *     doctest.testmod()             # <<<<<<<<<<<<<<
22579  */
22580     __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_doctest); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 840, __pyx_L1_error)
22581     __Pyx_GOTREF(__pyx_t_1);
22582     __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_testmod); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 840, __pyx_L1_error)
22583     __Pyx_GOTREF(__pyx_t_2);
22584     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
22585     __pyx_t_1 = __Pyx_PyObject_CallNoArg(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 840, __pyx_L1_error)
22586     __Pyx_GOTREF(__pyx_t_1);
22587     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
22588     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
22589 
22590     /* "Cython/Compiler/Visitor.py":838
22591  *             return result
22592  *
22593  * if __name__ == "__main__":             # <<<<<<<<<<<<<<
22594  *     import doctest
22595  *     doctest.testmod()
22596  */
22597   }
22598 
22599   /* "Cython/Compiler/Visitor.py":1
22600  * # cython: infer_types=True             # <<<<<<<<<<<<<<
22601  * # cython: language_level=3
22602  * # cython: auto_pickle=False
22603  */
22604   __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1, __pyx_L1_error)
22605   __Pyx_GOTREF(__pyx_t_1);
22606   if (PyDict_SetItem(__pyx_d, __pyx_n_s_test, __pyx_t_1) < 0) __PYX_ERR(0, 1, __pyx_L1_error)
22607   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
22608 
22609   /*--- Wrapped vars code ---*/
22610 
22611   goto __pyx_L0;
22612   __pyx_L1_error:;
22613   __Pyx_XDECREF(__pyx_t_1);
22614   __Pyx_XDECREF(__pyx_t_2);
22615   __Pyx_XDECREF(__pyx_t_4);
22616   __Pyx_XDECREF(__pyx_t_5);
22617   if (__pyx_m) {
22618     if (__pyx_d) {
22619       __Pyx_AddTraceback("init Cython.Compiler.Visitor", __pyx_clineno, __pyx_lineno, __pyx_filename);
22620     }
22621     Py_CLEAR(__pyx_m);
22622   } else if (!PyErr_Occurred()) {
22623     PyErr_SetString(PyExc_ImportError, "init Cython.Compiler.Visitor");
22624   }
22625   __pyx_L0:;
22626   __Pyx_RefNannyFinishContext();
22627   #if CYTHON_PEP489_MULTI_PHASE_INIT
22628   return (__pyx_m != NULL) ? 0 : -1;
22629   #elif PY_MAJOR_VERSION >= 3
22630   return __pyx_m;
22631   #else
22632   return;
22633   #endif
22634 }
22635 
22636 /* --- Runtime support code --- */
22637 /* Refnanny */
22638 #if CYTHON_REFNANNY
__Pyx_RefNannyImportAPI(const char * modname)22639 static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname) {
22640     PyObject *m = NULL, *p = NULL;
22641     void *r = NULL;
22642     m = PyImport_ImportModule(modname);
22643     if (!m) goto end;
22644     p = PyObject_GetAttrString(m, "RefNannyAPI");
22645     if (!p) goto end;
22646     r = PyLong_AsVoidPtr(p);
22647 end:
22648     Py_XDECREF(p);
22649     Py_XDECREF(m);
22650     return (__Pyx_RefNannyAPIStruct *)r;
22651 }
22652 #endif
22653 
22654 /* PyObjectGetAttrStr */
22655 #if CYTHON_USE_TYPE_SLOTS
__Pyx_PyObject_GetAttrStr(PyObject * obj,PyObject * attr_name)22656 static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStr(PyObject* obj, PyObject* attr_name) {
22657     PyTypeObject* tp = Py_TYPE(obj);
22658     if (likely(tp->tp_getattro))
22659         return tp->tp_getattro(obj, attr_name);
22660 #if PY_MAJOR_VERSION < 3
22661     if (likely(tp->tp_getattr))
22662         return tp->tp_getattr(obj, PyString_AS_STRING(attr_name));
22663 #endif
22664     return PyObject_GetAttr(obj, attr_name);
22665 }
22666 #endif
22667 
22668 /* GetBuiltinName */
__Pyx_GetBuiltinName(PyObject * name)22669 static PyObject *__Pyx_GetBuiltinName(PyObject *name) {
22670     PyObject* result = __Pyx_PyObject_GetAttrStr(__pyx_b, name);
22671     if (unlikely(!result)) {
22672         PyErr_Format(PyExc_NameError,
22673 #if PY_MAJOR_VERSION >= 3
22674             "name '%U' is not defined", name);
22675 #else
22676             "name '%.200s' is not defined", PyString_AS_STRING(name));
22677 #endif
22678     }
22679     return result;
22680 }
22681 
22682 /* RaiseArgTupleInvalid */
__Pyx_RaiseArgtupleInvalid(const char * func_name,int exact,Py_ssize_t num_min,Py_ssize_t num_max,Py_ssize_t num_found)22683 static void __Pyx_RaiseArgtupleInvalid(
22684     const char* func_name,
22685     int exact,
22686     Py_ssize_t num_min,
22687     Py_ssize_t num_max,
22688     Py_ssize_t num_found)
22689 {
22690     Py_ssize_t num_expected;
22691     const char *more_or_less;
22692     if (num_found < num_min) {
22693         num_expected = num_min;
22694         more_or_less = "at least";
22695     } else {
22696         num_expected = num_max;
22697         more_or_less = "at most";
22698     }
22699     if (exact) {
22700         more_or_less = "exactly";
22701     }
22702     PyErr_Format(PyExc_TypeError,
22703                  "%.200s() takes %.8s %" CYTHON_FORMAT_SSIZE_T "d positional argument%.1s (%" CYTHON_FORMAT_SSIZE_T "d given)",
22704                  func_name, more_or_less, num_expected,
22705                  (num_expected == 1) ? "" : "s", num_found);
22706 }
22707 
22708 /* KeywordStringCheck */
__Pyx_CheckKeywordStrings(PyObject * kwdict,const char * function_name,int kw_allowed)22709 static int __Pyx_CheckKeywordStrings(
22710     PyObject *kwdict,
22711     const char* function_name,
22712     int kw_allowed)
22713 {
22714     PyObject* key = 0;
22715     Py_ssize_t pos = 0;
22716 #if CYTHON_COMPILING_IN_PYPY
22717     if (!kw_allowed && PyDict_Next(kwdict, &pos, &key, 0))
22718         goto invalid_keyword;
22719     return 1;
22720 #else
22721     while (PyDict_Next(kwdict, &pos, &key, 0)) {
22722         #if PY_MAJOR_VERSION < 3
22723         if (unlikely(!PyString_Check(key)))
22724         #endif
22725             if (unlikely(!PyUnicode_Check(key)))
22726                 goto invalid_keyword_type;
22727     }
22728     if ((!kw_allowed) && unlikely(key))
22729         goto invalid_keyword;
22730     return 1;
22731 invalid_keyword_type:
22732     PyErr_Format(PyExc_TypeError,
22733         "%.200s() keywords must be strings", function_name);
22734     return 0;
22735 #endif
22736 invalid_keyword:
22737     PyErr_Format(PyExc_TypeError,
22738     #if PY_MAJOR_VERSION < 3
22739         "%.200s() got an unexpected keyword argument '%.200s'",
22740         function_name, PyString_AsString(key));
22741     #else
22742         "%s() got an unexpected keyword argument '%U'",
22743         function_name, key);
22744     #endif
22745     return 0;
22746 }
22747 
22748 /* PyObjectCall */
22749 #if CYTHON_COMPILING_IN_CPYTHON
__Pyx_PyObject_Call(PyObject * func,PyObject * arg,PyObject * kw)22750 static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw) {
22751     PyObject *result;
22752     ternaryfunc call = Py_TYPE(func)->tp_call;
22753     if (unlikely(!call))
22754         return PyObject_Call(func, arg, kw);
22755     if (unlikely(Py_EnterRecursiveCall((char*)" while calling a Python object")))
22756         return NULL;
22757     result = (*call)(func, arg, kw);
22758     Py_LeaveRecursiveCall();
22759     if (unlikely(!result) && unlikely(!PyErr_Occurred())) {
22760         PyErr_SetString(
22761             PyExc_SystemError,
22762             "NULL result without error in PyObject_Call");
22763     }
22764     return result;
22765 }
22766 #endif
22767 
22768 /* PyFunctionFastCall */
22769 #if CYTHON_FAST_PYCALL
__Pyx_PyFunction_FastCallNoKw(PyCodeObject * co,PyObject ** args,Py_ssize_t na,PyObject * globals)22770 static PyObject* __Pyx_PyFunction_FastCallNoKw(PyCodeObject *co, PyObject **args, Py_ssize_t na,
22771                                                PyObject *globals) {
22772     PyFrameObject *f;
22773     PyThreadState *tstate = __Pyx_PyThreadState_Current;
22774     PyObject **fastlocals;
22775     Py_ssize_t i;
22776     PyObject *result;
22777     assert(globals != NULL);
22778     /* XXX Perhaps we should create a specialized
22779        PyFrame_New() that doesn't take locals, but does
22780        take builtins without sanity checking them.
22781        */
22782     assert(tstate != NULL);
22783     f = PyFrame_New(tstate, co, globals, NULL);
22784     if (f == NULL) {
22785         return NULL;
22786     }
22787     fastlocals = __Pyx_PyFrame_GetLocalsplus(f);
22788     for (i = 0; i < na; i++) {
22789         Py_INCREF(*args);
22790         fastlocals[i] = *args++;
22791     }
22792     result = PyEval_EvalFrameEx(f,0);
22793     ++tstate->recursion_depth;
22794     Py_DECREF(f);
22795     --tstate->recursion_depth;
22796     return result;
22797 }
22798 #if 1 || PY_VERSION_HEX < 0x030600B1
__Pyx_PyFunction_FastCallDict(PyObject * func,PyObject ** args,Py_ssize_t nargs,PyObject * kwargs)22799 static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args, Py_ssize_t nargs, PyObject *kwargs) {
22800     PyCodeObject *co = (PyCodeObject *)PyFunction_GET_CODE(func);
22801     PyObject *globals = PyFunction_GET_GLOBALS(func);
22802     PyObject *argdefs = PyFunction_GET_DEFAULTS(func);
22803     PyObject *closure;
22804 #if PY_MAJOR_VERSION >= 3
22805     PyObject *kwdefs;
22806 #endif
22807     PyObject *kwtuple, **k;
22808     PyObject **d;
22809     Py_ssize_t nd;
22810     Py_ssize_t nk;
22811     PyObject *result;
22812     assert(kwargs == NULL || PyDict_Check(kwargs));
22813     nk = kwargs ? PyDict_Size(kwargs) : 0;
22814     if (Py_EnterRecursiveCall((char*)" while calling a Python object")) {
22815         return NULL;
22816     }
22817     if (
22818 #if PY_MAJOR_VERSION >= 3
22819             co->co_kwonlyargcount == 0 &&
22820 #endif
22821             likely(kwargs == NULL || nk == 0) &&
22822             co->co_flags == (CO_OPTIMIZED | CO_NEWLOCALS | CO_NOFREE)) {
22823         if (argdefs == NULL && co->co_argcount == nargs) {
22824             result = __Pyx_PyFunction_FastCallNoKw(co, args, nargs, globals);
22825             goto done;
22826         }
22827         else if (nargs == 0 && argdefs != NULL
22828                  && co->co_argcount == Py_SIZE(argdefs)) {
22829             /* function called with no arguments, but all parameters have
22830                a default value: use default values as arguments .*/
22831             args = &PyTuple_GET_ITEM(argdefs, 0);
22832             result =__Pyx_PyFunction_FastCallNoKw(co, args, Py_SIZE(argdefs), globals);
22833             goto done;
22834         }
22835     }
22836     if (kwargs != NULL) {
22837         Py_ssize_t pos, i;
22838         kwtuple = PyTuple_New(2 * nk);
22839         if (kwtuple == NULL) {
22840             result = NULL;
22841             goto done;
22842         }
22843         k = &PyTuple_GET_ITEM(kwtuple, 0);
22844         pos = i = 0;
22845         while (PyDict_Next(kwargs, &pos, &k[i], &k[i+1])) {
22846             Py_INCREF(k[i]);
22847             Py_INCREF(k[i+1]);
22848             i += 2;
22849         }
22850         nk = i / 2;
22851     }
22852     else {
22853         kwtuple = NULL;
22854         k = NULL;
22855     }
22856     closure = PyFunction_GET_CLOSURE(func);
22857 #if PY_MAJOR_VERSION >= 3
22858     kwdefs = PyFunction_GET_KW_DEFAULTS(func);
22859 #endif
22860     if (argdefs != NULL) {
22861         d = &PyTuple_GET_ITEM(argdefs, 0);
22862         nd = Py_SIZE(argdefs);
22863     }
22864     else {
22865         d = NULL;
22866         nd = 0;
22867     }
22868 #if PY_MAJOR_VERSION >= 3
22869     result = PyEval_EvalCodeEx((PyObject*)co, globals, (PyObject *)NULL,
22870                                args, (int)nargs,
22871                                k, (int)nk,
22872                                d, (int)nd, kwdefs, closure);
22873 #else
22874     result = PyEval_EvalCodeEx(co, globals, (PyObject *)NULL,
22875                                args, (int)nargs,
22876                                k, (int)nk,
22877                                d, (int)nd, closure);
22878 #endif
22879     Py_XDECREF(kwtuple);
22880 done:
22881     Py_LeaveRecursiveCall();
22882     return result;
22883 }
22884 #endif
22885 #endif
22886 
22887 /* PyObjectCallMethO */
22888 #if CYTHON_COMPILING_IN_CPYTHON
__Pyx_PyObject_CallMethO(PyObject * func,PyObject * arg)22889 static CYTHON_INLINE PyObject* __Pyx_PyObject_CallMethO(PyObject *func, PyObject *arg) {
22890     PyObject *self, *result;
22891     PyCFunction cfunc;
22892     cfunc = PyCFunction_GET_FUNCTION(func);
22893     self = PyCFunction_GET_SELF(func);
22894     if (unlikely(Py_EnterRecursiveCall((char*)" while calling a Python object")))
22895         return NULL;
22896     result = cfunc(self, arg);
22897     Py_LeaveRecursiveCall();
22898     if (unlikely(!result) && unlikely(!PyErr_Occurred())) {
22899         PyErr_SetString(
22900             PyExc_SystemError,
22901             "NULL result without error in PyObject_Call");
22902     }
22903     return result;
22904 }
22905 #endif
22906 
22907 /* PyObjectCallNoArg */
22908 #if CYTHON_COMPILING_IN_CPYTHON
__Pyx_PyObject_CallNoArg(PyObject * func)22909 static CYTHON_INLINE PyObject* __Pyx_PyObject_CallNoArg(PyObject *func) {
22910 #if CYTHON_FAST_PYCALL
22911     if (PyFunction_Check(func)) {
22912         return __Pyx_PyFunction_FastCall(func, NULL, 0);
22913     }
22914 #endif
22915 #ifdef __Pyx_CyFunction_USED
22916     if (likely(PyCFunction_Check(func) || __Pyx_CyFunction_Check(func)))
22917 #else
22918     if (likely(PyCFunction_Check(func)))
22919 #endif
22920     {
22921         if (likely(PyCFunction_GET_FLAGS(func) & METH_NOARGS)) {
22922             return __Pyx_PyObject_CallMethO(func, NULL);
22923         }
22924     }
22925     return __Pyx_PyObject_Call(func, __pyx_empty_tuple, NULL);
22926 }
22927 #endif
22928 
22929 /* PyCFunctionFastCall */
22930 #if CYTHON_FAST_PYCCALL
__Pyx_PyCFunction_FastCall(PyObject * func_obj,PyObject ** args,Py_ssize_t nargs)22931 static CYTHON_INLINE PyObject * __Pyx_PyCFunction_FastCall(PyObject *func_obj, PyObject **args, Py_ssize_t nargs) {
22932     PyCFunctionObject *func = (PyCFunctionObject*)func_obj;
22933     PyCFunction meth = PyCFunction_GET_FUNCTION(func);
22934     PyObject *self = PyCFunction_GET_SELF(func);
22935     int flags = PyCFunction_GET_FLAGS(func);
22936     assert(PyCFunction_Check(func));
22937     assert(METH_FASTCALL == (flags & ~(METH_CLASS | METH_STATIC | METH_COEXIST | METH_KEYWORDS | METH_STACKLESS)));
22938     assert(nargs >= 0);
22939     assert(nargs == 0 || args != NULL);
22940     /* _PyCFunction_FastCallDict() must not be called with an exception set,
22941        because it may clear it (directly or indirectly) and so the
22942        caller loses its exception */
22943     assert(!PyErr_Occurred());
22944     if ((PY_VERSION_HEX < 0x030700A0) || unlikely(flags & METH_KEYWORDS)) {
22945         return (*((__Pyx_PyCFunctionFastWithKeywords)(void*)meth)) (self, args, nargs, NULL);
22946     } else {
22947         return (*((__Pyx_PyCFunctionFast)(void*)meth)) (self, args, nargs);
22948     }
22949 }
22950 #endif
22951 
22952 /* PyObjectCallOneArg */
22953 #if CYTHON_COMPILING_IN_CPYTHON
__Pyx__PyObject_CallOneArg(PyObject * func,PyObject * arg)22954 static PyObject* __Pyx__PyObject_CallOneArg(PyObject *func, PyObject *arg) {
22955     PyObject *result;
22956     PyObject *args = PyTuple_New(1);
22957     if (unlikely(!args)) return NULL;
22958     Py_INCREF(arg);
22959     PyTuple_SET_ITEM(args, 0, arg);
22960     result = __Pyx_PyObject_Call(func, args, NULL);
22961     Py_DECREF(args);
22962     return result;
22963 }
__Pyx_PyObject_CallOneArg(PyObject * func,PyObject * arg)22964 static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg) {
22965 #if CYTHON_FAST_PYCALL
22966     if (PyFunction_Check(func)) {
22967         return __Pyx_PyFunction_FastCall(func, &arg, 1);
22968     }
22969 #endif
22970     if (likely(PyCFunction_Check(func))) {
22971         if (likely(PyCFunction_GET_FLAGS(func) & METH_O)) {
22972             return __Pyx_PyObject_CallMethO(func, arg);
22973 #if CYTHON_FAST_PYCCALL
22974         } else if (__Pyx_PyFastCFunction_Check(func)) {
22975             return __Pyx_PyCFunction_FastCall(func, &arg, 1);
22976 #endif
22977         }
22978     }
22979     return __Pyx__PyObject_CallOneArg(func, arg);
22980 }
22981 #else
__Pyx_PyObject_CallOneArg(PyObject * func,PyObject * arg)22982 static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg) {
22983     PyObject *result;
22984     PyObject *args = PyTuple_Pack(1, arg);
22985     if (unlikely(!args)) return NULL;
22986     result = __Pyx_PyObject_Call(func, args, NULL);
22987     Py_DECREF(args);
22988     return result;
22989 }
22990 #endif
22991 
22992 /* PyErrExceptionMatches */
22993 #if CYTHON_FAST_THREAD_STATE
__Pyx_PyErr_ExceptionMatchesTuple(PyObject * exc_type,PyObject * tuple)22994 static int __Pyx_PyErr_ExceptionMatchesTuple(PyObject *exc_type, PyObject *tuple) {
22995     Py_ssize_t i, n;
22996     n = PyTuple_GET_SIZE(tuple);
22997 #if PY_MAJOR_VERSION >= 3
22998     for (i=0; i<n; i++) {
22999         if (exc_type == PyTuple_GET_ITEM(tuple, i)) return 1;
23000     }
23001 #endif
23002     for (i=0; i<n; i++) {
23003         if (__Pyx_PyErr_GivenExceptionMatches(exc_type, PyTuple_GET_ITEM(tuple, i))) return 1;
23004     }
23005     return 0;
23006 }
__Pyx_PyErr_ExceptionMatchesInState(PyThreadState * tstate,PyObject * err)23007 static CYTHON_INLINE int __Pyx_PyErr_ExceptionMatchesInState(PyThreadState* tstate, PyObject* err) {
23008     PyObject *exc_type = tstate->curexc_type;
23009     if (exc_type == err) return 1;
23010     if (unlikely(!exc_type)) return 0;
23011     if (unlikely(PyTuple_Check(err)))
23012         return __Pyx_PyErr_ExceptionMatchesTuple(exc_type, err);
23013     return __Pyx_PyErr_GivenExceptionMatches(exc_type, err);
23014 }
23015 #endif
23016 
23017 /* PyErrFetchRestore */
23018 #if CYTHON_FAST_THREAD_STATE
__Pyx_ErrRestoreInState(PyThreadState * tstate,PyObject * type,PyObject * value,PyObject * tb)23019 static CYTHON_INLINE void __Pyx_ErrRestoreInState(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb) {
23020     PyObject *tmp_type, *tmp_value, *tmp_tb;
23021     tmp_type = tstate->curexc_type;
23022     tmp_value = tstate->curexc_value;
23023     tmp_tb = tstate->curexc_traceback;
23024     tstate->curexc_type = type;
23025     tstate->curexc_value = value;
23026     tstate->curexc_traceback = tb;
23027     Py_XDECREF(tmp_type);
23028     Py_XDECREF(tmp_value);
23029     Py_XDECREF(tmp_tb);
23030 }
__Pyx_ErrFetchInState(PyThreadState * tstate,PyObject ** type,PyObject ** value,PyObject ** tb)23031 static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) {
23032     *type = tstate->curexc_type;
23033     *value = tstate->curexc_value;
23034     *tb = tstate->curexc_traceback;
23035     tstate->curexc_type = 0;
23036     tstate->curexc_value = 0;
23037     tstate->curexc_traceback = 0;
23038 }
23039 #endif
23040 
23041 /* GetAttr */
__Pyx_GetAttr(PyObject * o,PyObject * n)23042 static CYTHON_INLINE PyObject *__Pyx_GetAttr(PyObject *o, PyObject *n) {
23043 #if CYTHON_USE_TYPE_SLOTS
23044 #if PY_MAJOR_VERSION >= 3
23045     if (likely(PyUnicode_Check(n)))
23046 #else
23047     if (likely(PyString_Check(n)))
23048 #endif
23049         return __Pyx_PyObject_GetAttrStr(o, n);
23050 #endif
23051     return PyObject_GetAttr(o, n);
23052 }
23053 
23054 /* GetAttr3 */
__Pyx_GetAttr3Default(PyObject * d)23055 static PyObject *__Pyx_GetAttr3Default(PyObject *d) {
23056     __Pyx_PyThreadState_declare
23057     __Pyx_PyThreadState_assign
23058     if (unlikely(!__Pyx_PyErr_ExceptionMatches(PyExc_AttributeError)))
23059         return NULL;
23060     __Pyx_PyErr_Clear();
23061     Py_INCREF(d);
23062     return d;
23063 }
__Pyx_GetAttr3(PyObject * o,PyObject * n,PyObject * d)23064 static CYTHON_INLINE PyObject *__Pyx_GetAttr3(PyObject *o, PyObject *n, PyObject *d) {
23065     PyObject *r = __Pyx_GetAttr(o, n);
23066     return (likely(r)) ? r : __Pyx_GetAttr3Default(d);
23067 }
23068 
23069 /* GetItemInt */
__Pyx_GetItemInt_Generic(PyObject * o,PyObject * j)23070 static PyObject *__Pyx_GetItemInt_Generic(PyObject *o, PyObject* j) {
23071     PyObject *r;
23072     if (!j) return NULL;
23073     r = PyObject_GetItem(o, j);
23074     Py_DECREF(j);
23075     return r;
23076 }
__Pyx_GetItemInt_List_Fast(PyObject * o,Py_ssize_t i,CYTHON_NCP_UNUSED int wraparound,CYTHON_NCP_UNUSED int boundscheck)23077 static CYTHON_INLINE PyObject *__Pyx_GetItemInt_List_Fast(PyObject *o, Py_ssize_t i,
23078                                                               CYTHON_NCP_UNUSED int wraparound,
23079                                                               CYTHON_NCP_UNUSED int boundscheck) {
23080 #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
23081     Py_ssize_t wrapped_i = i;
23082     if (wraparound & unlikely(i < 0)) {
23083         wrapped_i += PyList_GET_SIZE(o);
23084     }
23085     if ((!boundscheck) || likely(__Pyx_is_valid_index(wrapped_i, PyList_GET_SIZE(o)))) {
23086         PyObject *r = PyList_GET_ITEM(o, wrapped_i);
23087         Py_INCREF(r);
23088         return r;
23089     }
23090     return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i));
23091 #else
23092     return PySequence_GetItem(o, i);
23093 #endif
23094 }
__Pyx_GetItemInt_Tuple_Fast(PyObject * o,Py_ssize_t i,CYTHON_NCP_UNUSED int wraparound,CYTHON_NCP_UNUSED int boundscheck)23095 static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Tuple_Fast(PyObject *o, Py_ssize_t i,
23096                                                               CYTHON_NCP_UNUSED int wraparound,
23097                                                               CYTHON_NCP_UNUSED int boundscheck) {
23098 #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
23099     Py_ssize_t wrapped_i = i;
23100     if (wraparound & unlikely(i < 0)) {
23101         wrapped_i += PyTuple_GET_SIZE(o);
23102     }
23103     if ((!boundscheck) || likely(__Pyx_is_valid_index(wrapped_i, PyTuple_GET_SIZE(o)))) {
23104         PyObject *r = PyTuple_GET_ITEM(o, wrapped_i);
23105         Py_INCREF(r);
23106         return r;
23107     }
23108     return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i));
23109 #else
23110     return PySequence_GetItem(o, i);
23111 #endif
23112 }
__Pyx_GetItemInt_Fast(PyObject * o,Py_ssize_t i,int is_list,CYTHON_NCP_UNUSED int wraparound,CYTHON_NCP_UNUSED int boundscheck)23113 static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Fast(PyObject *o, Py_ssize_t i, int is_list,
23114                                                      CYTHON_NCP_UNUSED int wraparound,
23115                                                      CYTHON_NCP_UNUSED int boundscheck) {
23116 #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS && CYTHON_USE_TYPE_SLOTS
23117     if (is_list || PyList_CheckExact(o)) {
23118         Py_ssize_t n = ((!wraparound) | likely(i >= 0)) ? i : i + PyList_GET_SIZE(o);
23119         if ((!boundscheck) || (likely(__Pyx_is_valid_index(n, PyList_GET_SIZE(o))))) {
23120             PyObject *r = PyList_GET_ITEM(o, n);
23121             Py_INCREF(r);
23122             return r;
23123         }
23124     }
23125     else if (PyTuple_CheckExact(o)) {
23126         Py_ssize_t n = ((!wraparound) | likely(i >= 0)) ? i : i + PyTuple_GET_SIZE(o);
23127         if ((!boundscheck) || likely(__Pyx_is_valid_index(n, PyTuple_GET_SIZE(o)))) {
23128             PyObject *r = PyTuple_GET_ITEM(o, n);
23129             Py_INCREF(r);
23130             return r;
23131         }
23132     } else {
23133         PySequenceMethods *m = Py_TYPE(o)->tp_as_sequence;
23134         if (likely(m && m->sq_item)) {
23135             if (wraparound && unlikely(i < 0) && likely(m->sq_length)) {
23136                 Py_ssize_t l = m->sq_length(o);
23137                 if (likely(l >= 0)) {
23138                     i += l;
23139                 } else {
23140                     if (!PyErr_ExceptionMatches(PyExc_OverflowError))
23141                         return NULL;
23142                     PyErr_Clear();
23143                 }
23144             }
23145             return m->sq_item(o, i);
23146         }
23147     }
23148 #else
23149     if (is_list || PySequence_Check(o)) {
23150         return PySequence_GetItem(o, i);
23151     }
23152 #endif
23153     return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i));
23154 }
23155 
23156 /* Import */
__Pyx_Import(PyObject * name,PyObject * from_list,int level)23157 static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, int level) {
23158     PyObject *empty_list = 0;
23159     PyObject *module = 0;
23160     PyObject *global_dict = 0;
23161     PyObject *empty_dict = 0;
23162     PyObject *list;
23163     #if PY_MAJOR_VERSION < 3
23164     PyObject *py_import;
23165     py_import = __Pyx_PyObject_GetAttrStr(__pyx_b, __pyx_n_s_import);
23166     if (!py_import)
23167         goto bad;
23168     #endif
23169     if (from_list)
23170         list = from_list;
23171     else {
23172         empty_list = PyList_New(0);
23173         if (!empty_list)
23174             goto bad;
23175         list = empty_list;
23176     }
23177     global_dict = PyModule_GetDict(__pyx_m);
23178     if (!global_dict)
23179         goto bad;
23180     empty_dict = PyDict_New();
23181     if (!empty_dict)
23182         goto bad;
23183     {
23184         #if PY_MAJOR_VERSION >= 3
23185         if (level == -1) {
23186             if ((1) && (strchr(__Pyx_MODULE_NAME, '.'))) {
23187                 module = PyImport_ImportModuleLevelObject(
23188                     name, global_dict, empty_dict, list, 1);
23189                 if (!module) {
23190                     if (!PyErr_ExceptionMatches(PyExc_ImportError))
23191                         goto bad;
23192                     PyErr_Clear();
23193                 }
23194             }
23195             level = 0;
23196         }
23197         #endif
23198         if (!module) {
23199             #if PY_MAJOR_VERSION < 3
23200             PyObject *py_level = PyInt_FromLong(level);
23201             if (!py_level)
23202                 goto bad;
23203             module = PyObject_CallFunctionObjArgs(py_import,
23204                 name, global_dict, empty_dict, list, py_level, (PyObject *)NULL);
23205             Py_DECREF(py_level);
23206             #else
23207             module = PyImport_ImportModuleLevelObject(
23208                 name, global_dict, empty_dict, list, level);
23209             #endif
23210         }
23211     }
23212 bad:
23213     #if PY_MAJOR_VERSION < 3
23214     Py_XDECREF(py_import);
23215     #endif
23216     Py_XDECREF(empty_list);
23217     Py_XDECREF(empty_dict);
23218     return module;
23219 }
23220 
23221 /* PyObjectCall2Args */
__Pyx_PyObject_Call2Args(PyObject * function,PyObject * arg1,PyObject * arg2)23222 static CYTHON_UNUSED PyObject* __Pyx_PyObject_Call2Args(PyObject* function, PyObject* arg1, PyObject* arg2) {
23223     PyObject *args, *result = NULL;
23224     #if CYTHON_FAST_PYCALL
23225     if (PyFunction_Check(function)) {
23226         PyObject *args[2] = {arg1, arg2};
23227         return __Pyx_PyFunction_FastCall(function, args, 2);
23228     }
23229     #endif
23230     #if CYTHON_FAST_PYCCALL
23231     if (__Pyx_PyFastCFunction_Check(function)) {
23232         PyObject *args[2] = {arg1, arg2};
23233         return __Pyx_PyCFunction_FastCall(function, args, 2);
23234     }
23235     #endif
23236     args = PyTuple_New(2);
23237     if (unlikely(!args)) goto done;
23238     Py_INCREF(arg1);
23239     PyTuple_SET_ITEM(args, 0, arg1);
23240     Py_INCREF(arg2);
23241     PyTuple_SET_ITEM(args, 1, arg2);
23242     Py_INCREF(function);
23243     result = __Pyx_PyObject_Call(function, args, NULL);
23244     Py_DECREF(args);
23245     Py_DECREF(function);
23246 done:
23247     return result;
23248 }
23249 
23250 /* PyObjectFormatAndDecref */
__Pyx_PyObject_FormatSimpleAndDecref(PyObject * s,PyObject * f)23251 static CYTHON_INLINE PyObject* __Pyx_PyObject_FormatSimpleAndDecref(PyObject* s, PyObject* f) {
23252     if (unlikely(!s)) return NULL;
23253     if (likely(PyUnicode_CheckExact(s))) return s;
23254     #if PY_MAJOR_VERSION < 3
23255     if (likely(PyString_CheckExact(s))) {
23256         PyObject *result = PyUnicode_FromEncodedObject(s, NULL, "strict");
23257         Py_DECREF(s);
23258         return result;
23259     }
23260     #endif
23261     return __Pyx_PyObject_FormatAndDecref(s, f);
23262 }
__Pyx_PyObject_FormatAndDecref(PyObject * s,PyObject * f)23263 static CYTHON_INLINE PyObject* __Pyx_PyObject_FormatAndDecref(PyObject* s, PyObject* f) {
23264     PyObject *result = PyObject_Format(s, f);
23265     Py_DECREF(s);
23266     return result;
23267 }
23268 
23269 /* JoinPyUnicode */
__Pyx_PyUnicode_Join(PyObject * value_tuple,Py_ssize_t value_count,Py_ssize_t result_ulength,CYTHON_UNUSED Py_UCS4 max_char)23270 static PyObject* __Pyx_PyUnicode_Join(PyObject* value_tuple, Py_ssize_t value_count, Py_ssize_t result_ulength,
23271                                       CYTHON_UNUSED Py_UCS4 max_char) {
23272 #if CYTHON_USE_UNICODE_INTERNALS && CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
23273     PyObject *result_uval;
23274     int result_ukind;
23275     Py_ssize_t i, char_pos;
23276     void *result_udata;
23277 #if CYTHON_PEP393_ENABLED
23278     result_uval = PyUnicode_New(result_ulength, max_char);
23279     if (unlikely(!result_uval)) return NULL;
23280     result_ukind = (max_char <= 255) ? PyUnicode_1BYTE_KIND : (max_char <= 65535) ? PyUnicode_2BYTE_KIND : PyUnicode_4BYTE_KIND;
23281     result_udata = PyUnicode_DATA(result_uval);
23282 #else
23283     result_uval = PyUnicode_FromUnicode(NULL, result_ulength);
23284     if (unlikely(!result_uval)) return NULL;
23285     result_ukind = sizeof(Py_UNICODE);
23286     result_udata = PyUnicode_AS_UNICODE(result_uval);
23287 #endif
23288     char_pos = 0;
23289     for (i=0; i < value_count; i++) {
23290         int ukind;
23291         Py_ssize_t ulength;
23292         void *udata;
23293         PyObject *uval = PyTuple_GET_ITEM(value_tuple, i);
23294         if (unlikely(__Pyx_PyUnicode_READY(uval)))
23295             goto bad;
23296         ulength = __Pyx_PyUnicode_GET_LENGTH(uval);
23297         if (unlikely(!ulength))
23298             continue;
23299         if (unlikely(char_pos + ulength < 0))
23300             goto overflow;
23301         ukind = __Pyx_PyUnicode_KIND(uval);
23302         udata = __Pyx_PyUnicode_DATA(uval);
23303         if (!CYTHON_PEP393_ENABLED || ukind == result_ukind) {
23304             memcpy((char *)result_udata + char_pos * result_ukind, udata, (size_t) (ulength * result_ukind));
23305         } else {
23306             #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030300F0 || defined(_PyUnicode_FastCopyCharacters)
23307             _PyUnicode_FastCopyCharacters(result_uval, char_pos, uval, 0, ulength);
23308             #else
23309             Py_ssize_t j;
23310             for (j=0; j < ulength; j++) {
23311                 Py_UCS4 uchar = __Pyx_PyUnicode_READ(ukind, udata, j);
23312                 __Pyx_PyUnicode_WRITE(result_ukind, result_udata, char_pos+j, uchar);
23313             }
23314             #endif
23315         }
23316         char_pos += ulength;
23317     }
23318     return result_uval;
23319 overflow:
23320     PyErr_SetString(PyExc_OverflowError, "join() result is too long for a Python string");
23321 bad:
23322     Py_DECREF(result_uval);
23323     return NULL;
23324 #else
23325     result_ulength++;
23326     value_count++;
23327     return PyUnicode_Join(__pyx_empty_unicode, value_tuple);
23328 #endif
23329 }
23330 
23331 /* GetTopmostException */
23332 #if CYTHON_USE_EXC_INFO_STACK
23333 static _PyErr_StackItem *
__Pyx_PyErr_GetTopmostException(PyThreadState * tstate)23334 __Pyx_PyErr_GetTopmostException(PyThreadState *tstate)
23335 {
23336     _PyErr_StackItem *exc_info = tstate->exc_info;
23337     while ((exc_info->exc_type == NULL || exc_info->exc_type == Py_None) &&
23338            exc_info->previous_item != NULL)
23339     {
23340         exc_info = exc_info->previous_item;
23341     }
23342     return exc_info;
23343 }
23344 #endif
23345 
23346 /* SaveResetException */
23347 #if CYTHON_FAST_THREAD_STATE
__Pyx__ExceptionSave(PyThreadState * tstate,PyObject ** type,PyObject ** value,PyObject ** tb)23348 static CYTHON_INLINE void __Pyx__ExceptionSave(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) {
23349     #if CYTHON_USE_EXC_INFO_STACK
23350     _PyErr_StackItem *exc_info = __Pyx_PyErr_GetTopmostException(tstate);
23351     *type = exc_info->exc_type;
23352     *value = exc_info->exc_value;
23353     *tb = exc_info->exc_traceback;
23354     #else
23355     *type = tstate->exc_type;
23356     *value = tstate->exc_value;
23357     *tb = tstate->exc_traceback;
23358     #endif
23359     Py_XINCREF(*type);
23360     Py_XINCREF(*value);
23361     Py_XINCREF(*tb);
23362 }
__Pyx__ExceptionReset(PyThreadState * tstate,PyObject * type,PyObject * value,PyObject * tb)23363 static CYTHON_INLINE void __Pyx__ExceptionReset(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb) {
23364     PyObject *tmp_type, *tmp_value, *tmp_tb;
23365     #if CYTHON_USE_EXC_INFO_STACK
23366     _PyErr_StackItem *exc_info = tstate->exc_info;
23367     tmp_type = exc_info->exc_type;
23368     tmp_value = exc_info->exc_value;
23369     tmp_tb = exc_info->exc_traceback;
23370     exc_info->exc_type = type;
23371     exc_info->exc_value = value;
23372     exc_info->exc_traceback = tb;
23373     #else
23374     tmp_type = tstate->exc_type;
23375     tmp_value = tstate->exc_value;
23376     tmp_tb = tstate->exc_traceback;
23377     tstate->exc_type = type;
23378     tstate->exc_value = value;
23379     tstate->exc_traceback = tb;
23380     #endif
23381     Py_XDECREF(tmp_type);
23382     Py_XDECREF(tmp_value);
23383     Py_XDECREF(tmp_tb);
23384 }
23385 #endif
23386 
23387 /* GetException */
23388 #if CYTHON_FAST_THREAD_STATE
__Pyx__GetException(PyThreadState * tstate,PyObject ** type,PyObject ** value,PyObject ** tb)23389 static int __Pyx__GetException(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb)
23390 #else
23391 static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb)
23392 #endif
23393 {
23394     PyObject *local_type, *local_value, *local_tb;
23395 #if CYTHON_FAST_THREAD_STATE
23396     PyObject *tmp_type, *tmp_value, *tmp_tb;
23397     local_type = tstate->curexc_type;
23398     local_value = tstate->curexc_value;
23399     local_tb = tstate->curexc_traceback;
23400     tstate->curexc_type = 0;
23401     tstate->curexc_value = 0;
23402     tstate->curexc_traceback = 0;
23403 #else
23404     PyErr_Fetch(&local_type, &local_value, &local_tb);
23405 #endif
23406     PyErr_NormalizeException(&local_type, &local_value, &local_tb);
23407 #if CYTHON_FAST_THREAD_STATE
23408     if (unlikely(tstate->curexc_type))
23409 #else
23410     if (unlikely(PyErr_Occurred()))
23411 #endif
23412         goto bad;
23413     #if PY_MAJOR_VERSION >= 3
23414     if (local_tb) {
23415         if (unlikely(PyException_SetTraceback(local_value, local_tb) < 0))
23416             goto bad;
23417     }
23418     #endif
23419     Py_XINCREF(local_tb);
23420     Py_XINCREF(local_type);
23421     Py_XINCREF(local_value);
23422     *type = local_type;
23423     *value = local_value;
23424     *tb = local_tb;
23425 #if CYTHON_FAST_THREAD_STATE
23426     #if CYTHON_USE_EXC_INFO_STACK
23427     {
23428         _PyErr_StackItem *exc_info = tstate->exc_info;
23429         tmp_type = exc_info->exc_type;
23430         tmp_value = exc_info->exc_value;
23431         tmp_tb = exc_info->exc_traceback;
23432         exc_info->exc_type = local_type;
23433         exc_info->exc_value = local_value;
23434         exc_info->exc_traceback = local_tb;
23435     }
23436     #else
23437     tmp_type = tstate->exc_type;
23438     tmp_value = tstate->exc_value;
23439     tmp_tb = tstate->exc_traceback;
23440     tstate->exc_type = local_type;
23441     tstate->exc_value = local_value;
23442     tstate->exc_traceback = local_tb;
23443     #endif
23444     Py_XDECREF(tmp_type);
23445     Py_XDECREF(tmp_value);
23446     Py_XDECREF(tmp_tb);
23447 #else
23448     PyErr_SetExcInfo(local_type, local_value, local_tb);
23449 #endif
23450     return 0;
23451 bad:
23452     *type = 0;
23453     *value = 0;
23454     *tb = 0;
23455     Py_XDECREF(local_type);
23456     Py_XDECREF(local_value);
23457     Py_XDECREF(local_tb);
23458     return -1;
23459 }
23460 
23461 /* PyIntCompare */
__Pyx_PyInt_EqObjC(PyObject * op1,PyObject * op2,CYTHON_UNUSED long intval,CYTHON_UNUSED long inplace)23462 static CYTHON_INLINE PyObject* __Pyx_PyInt_EqObjC(PyObject *op1, PyObject *op2, CYTHON_UNUSED long intval, CYTHON_UNUSED long inplace) {
23463     if (op1 == op2) {
23464         Py_RETURN_TRUE;
23465     }
23466     #if PY_MAJOR_VERSION < 3
23467     if (likely(PyInt_CheckExact(op1))) {
23468         const long b = intval;
23469         long a = PyInt_AS_LONG(op1);
23470         if (a == b) Py_RETURN_TRUE; else Py_RETURN_FALSE;
23471     }
23472     #endif
23473     #if CYTHON_USE_PYLONG_INTERNALS
23474     if (likely(PyLong_CheckExact(op1))) {
23475         int unequal;
23476         unsigned long uintval;
23477         Py_ssize_t size = Py_SIZE(op1);
23478         const digit* digits = ((PyLongObject*)op1)->ob_digit;
23479         if (intval == 0) {
23480             if (size == 0) Py_RETURN_TRUE; else Py_RETURN_FALSE;
23481         } else if (intval < 0) {
23482             if (size >= 0)
23483                 Py_RETURN_FALSE;
23484             intval = -intval;
23485             size = -size;
23486         } else {
23487             if (size <= 0)
23488                 Py_RETURN_FALSE;
23489         }
23490         uintval = (unsigned long) intval;
23491 #if PyLong_SHIFT * 4 < SIZEOF_LONG*8
23492         if (uintval >> (PyLong_SHIFT * 4)) {
23493             unequal = (size != 5) || (digits[0] != (uintval & (unsigned long) PyLong_MASK))
23494                  | (digits[1] != ((uintval >> (1 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)) | (digits[2] != ((uintval >> (2 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)) | (digits[3] != ((uintval >> (3 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)) | (digits[4] != ((uintval >> (4 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK));
23495         } else
23496 #endif
23497 #if PyLong_SHIFT * 3 < SIZEOF_LONG*8
23498         if (uintval >> (PyLong_SHIFT * 3)) {
23499             unequal = (size != 4) || (digits[0] != (uintval & (unsigned long) PyLong_MASK))
23500                  | (digits[1] != ((uintval >> (1 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)) | (digits[2] != ((uintval >> (2 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)) | (digits[3] != ((uintval >> (3 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK));
23501         } else
23502 #endif
23503 #if PyLong_SHIFT * 2 < SIZEOF_LONG*8
23504         if (uintval >> (PyLong_SHIFT * 2)) {
23505             unequal = (size != 3) || (digits[0] != (uintval & (unsigned long) PyLong_MASK))
23506                  | (digits[1] != ((uintval >> (1 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)) | (digits[2] != ((uintval >> (2 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK));
23507         } else
23508 #endif
23509 #if PyLong_SHIFT * 1 < SIZEOF_LONG*8
23510         if (uintval >> (PyLong_SHIFT * 1)) {
23511             unequal = (size != 2) || (digits[0] != (uintval & (unsigned long) PyLong_MASK))
23512                  | (digits[1] != ((uintval >> (1 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK));
23513         } else
23514 #endif
23515             unequal = (size != 1) || (((unsigned long) digits[0]) != (uintval & (unsigned long) PyLong_MASK));
23516         if (unequal == 0) Py_RETURN_TRUE; else Py_RETURN_FALSE;
23517     }
23518     #endif
23519     if (PyFloat_CheckExact(op1)) {
23520         const long b = intval;
23521         double a = PyFloat_AS_DOUBLE(op1);
23522         if ((double)a == (double)b) Py_RETURN_TRUE; else Py_RETURN_FALSE;
23523     }
23524     return (
23525         PyObject_RichCompare(op1, op2, Py_EQ));
23526 }
23527 
23528 /* HasAttr */
__Pyx_HasAttr(PyObject * o,PyObject * n)23529 static CYTHON_INLINE int __Pyx_HasAttr(PyObject *o, PyObject *n) {
23530     PyObject *r;
23531     if (unlikely(!__Pyx_PyBaseString_Check(n))) {
23532         PyErr_SetString(PyExc_TypeError,
23533                         "hasattr(): attribute name must be string");
23534         return -1;
23535     }
23536     r = __Pyx_GetAttr(o, n);
23537     if (unlikely(!r)) {
23538         PyErr_Clear();
23539         return 0;
23540     } else {
23541         Py_DECREF(r);
23542         return 1;
23543     }
23544 }
23545 
23546 /* PyDictVersioning */
23547 #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_TYPE_SLOTS
__Pyx_get_tp_dict_version(PyObject * obj)23548 static CYTHON_INLINE PY_UINT64_T __Pyx_get_tp_dict_version(PyObject *obj) {
23549     PyObject *dict = Py_TYPE(obj)->tp_dict;
23550     return likely(dict) ? __PYX_GET_DICT_VERSION(dict) : 0;
23551 }
__Pyx_get_object_dict_version(PyObject * obj)23552 static CYTHON_INLINE PY_UINT64_T __Pyx_get_object_dict_version(PyObject *obj) {
23553     PyObject **dictptr = NULL;
23554     Py_ssize_t offset = Py_TYPE(obj)->tp_dictoffset;
23555     if (offset) {
23556 #if CYTHON_COMPILING_IN_CPYTHON
23557         dictptr = (likely(offset > 0)) ? (PyObject **) ((char *)obj + offset) : _PyObject_GetDictPtr(obj);
23558 #else
23559         dictptr = _PyObject_GetDictPtr(obj);
23560 #endif
23561     }
23562     return (dictptr && *dictptr) ? __PYX_GET_DICT_VERSION(*dictptr) : 0;
23563 }
__Pyx_object_dict_version_matches(PyObject * obj,PY_UINT64_T tp_dict_version,PY_UINT64_T obj_dict_version)23564 static CYTHON_INLINE int __Pyx_object_dict_version_matches(PyObject* obj, PY_UINT64_T tp_dict_version, PY_UINT64_T obj_dict_version) {
23565     PyObject *dict = Py_TYPE(obj)->tp_dict;
23566     if (unlikely(!dict) || unlikely(tp_dict_version != __PYX_GET_DICT_VERSION(dict)))
23567         return 0;
23568     return obj_dict_version == __Pyx_get_object_dict_version(obj);
23569 }
23570 #endif
23571 
23572 /* GetModuleGlobalName */
23573 #if CYTHON_USE_DICT_VERSIONS
__Pyx__GetModuleGlobalName(PyObject * name,PY_UINT64_T * dict_version,PyObject ** dict_cached_value)23574 static PyObject *__Pyx__GetModuleGlobalName(PyObject *name, PY_UINT64_T *dict_version, PyObject **dict_cached_value)
23575 #else
23576 static CYTHON_INLINE PyObject *__Pyx__GetModuleGlobalName(PyObject *name)
23577 #endif
23578 {
23579     PyObject *result;
23580 #if !CYTHON_AVOID_BORROWED_REFS
23581 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030500A1
23582     result = _PyDict_GetItem_KnownHash(__pyx_d, name, ((PyASCIIObject *) name)->hash);
23583     __PYX_UPDATE_DICT_CACHE(__pyx_d, result, *dict_cached_value, *dict_version)
23584     if (likely(result)) {
23585         return __Pyx_NewRef(result);
23586     } else if (unlikely(PyErr_Occurred())) {
23587         return NULL;
23588     }
23589 #else
23590     result = PyDict_GetItem(__pyx_d, name);
23591     __PYX_UPDATE_DICT_CACHE(__pyx_d, result, *dict_cached_value, *dict_version)
23592     if (likely(result)) {
23593         return __Pyx_NewRef(result);
23594     }
23595 #endif
23596 #else
23597     result = PyObject_GetItem(__pyx_d, name);
23598     __PYX_UPDATE_DICT_CACHE(__pyx_d, result, *dict_cached_value, *dict_version)
23599     if (likely(result)) {
23600         return __Pyx_NewRef(result);
23601     }
23602     PyErr_Clear();
23603 #endif
23604     return __Pyx_GetBuiltinName(name);
23605 }
23606 
23607 /* RaiseTooManyValuesToUnpack */
__Pyx_RaiseTooManyValuesError(Py_ssize_t expected)23608 static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError(Py_ssize_t expected) {
23609     PyErr_Format(PyExc_ValueError,
23610                  "too many values to unpack (expected %" CYTHON_FORMAT_SSIZE_T "d)", expected);
23611 }
23612 
23613 /* RaiseNeedMoreValuesToUnpack */
__Pyx_RaiseNeedMoreValuesError(Py_ssize_t index)23614 static CYTHON_INLINE void __Pyx_RaiseNeedMoreValuesError(Py_ssize_t index) {
23615     PyErr_Format(PyExc_ValueError,
23616                  "need more than %" CYTHON_FORMAT_SSIZE_T "d value%.1s to unpack",
23617                  index, (index == 1) ? "" : "s");
23618 }
23619 
23620 /* IterFinish */
__Pyx_IterFinish(void)23621 static CYTHON_INLINE int __Pyx_IterFinish(void) {
23622 #if CYTHON_FAST_THREAD_STATE
23623     PyThreadState *tstate = __Pyx_PyThreadState_Current;
23624     PyObject* exc_type = tstate->curexc_type;
23625     if (unlikely(exc_type)) {
23626         if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) {
23627             PyObject *exc_value, *exc_tb;
23628             exc_value = tstate->curexc_value;
23629             exc_tb = tstate->curexc_traceback;
23630             tstate->curexc_type = 0;
23631             tstate->curexc_value = 0;
23632             tstate->curexc_traceback = 0;
23633             Py_DECREF(exc_type);
23634             Py_XDECREF(exc_value);
23635             Py_XDECREF(exc_tb);
23636             return 0;
23637         } else {
23638             return -1;
23639         }
23640     }
23641     return 0;
23642 #else
23643     if (unlikely(PyErr_Occurred())) {
23644         if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) {
23645             PyErr_Clear();
23646             return 0;
23647         } else {
23648             return -1;
23649         }
23650     }
23651     return 0;
23652 #endif
23653 }
23654 
23655 /* UnpackItemEndCheck */
__Pyx_IternextUnpackEndCheck(PyObject * retval,Py_ssize_t expected)23656 static int __Pyx_IternextUnpackEndCheck(PyObject *retval, Py_ssize_t expected) {
23657     if (unlikely(retval)) {
23658         Py_DECREF(retval);
23659         __Pyx_RaiseTooManyValuesError(expected);
23660         return -1;
23661     } else {
23662         return __Pyx_IterFinish();
23663     }
23664     return 0;
23665 }
23666 
23667 /* ObjectGetItem */
23668 #if CYTHON_USE_TYPE_SLOTS
__Pyx_PyObject_GetIndex(PyObject * obj,PyObject * index)23669 static PyObject *__Pyx_PyObject_GetIndex(PyObject *obj, PyObject* index) {
23670     PyObject *runerr;
23671     Py_ssize_t key_value;
23672     PySequenceMethods *m = Py_TYPE(obj)->tp_as_sequence;
23673     if (unlikely(!(m && m->sq_item))) {
23674         PyErr_Format(PyExc_TypeError, "'%.200s' object is not subscriptable", Py_TYPE(obj)->tp_name);
23675         return NULL;
23676     }
23677     key_value = __Pyx_PyIndex_AsSsize_t(index);
23678     if (likely(key_value != -1 || !(runerr = PyErr_Occurred()))) {
23679         return __Pyx_GetItemInt_Fast(obj, key_value, 0, 1, 1);
23680     }
23681     if (PyErr_GivenExceptionMatches(runerr, PyExc_OverflowError)) {
23682         PyErr_Clear();
23683         PyErr_Format(PyExc_IndexError, "cannot fit '%.200s' into an index-sized integer", Py_TYPE(index)->tp_name);
23684     }
23685     return NULL;
23686 }
__Pyx_PyObject_GetItem(PyObject * obj,PyObject * key)23687 static PyObject *__Pyx_PyObject_GetItem(PyObject *obj, PyObject* key) {
23688     PyMappingMethods *m = Py_TYPE(obj)->tp_as_mapping;
23689     if (likely(m && m->mp_subscript)) {
23690         return m->mp_subscript(obj, key);
23691     }
23692     return __Pyx_PyObject_GetIndex(obj, key);
23693 }
23694 #endif
23695 
23696 /* RaiseException */
23697 #if PY_MAJOR_VERSION < 3
__Pyx_Raise(PyObject * type,PyObject * value,PyObject * tb,CYTHON_UNUSED PyObject * cause)23698 static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb,
23699                         CYTHON_UNUSED PyObject *cause) {
23700     __Pyx_PyThreadState_declare
23701     Py_XINCREF(type);
23702     if (!value || value == Py_None)
23703         value = NULL;
23704     else
23705         Py_INCREF(value);
23706     if (!tb || tb == Py_None)
23707         tb = NULL;
23708     else {
23709         Py_INCREF(tb);
23710         if (!PyTraceBack_Check(tb)) {
23711             PyErr_SetString(PyExc_TypeError,
23712                 "raise: arg 3 must be a traceback or None");
23713             goto raise_error;
23714         }
23715     }
23716     if (PyType_Check(type)) {
23717 #if CYTHON_COMPILING_IN_PYPY
23718         if (!value) {
23719             Py_INCREF(Py_None);
23720             value = Py_None;
23721         }
23722 #endif
23723         PyErr_NormalizeException(&type, &value, &tb);
23724     } else {
23725         if (value) {
23726             PyErr_SetString(PyExc_TypeError,
23727                 "instance exception may not have a separate value");
23728             goto raise_error;
23729         }
23730         value = type;
23731         type = (PyObject*) Py_TYPE(type);
23732         Py_INCREF(type);
23733         if (!PyType_IsSubtype((PyTypeObject *)type, (PyTypeObject *)PyExc_BaseException)) {
23734             PyErr_SetString(PyExc_TypeError,
23735                 "raise: exception class must be a subclass of BaseException");
23736             goto raise_error;
23737         }
23738     }
23739     __Pyx_PyThreadState_assign
23740     __Pyx_ErrRestore(type, value, tb);
23741     return;
23742 raise_error:
23743     Py_XDECREF(value);
23744     Py_XDECREF(type);
23745     Py_XDECREF(tb);
23746     return;
23747 }
23748 #else
__Pyx_Raise(PyObject * type,PyObject * value,PyObject * tb,PyObject * cause)23749 static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause) {
23750     PyObject* owned_instance = NULL;
23751     if (tb == Py_None) {
23752         tb = 0;
23753     } else if (tb && !PyTraceBack_Check(tb)) {
23754         PyErr_SetString(PyExc_TypeError,
23755             "raise: arg 3 must be a traceback or None");
23756         goto bad;
23757     }
23758     if (value == Py_None)
23759         value = 0;
23760     if (PyExceptionInstance_Check(type)) {
23761         if (value) {
23762             PyErr_SetString(PyExc_TypeError,
23763                 "instance exception may not have a separate value");
23764             goto bad;
23765         }
23766         value = type;
23767         type = (PyObject*) Py_TYPE(value);
23768     } else if (PyExceptionClass_Check(type)) {
23769         PyObject *instance_class = NULL;
23770         if (value && PyExceptionInstance_Check(value)) {
23771             instance_class = (PyObject*) Py_TYPE(value);
23772             if (instance_class != type) {
23773                 int is_subclass = PyObject_IsSubclass(instance_class, type);
23774                 if (!is_subclass) {
23775                     instance_class = NULL;
23776                 } else if (unlikely(is_subclass == -1)) {
23777                     goto bad;
23778                 } else {
23779                     type = instance_class;
23780                 }
23781             }
23782         }
23783         if (!instance_class) {
23784             PyObject *args;
23785             if (!value)
23786                 args = PyTuple_New(0);
23787             else if (PyTuple_Check(value)) {
23788                 Py_INCREF(value);
23789                 args = value;
23790             } else
23791                 args = PyTuple_Pack(1, value);
23792             if (!args)
23793                 goto bad;
23794             owned_instance = PyObject_Call(type, args, NULL);
23795             Py_DECREF(args);
23796             if (!owned_instance)
23797                 goto bad;
23798             value = owned_instance;
23799             if (!PyExceptionInstance_Check(value)) {
23800                 PyErr_Format(PyExc_TypeError,
23801                              "calling %R should have returned an instance of "
23802                              "BaseException, not %R",
23803                              type, Py_TYPE(value));
23804                 goto bad;
23805             }
23806         }
23807     } else {
23808         PyErr_SetString(PyExc_TypeError,
23809             "raise: exception class must be a subclass of BaseException");
23810         goto bad;
23811     }
23812     if (cause) {
23813         PyObject *fixed_cause;
23814         if (cause == Py_None) {
23815             fixed_cause = NULL;
23816         } else if (PyExceptionClass_Check(cause)) {
23817             fixed_cause = PyObject_CallObject(cause, NULL);
23818             if (fixed_cause == NULL)
23819                 goto bad;
23820         } else if (PyExceptionInstance_Check(cause)) {
23821             fixed_cause = cause;
23822             Py_INCREF(fixed_cause);
23823         } else {
23824             PyErr_SetString(PyExc_TypeError,
23825                             "exception causes must derive from "
23826                             "BaseException");
23827             goto bad;
23828         }
23829         PyException_SetCause(value, fixed_cause);
23830     }
23831     PyErr_SetObject(type, value);
23832     if (tb) {
23833 #if CYTHON_COMPILING_IN_PYPY
23834         PyObject *tmp_type, *tmp_value, *tmp_tb;
23835         PyErr_Fetch(&tmp_type, &tmp_value, &tmp_tb);
23836         Py_INCREF(tb);
23837         PyErr_Restore(tmp_type, tmp_value, tb);
23838         Py_XDECREF(tmp_tb);
23839 #else
23840         PyThreadState *tstate = __Pyx_PyThreadState_Current;
23841         PyObject* tmp_tb = tstate->curexc_traceback;
23842         if (tb != tmp_tb) {
23843             Py_INCREF(tb);
23844             tstate->curexc_traceback = tb;
23845             Py_XDECREF(tmp_tb);
23846         }
23847 #endif
23848     }
23849 bad:
23850     Py_XDECREF(owned_instance);
23851     return;
23852 }
23853 #endif
23854 
23855 /* DictGetItem */
23856 #if PY_MAJOR_VERSION >= 3 && !CYTHON_COMPILING_IN_PYPY
__Pyx_PyDict_GetItem(PyObject * d,PyObject * key)23857 static PyObject *__Pyx_PyDict_GetItem(PyObject *d, PyObject* key) {
23858     PyObject *value;
23859     value = PyDict_GetItemWithError(d, key);
23860     if (unlikely(!value)) {
23861         if (!PyErr_Occurred()) {
23862             if (unlikely(PyTuple_Check(key))) {
23863                 PyObject* args = PyTuple_Pack(1, key);
23864                 if (likely(args)) {
23865                     PyErr_SetObject(PyExc_KeyError, args);
23866                     Py_DECREF(args);
23867                 }
23868             } else {
23869                 PyErr_SetObject(PyExc_KeyError, key);
23870             }
23871         }
23872         return NULL;
23873     }
23874     Py_INCREF(value);
23875     return value;
23876 }
23877 #endif
23878 
23879 /* FastTypeChecks */
23880 #if CYTHON_COMPILING_IN_CPYTHON
__Pyx_InBases(PyTypeObject * a,PyTypeObject * b)23881 static int __Pyx_InBases(PyTypeObject *a, PyTypeObject *b) {
23882     while (a) {
23883         a = a->tp_base;
23884         if (a == b)
23885             return 1;
23886     }
23887     return b == &PyBaseObject_Type;
23888 }
__Pyx_IsSubtype(PyTypeObject * a,PyTypeObject * b)23889 static CYTHON_INLINE int __Pyx_IsSubtype(PyTypeObject *a, PyTypeObject *b) {
23890     PyObject *mro;
23891     if (a == b) return 1;
23892     mro = a->tp_mro;
23893     if (likely(mro)) {
23894         Py_ssize_t i, n;
23895         n = PyTuple_GET_SIZE(mro);
23896         for (i = 0; i < n; i++) {
23897             if (PyTuple_GET_ITEM(mro, i) == (PyObject *)b)
23898                 return 1;
23899         }
23900         return 0;
23901     }
23902     return __Pyx_InBases(a, b);
23903 }
23904 #if PY_MAJOR_VERSION == 2
__Pyx_inner_PyErr_GivenExceptionMatches2(PyObject * err,PyObject * exc_type1,PyObject * exc_type2)23905 static int __Pyx_inner_PyErr_GivenExceptionMatches2(PyObject *err, PyObject* exc_type1, PyObject* exc_type2) {
23906     PyObject *exception, *value, *tb;
23907     int res;
23908     __Pyx_PyThreadState_declare
23909     __Pyx_PyThreadState_assign
23910     __Pyx_ErrFetch(&exception, &value, &tb);
23911     res = exc_type1 ? PyObject_IsSubclass(err, exc_type1) : 0;
23912     if (unlikely(res == -1)) {
23913         PyErr_WriteUnraisable(err);
23914         res = 0;
23915     }
23916     if (!res) {
23917         res = PyObject_IsSubclass(err, exc_type2);
23918         if (unlikely(res == -1)) {
23919             PyErr_WriteUnraisable(err);
23920             res = 0;
23921         }
23922     }
23923     __Pyx_ErrRestore(exception, value, tb);
23924     return res;
23925 }
23926 #else
__Pyx_inner_PyErr_GivenExceptionMatches2(PyObject * err,PyObject * exc_type1,PyObject * exc_type2)23927 static CYTHON_INLINE int __Pyx_inner_PyErr_GivenExceptionMatches2(PyObject *err, PyObject* exc_type1, PyObject *exc_type2) {
23928     int res = exc_type1 ? __Pyx_IsSubtype((PyTypeObject*)err, (PyTypeObject*)exc_type1) : 0;
23929     if (!res) {
23930         res = __Pyx_IsSubtype((PyTypeObject*)err, (PyTypeObject*)exc_type2);
23931     }
23932     return res;
23933 }
23934 #endif
__Pyx_PyErr_GivenExceptionMatchesTuple(PyObject * exc_type,PyObject * tuple)23935 static int __Pyx_PyErr_GivenExceptionMatchesTuple(PyObject *exc_type, PyObject *tuple) {
23936     Py_ssize_t i, n;
23937     assert(PyExceptionClass_Check(exc_type));
23938     n = PyTuple_GET_SIZE(tuple);
23939 #if PY_MAJOR_VERSION >= 3
23940     for (i=0; i<n; i++) {
23941         if (exc_type == PyTuple_GET_ITEM(tuple, i)) return 1;
23942     }
23943 #endif
23944     for (i=0; i<n; i++) {
23945         PyObject *t = PyTuple_GET_ITEM(tuple, i);
23946         #if PY_MAJOR_VERSION < 3
23947         if (likely(exc_type == t)) return 1;
23948         #endif
23949         if (likely(PyExceptionClass_Check(t))) {
23950             if (__Pyx_inner_PyErr_GivenExceptionMatches2(exc_type, NULL, t)) return 1;
23951         } else {
23952         }
23953     }
23954     return 0;
23955 }
__Pyx_PyErr_GivenExceptionMatches(PyObject * err,PyObject * exc_type)23956 static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches(PyObject *err, PyObject* exc_type) {
23957     if (likely(err == exc_type)) return 1;
23958     if (likely(PyExceptionClass_Check(err))) {
23959         if (likely(PyExceptionClass_Check(exc_type))) {
23960             return __Pyx_inner_PyErr_GivenExceptionMatches2(err, NULL, exc_type);
23961         } else if (likely(PyTuple_Check(exc_type))) {
23962             return __Pyx_PyErr_GivenExceptionMatchesTuple(err, exc_type);
23963         } else {
23964         }
23965     }
23966     return PyErr_GivenExceptionMatches(err, exc_type);
23967 }
__Pyx_PyErr_GivenExceptionMatches2(PyObject * err,PyObject * exc_type1,PyObject * exc_type2)23968 static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches2(PyObject *err, PyObject *exc_type1, PyObject *exc_type2) {
23969     assert(PyExceptionClass_Check(exc_type1));
23970     assert(PyExceptionClass_Check(exc_type2));
23971     if (likely(err == exc_type1 || err == exc_type2)) return 1;
23972     if (likely(PyExceptionClass_Check(err))) {
23973         return __Pyx_inner_PyErr_GivenExceptionMatches2(err, exc_type1, exc_type2);
23974     }
23975     return (PyErr_GivenExceptionMatches(err, exc_type1) || PyErr_GivenExceptionMatches(err, exc_type2));
23976 }
23977 #endif
23978 
23979 /* SwapException */
23980 #if CYTHON_FAST_THREAD_STATE
__Pyx__ExceptionSwap(PyThreadState * tstate,PyObject ** type,PyObject ** value,PyObject ** tb)23981 static CYTHON_INLINE void __Pyx__ExceptionSwap(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) {
23982     PyObject *tmp_type, *tmp_value, *tmp_tb;
23983     #if CYTHON_USE_EXC_INFO_STACK
23984     _PyErr_StackItem *exc_info = tstate->exc_info;
23985     tmp_type = exc_info->exc_type;
23986     tmp_value = exc_info->exc_value;
23987     tmp_tb = exc_info->exc_traceback;
23988     exc_info->exc_type = *type;
23989     exc_info->exc_value = *value;
23990     exc_info->exc_traceback = *tb;
23991     #else
23992     tmp_type = tstate->exc_type;
23993     tmp_value = tstate->exc_value;
23994     tmp_tb = tstate->exc_traceback;
23995     tstate->exc_type = *type;
23996     tstate->exc_value = *value;
23997     tstate->exc_traceback = *tb;
23998     #endif
23999     *type = tmp_type;
24000     *value = tmp_value;
24001     *tb = tmp_tb;
24002 }
24003 #else
__Pyx_ExceptionSwap(PyObject ** type,PyObject ** value,PyObject ** tb)24004 static CYTHON_INLINE void __Pyx_ExceptionSwap(PyObject **type, PyObject **value, PyObject **tb) {
24005     PyObject *tmp_type, *tmp_value, *tmp_tb;
24006     PyErr_GetExcInfo(&tmp_type, &tmp_value, &tmp_tb);
24007     PyErr_SetExcInfo(*type, *value, *tb);
24008     *type = tmp_type;
24009     *value = tmp_value;
24010     *tb = tmp_tb;
24011 }
24012 #endif
24013 
24014 /* PyObjectGetMethod */
__Pyx_PyObject_GetMethod(PyObject * obj,PyObject * name,PyObject ** method)24015 static int __Pyx_PyObject_GetMethod(PyObject *obj, PyObject *name, PyObject **method) {
24016     PyObject *attr;
24017 #if CYTHON_UNPACK_METHODS && CYTHON_COMPILING_IN_CPYTHON && CYTHON_USE_PYTYPE_LOOKUP
24018     PyTypeObject *tp = Py_TYPE(obj);
24019     PyObject *descr;
24020     descrgetfunc f = NULL;
24021     PyObject **dictptr, *dict;
24022     int meth_found = 0;
24023     assert (*method == NULL);
24024     if (unlikely(tp->tp_getattro != PyObject_GenericGetAttr)) {
24025         attr = __Pyx_PyObject_GetAttrStr(obj, name);
24026         goto try_unpack;
24027     }
24028     if (unlikely(tp->tp_dict == NULL) && unlikely(PyType_Ready(tp) < 0)) {
24029         return 0;
24030     }
24031     descr = _PyType_Lookup(tp, name);
24032     if (likely(descr != NULL)) {
24033         Py_INCREF(descr);
24034 #if PY_MAJOR_VERSION >= 3
24035         #ifdef __Pyx_CyFunction_USED
24036         if (likely(PyFunction_Check(descr) || (Py_TYPE(descr) == &PyMethodDescr_Type) || __Pyx_CyFunction_Check(descr)))
24037         #else
24038         if (likely(PyFunction_Check(descr) || (Py_TYPE(descr) == &PyMethodDescr_Type)))
24039         #endif
24040 #else
24041         #ifdef __Pyx_CyFunction_USED
24042         if (likely(PyFunction_Check(descr) || __Pyx_CyFunction_Check(descr)))
24043         #else
24044         if (likely(PyFunction_Check(descr)))
24045         #endif
24046 #endif
24047         {
24048             meth_found = 1;
24049         } else {
24050             f = Py_TYPE(descr)->tp_descr_get;
24051             if (f != NULL && PyDescr_IsData(descr)) {
24052                 attr = f(descr, obj, (PyObject *)Py_TYPE(obj));
24053                 Py_DECREF(descr);
24054                 goto try_unpack;
24055             }
24056         }
24057     }
24058     dictptr = _PyObject_GetDictPtr(obj);
24059     if (dictptr != NULL && (dict = *dictptr) != NULL) {
24060         Py_INCREF(dict);
24061         attr = __Pyx_PyDict_GetItemStr(dict, name);
24062         if (attr != NULL) {
24063             Py_INCREF(attr);
24064             Py_DECREF(dict);
24065             Py_XDECREF(descr);
24066             goto try_unpack;
24067         }
24068         Py_DECREF(dict);
24069     }
24070     if (meth_found) {
24071         *method = descr;
24072         return 1;
24073     }
24074     if (f != NULL) {
24075         attr = f(descr, obj, (PyObject *)Py_TYPE(obj));
24076         Py_DECREF(descr);
24077         goto try_unpack;
24078     }
24079     if (descr != NULL) {
24080         *method = descr;
24081         return 0;
24082     }
24083     PyErr_Format(PyExc_AttributeError,
24084 #if PY_MAJOR_VERSION >= 3
24085                  "'%.50s' object has no attribute '%U'",
24086                  tp->tp_name, name);
24087 #else
24088                  "'%.50s' object has no attribute '%.400s'",
24089                  tp->tp_name, PyString_AS_STRING(name));
24090 #endif
24091     return 0;
24092 #else
24093     attr = __Pyx_PyObject_GetAttrStr(obj, name);
24094     goto try_unpack;
24095 #endif
24096 try_unpack:
24097 #if CYTHON_UNPACK_METHODS
24098     if (likely(attr) && PyMethod_Check(attr) && likely(PyMethod_GET_SELF(attr) == obj)) {
24099         PyObject *function = PyMethod_GET_FUNCTION(attr);
24100         Py_INCREF(function);
24101         Py_DECREF(attr);
24102         *method = function;
24103         return 1;
24104     }
24105 #endif
24106     *method = attr;
24107     return 0;
24108 }
24109 
24110 /* PyObjectCallMethod0 */
__Pyx_PyObject_CallMethod0(PyObject * obj,PyObject * method_name)24111 static PyObject* __Pyx_PyObject_CallMethod0(PyObject* obj, PyObject* method_name) {
24112     PyObject *method = NULL, *result = NULL;
24113     int is_method = __Pyx_PyObject_GetMethod(obj, method_name, &method);
24114     if (likely(is_method)) {
24115         result = __Pyx_PyObject_CallOneArg(method, obj);
24116         Py_DECREF(method);
24117         return result;
24118     }
24119     if (unlikely(!method)) goto bad;
24120     result = __Pyx_PyObject_CallNoArg(method);
24121     Py_DECREF(method);
24122 bad:
24123     return result;
24124 }
24125 
24126 /* UnpackUnboundCMethod */
__Pyx_TryUnpackUnboundCMethod(__Pyx_CachedCFunction * target)24127 static int __Pyx_TryUnpackUnboundCMethod(__Pyx_CachedCFunction* target) {
24128     PyObject *method;
24129     method = __Pyx_PyObject_GetAttrStr(target->type, *target->method_name);
24130     if (unlikely(!method))
24131         return -1;
24132     target->method = method;
24133 #if CYTHON_COMPILING_IN_CPYTHON
24134     #if PY_MAJOR_VERSION >= 3
24135     if (likely(__Pyx_TypeCheck(method, &PyMethodDescr_Type)))
24136     #endif
24137     {
24138         PyMethodDescrObject *descr = (PyMethodDescrObject*) method;
24139         target->func = descr->d_method->ml_meth;
24140         target->flag = descr->d_method->ml_flags & ~(METH_CLASS | METH_STATIC | METH_COEXIST | METH_STACKLESS);
24141     }
24142 #endif
24143     return 0;
24144 }
24145 
24146 /* CallUnboundCMethod0 */
__Pyx__CallUnboundCMethod0(__Pyx_CachedCFunction * cfunc,PyObject * self)24147 static PyObject* __Pyx__CallUnboundCMethod0(__Pyx_CachedCFunction* cfunc, PyObject* self) {
24148     PyObject *args, *result = NULL;
24149     if (unlikely(!cfunc->method) && unlikely(__Pyx_TryUnpackUnboundCMethod(cfunc) < 0)) return NULL;
24150 #if CYTHON_ASSUME_SAFE_MACROS
24151     args = PyTuple_New(1);
24152     if (unlikely(!args)) goto bad;
24153     Py_INCREF(self);
24154     PyTuple_SET_ITEM(args, 0, self);
24155 #else
24156     args = PyTuple_Pack(1, self);
24157     if (unlikely(!args)) goto bad;
24158 #endif
24159     result = __Pyx_PyObject_Call(cfunc->method, args, NULL);
24160     Py_DECREF(args);
24161 bad:
24162     return result;
24163 }
24164 
24165 /* pop */
__Pyx__PyObject_Pop(PyObject * L)24166 static CYTHON_INLINE PyObject* __Pyx__PyObject_Pop(PyObject* L) {
24167     if (Py_TYPE(L) == &PySet_Type) {
24168         return PySet_Pop(L);
24169     }
24170     return __Pyx_PyObject_CallMethod0(L, __pyx_n_s_pop);
24171 }
24172 #if CYTHON_USE_PYLIST_INTERNALS && CYTHON_ASSUME_SAFE_MACROS
__Pyx_PyList_Pop(PyObject * L)24173 static CYTHON_INLINE PyObject* __Pyx_PyList_Pop(PyObject* L) {
24174     if (likely(PyList_GET_SIZE(L) > (((PyListObject*)L)->allocated >> 1))) {
24175         __Pyx_SET_SIZE(L, Py_SIZE(L) - 1);
24176         return PyList_GET_ITEM(L, PyList_GET_SIZE(L));
24177     }
24178     return __Pyx_CallUnboundCMethod0(&__pyx_umethod_PyList_Type_pop, L);
24179 }
24180 #endif
24181 
24182 /* RaiseDoubleKeywords */
__Pyx_RaiseDoubleKeywordsError(const char * func_name,PyObject * kw_name)24183 static void __Pyx_RaiseDoubleKeywordsError(
24184     const char* func_name,
24185     PyObject* kw_name)
24186 {
24187     PyErr_Format(PyExc_TypeError,
24188         #if PY_MAJOR_VERSION >= 3
24189         "%s() got multiple values for keyword argument '%U'", func_name, kw_name);
24190         #else
24191         "%s() got multiple values for keyword argument '%s'", func_name,
24192         PyString_AsString(kw_name));
24193         #endif
24194 }
24195 
24196 /* ParseKeywords */
__Pyx_ParseOptionalKeywords(PyObject * kwds,PyObject ** argnames[],PyObject * kwds2,PyObject * values[],Py_ssize_t num_pos_args,const char * function_name)24197 static int __Pyx_ParseOptionalKeywords(
24198     PyObject *kwds,
24199     PyObject **argnames[],
24200     PyObject *kwds2,
24201     PyObject *values[],
24202     Py_ssize_t num_pos_args,
24203     const char* function_name)
24204 {
24205     PyObject *key = 0, *value = 0;
24206     Py_ssize_t pos = 0;
24207     PyObject*** name;
24208     PyObject*** first_kw_arg = argnames + num_pos_args;
24209     while (PyDict_Next(kwds, &pos, &key, &value)) {
24210         name = first_kw_arg;
24211         while (*name && (**name != key)) name++;
24212         if (*name) {
24213             values[name-argnames] = value;
24214             continue;
24215         }
24216         name = first_kw_arg;
24217         #if PY_MAJOR_VERSION < 3
24218         if (likely(PyString_Check(key))) {
24219             while (*name) {
24220                 if ((CYTHON_COMPILING_IN_PYPY || PyString_GET_SIZE(**name) == PyString_GET_SIZE(key))
24221                         && _PyString_Eq(**name, key)) {
24222                     values[name-argnames] = value;
24223                     break;
24224                 }
24225                 name++;
24226             }
24227             if (*name) continue;
24228             else {
24229                 PyObject*** argname = argnames;
24230                 while (argname != first_kw_arg) {
24231                     if ((**argname == key) || (
24232                             (CYTHON_COMPILING_IN_PYPY || PyString_GET_SIZE(**argname) == PyString_GET_SIZE(key))
24233                              && _PyString_Eq(**argname, key))) {
24234                         goto arg_passed_twice;
24235                     }
24236                     argname++;
24237                 }
24238             }
24239         } else
24240         #endif
24241         if (likely(PyUnicode_Check(key))) {
24242             while (*name) {
24243                 int cmp = (**name == key) ? 0 :
24244                 #if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION >= 3
24245                     (__Pyx_PyUnicode_GET_LENGTH(**name) != __Pyx_PyUnicode_GET_LENGTH(key)) ? 1 :
24246                 #endif
24247                     PyUnicode_Compare(**name, key);
24248                 if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad;
24249                 if (cmp == 0) {
24250                     values[name-argnames] = value;
24251                     break;
24252                 }
24253                 name++;
24254             }
24255             if (*name) continue;
24256             else {
24257                 PyObject*** argname = argnames;
24258                 while (argname != first_kw_arg) {
24259                     int cmp = (**argname == key) ? 0 :
24260                     #if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION >= 3
24261                         (__Pyx_PyUnicode_GET_LENGTH(**argname) != __Pyx_PyUnicode_GET_LENGTH(key)) ? 1 :
24262                     #endif
24263                         PyUnicode_Compare(**argname, key);
24264                     if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad;
24265                     if (cmp == 0) goto arg_passed_twice;
24266                     argname++;
24267                 }
24268             }
24269         } else
24270             goto invalid_keyword_type;
24271         if (kwds2) {
24272             if (unlikely(PyDict_SetItem(kwds2, key, value))) goto bad;
24273         } else {
24274             goto invalid_keyword;
24275         }
24276     }
24277     return 0;
24278 arg_passed_twice:
24279     __Pyx_RaiseDoubleKeywordsError(function_name, key);
24280     goto bad;
24281 invalid_keyword_type:
24282     PyErr_Format(PyExc_TypeError,
24283         "%.200s() keywords must be strings", function_name);
24284     goto bad;
24285 invalid_keyword:
24286     PyErr_Format(PyExc_TypeError,
24287     #if PY_MAJOR_VERSION < 3
24288         "%.200s() got an unexpected keyword argument '%.200s'",
24289         function_name, PyString_AsString(key));
24290     #else
24291         "%s() got an unexpected keyword argument '%U'",
24292         function_name, key);
24293     #endif
24294 bad:
24295     return -1;
24296 }
24297 
24298 /* RaiseNoneIterError */
__Pyx_RaiseNoneNotIterableError(void)24299 static CYTHON_INLINE void __Pyx_RaiseNoneNotIterableError(void) {
24300     PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
24301 }
24302 
24303 /* UnpackTupleError */
__Pyx_UnpackTupleError(PyObject * t,Py_ssize_t index)24304 static void __Pyx_UnpackTupleError(PyObject *t, Py_ssize_t index) {
24305     if (t == Py_None) {
24306       __Pyx_RaiseNoneNotIterableError();
24307     } else if (PyTuple_GET_SIZE(t) < index) {
24308       __Pyx_RaiseNeedMoreValuesError(PyTuple_GET_SIZE(t));
24309     } else {
24310       __Pyx_RaiseTooManyValuesError(index);
24311     }
24312 }
24313 
24314 /* UnpackTuple2 */
__Pyx_unpack_tuple2_exact(PyObject * tuple,PyObject ** pvalue1,PyObject ** pvalue2,int decref_tuple)24315 static CYTHON_INLINE int __Pyx_unpack_tuple2_exact(
24316         PyObject* tuple, PyObject** pvalue1, PyObject** pvalue2, int decref_tuple) {
24317     PyObject *value1 = NULL, *value2 = NULL;
24318 #if CYTHON_COMPILING_IN_PYPY
24319     value1 = PySequence_ITEM(tuple, 0);  if (unlikely(!value1)) goto bad;
24320     value2 = PySequence_ITEM(tuple, 1);  if (unlikely(!value2)) goto bad;
24321 #else
24322     value1 = PyTuple_GET_ITEM(tuple, 0);  Py_INCREF(value1);
24323     value2 = PyTuple_GET_ITEM(tuple, 1);  Py_INCREF(value2);
24324 #endif
24325     if (decref_tuple) {
24326         Py_DECREF(tuple);
24327     }
24328     *pvalue1 = value1;
24329     *pvalue2 = value2;
24330     return 0;
24331 #if CYTHON_COMPILING_IN_PYPY
24332 bad:
24333     Py_XDECREF(value1);
24334     Py_XDECREF(value2);
24335     if (decref_tuple) { Py_XDECREF(tuple); }
24336     return -1;
24337 #endif
24338 }
__Pyx_unpack_tuple2_generic(PyObject * tuple,PyObject ** pvalue1,PyObject ** pvalue2,int has_known_size,int decref_tuple)24339 static int __Pyx_unpack_tuple2_generic(PyObject* tuple, PyObject** pvalue1, PyObject** pvalue2,
24340                                        int has_known_size, int decref_tuple) {
24341     Py_ssize_t index;
24342     PyObject *value1 = NULL, *value2 = NULL, *iter = NULL;
24343     iternextfunc iternext;
24344     iter = PyObject_GetIter(tuple);
24345     if (unlikely(!iter)) goto bad;
24346     if (decref_tuple) { Py_DECREF(tuple); tuple = NULL; }
24347     iternext = Py_TYPE(iter)->tp_iternext;
24348     value1 = iternext(iter); if (unlikely(!value1)) { index = 0; goto unpacking_failed; }
24349     value2 = iternext(iter); if (unlikely(!value2)) { index = 1; goto unpacking_failed; }
24350     if (!has_known_size && unlikely(__Pyx_IternextUnpackEndCheck(iternext(iter), 2))) goto bad;
24351     Py_DECREF(iter);
24352     *pvalue1 = value1;
24353     *pvalue2 = value2;
24354     return 0;
24355 unpacking_failed:
24356     if (!has_known_size && __Pyx_IterFinish() == 0)
24357         __Pyx_RaiseNeedMoreValuesError(index);
24358 bad:
24359     Py_XDECREF(iter);
24360     Py_XDECREF(value1);
24361     Py_XDECREF(value2);
24362     if (decref_tuple) { Py_XDECREF(tuple); }
24363     return -1;
24364 }
24365 
24366 /* dict_iter */
__Pyx_dict_iterator(PyObject * iterable,int is_dict,PyObject * method_name,Py_ssize_t * p_orig_length,int * p_source_is_dict)24367 static CYTHON_INLINE PyObject* __Pyx_dict_iterator(PyObject* iterable, int is_dict, PyObject* method_name,
24368                                                    Py_ssize_t* p_orig_length, int* p_source_is_dict) {
24369     is_dict = is_dict || likely(PyDict_CheckExact(iterable));
24370     *p_source_is_dict = is_dict;
24371     if (is_dict) {
24372 #if !CYTHON_COMPILING_IN_PYPY
24373         *p_orig_length = PyDict_Size(iterable);
24374         Py_INCREF(iterable);
24375         return iterable;
24376 #elif PY_MAJOR_VERSION >= 3
24377         static PyObject *py_items = NULL, *py_keys = NULL, *py_values = NULL;
24378         PyObject **pp = NULL;
24379         if (method_name) {
24380             const char *name = PyUnicode_AsUTF8(method_name);
24381             if (strcmp(name, "iteritems") == 0) pp = &py_items;
24382             else if (strcmp(name, "iterkeys") == 0) pp = &py_keys;
24383             else if (strcmp(name, "itervalues") == 0) pp = &py_values;
24384             if (pp) {
24385                 if (!*pp) {
24386                     *pp = PyUnicode_FromString(name + 4);
24387                     if (!*pp)
24388                         return NULL;
24389                 }
24390                 method_name = *pp;
24391             }
24392         }
24393 #endif
24394     }
24395     *p_orig_length = 0;
24396     if (method_name) {
24397         PyObject* iter;
24398         iterable = __Pyx_PyObject_CallMethod0(iterable, method_name);
24399         if (!iterable)
24400             return NULL;
24401 #if !CYTHON_COMPILING_IN_PYPY
24402         if (PyTuple_CheckExact(iterable) || PyList_CheckExact(iterable))
24403             return iterable;
24404 #endif
24405         iter = PyObject_GetIter(iterable);
24406         Py_DECREF(iterable);
24407         return iter;
24408     }
24409     return PyObject_GetIter(iterable);
24410 }
__Pyx_dict_iter_next(PyObject * iter_obj,CYTHON_NCP_UNUSED Py_ssize_t orig_length,CYTHON_NCP_UNUSED Py_ssize_t * ppos,PyObject ** pkey,PyObject ** pvalue,PyObject ** pitem,int source_is_dict)24411 static CYTHON_INLINE int __Pyx_dict_iter_next(
24412         PyObject* iter_obj, CYTHON_NCP_UNUSED Py_ssize_t orig_length, CYTHON_NCP_UNUSED Py_ssize_t* ppos,
24413         PyObject** pkey, PyObject** pvalue, PyObject** pitem, int source_is_dict) {
24414     PyObject* next_item;
24415 #if !CYTHON_COMPILING_IN_PYPY
24416     if (source_is_dict) {
24417         PyObject *key, *value;
24418         if (unlikely(orig_length != PyDict_Size(iter_obj))) {
24419             PyErr_SetString(PyExc_RuntimeError, "dictionary changed size during iteration");
24420             return -1;
24421         }
24422         if (unlikely(!PyDict_Next(iter_obj, ppos, &key, &value))) {
24423             return 0;
24424         }
24425         if (pitem) {
24426             PyObject* tuple = PyTuple_New(2);
24427             if (unlikely(!tuple)) {
24428                 return -1;
24429             }
24430             Py_INCREF(key);
24431             Py_INCREF(value);
24432             PyTuple_SET_ITEM(tuple, 0, key);
24433             PyTuple_SET_ITEM(tuple, 1, value);
24434             *pitem = tuple;
24435         } else {
24436             if (pkey) {
24437                 Py_INCREF(key);
24438                 *pkey = key;
24439             }
24440             if (pvalue) {
24441                 Py_INCREF(value);
24442                 *pvalue = value;
24443             }
24444         }
24445         return 1;
24446     } else if (PyTuple_CheckExact(iter_obj)) {
24447         Py_ssize_t pos = *ppos;
24448         if (unlikely(pos >= PyTuple_GET_SIZE(iter_obj))) return 0;
24449         *ppos = pos + 1;
24450         next_item = PyTuple_GET_ITEM(iter_obj, pos);
24451         Py_INCREF(next_item);
24452     } else if (PyList_CheckExact(iter_obj)) {
24453         Py_ssize_t pos = *ppos;
24454         if (unlikely(pos >= PyList_GET_SIZE(iter_obj))) return 0;
24455         *ppos = pos + 1;
24456         next_item = PyList_GET_ITEM(iter_obj, pos);
24457         Py_INCREF(next_item);
24458     } else
24459 #endif
24460     {
24461         next_item = PyIter_Next(iter_obj);
24462         if (unlikely(!next_item)) {
24463             return __Pyx_IterFinish();
24464         }
24465     }
24466     if (pitem) {
24467         *pitem = next_item;
24468     } else if (pkey && pvalue) {
24469         if (__Pyx_unpack_tuple2(next_item, pkey, pvalue, source_is_dict, source_is_dict, 1))
24470             return -1;
24471     } else if (pkey) {
24472         *pkey = next_item;
24473     } else {
24474         *pvalue = next_item;
24475     }
24476     return 1;
24477 }
24478 
24479 /* ImportFrom */
__Pyx_ImportFrom(PyObject * module,PyObject * name)24480 static PyObject* __Pyx_ImportFrom(PyObject* module, PyObject* name) {
24481     PyObject* value = __Pyx_PyObject_GetAttrStr(module, name);
24482     if (unlikely(!value) && PyErr_ExceptionMatches(PyExc_AttributeError)) {
24483         PyErr_Format(PyExc_ImportError,
24484         #if PY_MAJOR_VERSION < 3
24485             "cannot import name %.230s", PyString_AS_STRING(name));
24486         #else
24487             "cannot import name %S", name);
24488         #endif
24489     }
24490     return value;
24491 }
24492 
24493 /* BytesEquals */
__Pyx_PyBytes_Equals(PyObject * s1,PyObject * s2,int equals)24494 static CYTHON_INLINE int __Pyx_PyBytes_Equals(PyObject* s1, PyObject* s2, int equals) {
24495 #if CYTHON_COMPILING_IN_PYPY
24496     return PyObject_RichCompareBool(s1, s2, equals);
24497 #else
24498     if (s1 == s2) {
24499         return (equals == Py_EQ);
24500     } else if (PyBytes_CheckExact(s1) & PyBytes_CheckExact(s2)) {
24501         const char *ps1, *ps2;
24502         Py_ssize_t length = PyBytes_GET_SIZE(s1);
24503         if (length != PyBytes_GET_SIZE(s2))
24504             return (equals == Py_NE);
24505         ps1 = PyBytes_AS_STRING(s1);
24506         ps2 = PyBytes_AS_STRING(s2);
24507         if (ps1[0] != ps2[0]) {
24508             return (equals == Py_NE);
24509         } else if (length == 1) {
24510             return (equals == Py_EQ);
24511         } else {
24512             int result;
24513 #if CYTHON_USE_UNICODE_INTERNALS
24514             Py_hash_t hash1, hash2;
24515             hash1 = ((PyBytesObject*)s1)->ob_shash;
24516             hash2 = ((PyBytesObject*)s2)->ob_shash;
24517             if (hash1 != hash2 && hash1 != -1 && hash2 != -1) {
24518                 return (equals == Py_NE);
24519             }
24520 #endif
24521             result = memcmp(ps1, ps2, (size_t)length);
24522             return (equals == Py_EQ) ? (result == 0) : (result != 0);
24523         }
24524     } else if ((s1 == Py_None) & PyBytes_CheckExact(s2)) {
24525         return (equals == Py_NE);
24526     } else if ((s2 == Py_None) & PyBytes_CheckExact(s1)) {
24527         return (equals == Py_NE);
24528     } else {
24529         int result;
24530         PyObject* py_result = PyObject_RichCompare(s1, s2, equals);
24531         if (!py_result)
24532             return -1;
24533         result = __Pyx_PyObject_IsTrue(py_result);
24534         Py_DECREF(py_result);
24535         return result;
24536     }
24537 #endif
24538 }
24539 
24540 /* UnicodeEquals */
__Pyx_PyUnicode_Equals(PyObject * s1,PyObject * s2,int equals)24541 static CYTHON_INLINE int __Pyx_PyUnicode_Equals(PyObject* s1, PyObject* s2, int equals) {
24542 #if CYTHON_COMPILING_IN_PYPY
24543     return PyObject_RichCompareBool(s1, s2, equals);
24544 #else
24545 #if PY_MAJOR_VERSION < 3
24546     PyObject* owned_ref = NULL;
24547 #endif
24548     int s1_is_unicode, s2_is_unicode;
24549     if (s1 == s2) {
24550         goto return_eq;
24551     }
24552     s1_is_unicode = PyUnicode_CheckExact(s1);
24553     s2_is_unicode = PyUnicode_CheckExact(s2);
24554 #if PY_MAJOR_VERSION < 3
24555     if ((s1_is_unicode & (!s2_is_unicode)) && PyString_CheckExact(s2)) {
24556         owned_ref = PyUnicode_FromObject(s2);
24557         if (unlikely(!owned_ref))
24558             return -1;
24559         s2 = owned_ref;
24560         s2_is_unicode = 1;
24561     } else if ((s2_is_unicode & (!s1_is_unicode)) && PyString_CheckExact(s1)) {
24562         owned_ref = PyUnicode_FromObject(s1);
24563         if (unlikely(!owned_ref))
24564             return -1;
24565         s1 = owned_ref;
24566         s1_is_unicode = 1;
24567     } else if (((!s2_is_unicode) & (!s1_is_unicode))) {
24568         return __Pyx_PyBytes_Equals(s1, s2, equals);
24569     }
24570 #endif
24571     if (s1_is_unicode & s2_is_unicode) {
24572         Py_ssize_t length;
24573         int kind;
24574         void *data1, *data2;
24575         if (unlikely(__Pyx_PyUnicode_READY(s1) < 0) || unlikely(__Pyx_PyUnicode_READY(s2) < 0))
24576             return -1;
24577         length = __Pyx_PyUnicode_GET_LENGTH(s1);
24578         if (length != __Pyx_PyUnicode_GET_LENGTH(s2)) {
24579             goto return_ne;
24580         }
24581 #if CYTHON_USE_UNICODE_INTERNALS
24582         {
24583             Py_hash_t hash1, hash2;
24584         #if CYTHON_PEP393_ENABLED
24585             hash1 = ((PyASCIIObject*)s1)->hash;
24586             hash2 = ((PyASCIIObject*)s2)->hash;
24587         #else
24588             hash1 = ((PyUnicodeObject*)s1)->hash;
24589             hash2 = ((PyUnicodeObject*)s2)->hash;
24590         #endif
24591             if (hash1 != hash2 && hash1 != -1 && hash2 != -1) {
24592                 goto return_ne;
24593             }
24594         }
24595 #endif
24596         kind = __Pyx_PyUnicode_KIND(s1);
24597         if (kind != __Pyx_PyUnicode_KIND(s2)) {
24598             goto return_ne;
24599         }
24600         data1 = __Pyx_PyUnicode_DATA(s1);
24601         data2 = __Pyx_PyUnicode_DATA(s2);
24602         if (__Pyx_PyUnicode_READ(kind, data1, 0) != __Pyx_PyUnicode_READ(kind, data2, 0)) {
24603             goto return_ne;
24604         } else if (length == 1) {
24605             goto return_eq;
24606         } else {
24607             int result = memcmp(data1, data2, (size_t)(length * kind));
24608             #if PY_MAJOR_VERSION < 3
24609             Py_XDECREF(owned_ref);
24610             #endif
24611             return (equals == Py_EQ) ? (result == 0) : (result != 0);
24612         }
24613     } else if ((s1 == Py_None) & s2_is_unicode) {
24614         goto return_ne;
24615     } else if ((s2 == Py_None) & s1_is_unicode) {
24616         goto return_ne;
24617     } else {
24618         int result;
24619         PyObject* py_result = PyObject_RichCompare(s1, s2, equals);
24620         #if PY_MAJOR_VERSION < 3
24621         Py_XDECREF(owned_ref);
24622         #endif
24623         if (!py_result)
24624             return -1;
24625         result = __Pyx_PyObject_IsTrue(py_result);
24626         Py_DECREF(py_result);
24627         return result;
24628     }
24629 return_eq:
24630     #if PY_MAJOR_VERSION < 3
24631     Py_XDECREF(owned_ref);
24632     #endif
24633     return (equals == Py_EQ);
24634 return_ne:
24635     #if PY_MAJOR_VERSION < 3
24636     Py_XDECREF(owned_ref);
24637     #endif
24638     return (equals == Py_NE);
24639 #endif
24640 }
24641 
24642 /* PyObjectSetAttrStr */
24643 #if CYTHON_USE_TYPE_SLOTS
__Pyx_PyObject_SetAttrStr(PyObject * obj,PyObject * attr_name,PyObject * value)24644 static CYTHON_INLINE int __Pyx_PyObject_SetAttrStr(PyObject* obj, PyObject* attr_name, PyObject* value) {
24645     PyTypeObject* tp = Py_TYPE(obj);
24646     if (likely(tp->tp_setattro))
24647         return tp->tp_setattro(obj, attr_name, value);
24648 #if PY_MAJOR_VERSION < 3
24649     if (likely(tp->tp_setattr))
24650         return tp->tp_setattr(obj, PyString_AS_STRING(attr_name), value);
24651 #endif
24652     return PyObject_SetAttr(obj, attr_name, value);
24653 }
24654 #endif
24655 
24656 /* SliceObject */
__Pyx_PyObject_GetSlice(PyObject * obj,Py_ssize_t cstart,Py_ssize_t cstop,PyObject ** _py_start,PyObject ** _py_stop,PyObject ** _py_slice,int has_cstart,int has_cstop,CYTHON_UNUSED int wraparound)24657 static CYTHON_INLINE PyObject* __Pyx_PyObject_GetSlice(PyObject* obj,
24658         Py_ssize_t cstart, Py_ssize_t cstop,
24659         PyObject** _py_start, PyObject** _py_stop, PyObject** _py_slice,
24660         int has_cstart, int has_cstop, CYTHON_UNUSED int wraparound) {
24661 #if CYTHON_USE_TYPE_SLOTS
24662     PyMappingMethods* mp;
24663 #if PY_MAJOR_VERSION < 3
24664     PySequenceMethods* ms = Py_TYPE(obj)->tp_as_sequence;
24665     if (likely(ms && ms->sq_slice)) {
24666         if (!has_cstart) {
24667             if (_py_start && (*_py_start != Py_None)) {
24668                 cstart = __Pyx_PyIndex_AsSsize_t(*_py_start);
24669                 if ((cstart == (Py_ssize_t)-1) && PyErr_Occurred()) goto bad;
24670             } else
24671                 cstart = 0;
24672         }
24673         if (!has_cstop) {
24674             if (_py_stop && (*_py_stop != Py_None)) {
24675                 cstop = __Pyx_PyIndex_AsSsize_t(*_py_stop);
24676                 if ((cstop == (Py_ssize_t)-1) && PyErr_Occurred()) goto bad;
24677             } else
24678                 cstop = PY_SSIZE_T_MAX;
24679         }
24680         if (wraparound && unlikely((cstart < 0) | (cstop < 0)) && likely(ms->sq_length)) {
24681             Py_ssize_t l = ms->sq_length(obj);
24682             if (likely(l >= 0)) {
24683                 if (cstop < 0) {
24684                     cstop += l;
24685                     if (cstop < 0) cstop = 0;
24686                 }
24687                 if (cstart < 0) {
24688                     cstart += l;
24689                     if (cstart < 0) cstart = 0;
24690                 }
24691             } else {
24692                 if (!PyErr_ExceptionMatches(PyExc_OverflowError))
24693                     goto bad;
24694                 PyErr_Clear();
24695             }
24696         }
24697         return ms->sq_slice(obj, cstart, cstop);
24698     }
24699 #endif
24700     mp = Py_TYPE(obj)->tp_as_mapping;
24701     if (likely(mp && mp->mp_subscript))
24702 #endif
24703     {
24704         PyObject* result;
24705         PyObject *py_slice, *py_start, *py_stop;
24706         if (_py_slice) {
24707             py_slice = *_py_slice;
24708         } else {
24709             PyObject* owned_start = NULL;
24710             PyObject* owned_stop = NULL;
24711             if (_py_start) {
24712                 py_start = *_py_start;
24713             } else {
24714                 if (has_cstart) {
24715                     owned_start = py_start = PyInt_FromSsize_t(cstart);
24716                     if (unlikely(!py_start)) goto bad;
24717                 } else
24718                     py_start = Py_None;
24719             }
24720             if (_py_stop) {
24721                 py_stop = *_py_stop;
24722             } else {
24723                 if (has_cstop) {
24724                     owned_stop = py_stop = PyInt_FromSsize_t(cstop);
24725                     if (unlikely(!py_stop)) {
24726                         Py_XDECREF(owned_start);
24727                         goto bad;
24728                     }
24729                 } else
24730                     py_stop = Py_None;
24731             }
24732             py_slice = PySlice_New(py_start, py_stop, Py_None);
24733             Py_XDECREF(owned_start);
24734             Py_XDECREF(owned_stop);
24735             if (unlikely(!py_slice)) goto bad;
24736         }
24737 #if CYTHON_USE_TYPE_SLOTS
24738         result = mp->mp_subscript(obj, py_slice);
24739 #else
24740         result = PyObject_GetItem(obj, py_slice);
24741 #endif
24742         if (!_py_slice) {
24743             Py_DECREF(py_slice);
24744         }
24745         return result;
24746     }
24747     PyErr_Format(PyExc_TypeError,
24748         "'%.200s' object is unsliceable", Py_TYPE(obj)->tp_name);
24749 bad:
24750     return NULL;
24751 }
24752 
24753 /* PyObject_GenericGetAttrNoDict */
24754 #if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000
__Pyx_RaiseGenericGetAttributeError(PyTypeObject * tp,PyObject * attr_name)24755 static PyObject *__Pyx_RaiseGenericGetAttributeError(PyTypeObject *tp, PyObject *attr_name) {
24756     PyErr_Format(PyExc_AttributeError,
24757 #if PY_MAJOR_VERSION >= 3
24758                  "'%.50s' object has no attribute '%U'",
24759                  tp->tp_name, attr_name);
24760 #else
24761                  "'%.50s' object has no attribute '%.400s'",
24762                  tp->tp_name, PyString_AS_STRING(attr_name));
24763 #endif
24764     return NULL;
24765 }
__Pyx_PyObject_GenericGetAttrNoDict(PyObject * obj,PyObject * attr_name)24766 static CYTHON_INLINE PyObject* __Pyx_PyObject_GenericGetAttrNoDict(PyObject* obj, PyObject* attr_name) {
24767     PyObject *descr;
24768     PyTypeObject *tp = Py_TYPE(obj);
24769     if (unlikely(!PyString_Check(attr_name))) {
24770         return PyObject_GenericGetAttr(obj, attr_name);
24771     }
24772     assert(!tp->tp_dictoffset);
24773     descr = _PyType_Lookup(tp, attr_name);
24774     if (unlikely(!descr)) {
24775         return __Pyx_RaiseGenericGetAttributeError(tp, attr_name);
24776     }
24777     Py_INCREF(descr);
24778     #if PY_MAJOR_VERSION < 3
24779     if (likely(PyType_HasFeature(Py_TYPE(descr), Py_TPFLAGS_HAVE_CLASS)))
24780     #endif
24781     {
24782         descrgetfunc f = Py_TYPE(descr)->tp_descr_get;
24783         if (unlikely(f)) {
24784             PyObject *res = f(descr, obj, (PyObject *)tp);
24785             Py_DECREF(descr);
24786             return res;
24787         }
24788     }
24789     return descr;
24790 }
24791 #endif
24792 
24793 /* PyObject_GenericGetAttr */
24794 #if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000
__Pyx_PyObject_GenericGetAttr(PyObject * obj,PyObject * attr_name)24795 static PyObject* __Pyx_PyObject_GenericGetAttr(PyObject* obj, PyObject* attr_name) {
24796     if (unlikely(Py_TYPE(obj)->tp_dictoffset)) {
24797         return PyObject_GenericGetAttr(obj, attr_name);
24798     }
24799     return __Pyx_PyObject_GenericGetAttrNoDict(obj, attr_name);
24800 }
24801 #endif
24802 
24803 /* SetVTable */
__Pyx_SetVtable(PyObject * dict,void * vtable)24804 static int __Pyx_SetVtable(PyObject *dict, void *vtable) {
24805 #if PY_VERSION_HEX >= 0x02070000
24806     PyObject *ob = PyCapsule_New(vtable, 0, 0);
24807 #else
24808     PyObject *ob = PyCObject_FromVoidPtr(vtable, 0);
24809 #endif
24810     if (!ob)
24811         goto bad;
24812     if (PyDict_SetItem(dict, __pyx_n_s_pyx_vtable, ob) < 0)
24813         goto bad;
24814     Py_DECREF(ob);
24815     return 0;
24816 bad:
24817     Py_XDECREF(ob);
24818     return -1;
24819 }
24820 
24821 /* PatchModuleWithCoroutine */
__Pyx_Coroutine_patch_module(PyObject * module,const char * py_code)24822 static PyObject* __Pyx_Coroutine_patch_module(PyObject* module, const char* py_code) {
24823 #if defined(__Pyx_Generator_USED) || defined(__Pyx_Coroutine_USED)
24824     int result;
24825     PyObject *globals, *result_obj;
24826     globals = PyDict_New();  if (unlikely(!globals)) goto ignore;
24827     result = PyDict_SetItemString(globals, "_cython_coroutine_type",
24828     #ifdef __Pyx_Coroutine_USED
24829         (PyObject*)__pyx_CoroutineType);
24830     #else
24831         Py_None);
24832     #endif
24833     if (unlikely(result < 0)) goto ignore;
24834     result = PyDict_SetItemString(globals, "_cython_generator_type",
24835     #ifdef __Pyx_Generator_USED
24836         (PyObject*)__pyx_GeneratorType);
24837     #else
24838         Py_None);
24839     #endif
24840     if (unlikely(result < 0)) goto ignore;
24841     if (unlikely(PyDict_SetItemString(globals, "_module", module) < 0)) goto ignore;
24842     if (unlikely(PyDict_SetItemString(globals, "__builtins__", __pyx_b) < 0)) goto ignore;
24843     result_obj = PyRun_String(py_code, Py_file_input, globals, globals);
24844     if (unlikely(!result_obj)) goto ignore;
24845     Py_DECREF(result_obj);
24846     Py_DECREF(globals);
24847     return module;
24848 ignore:
24849     Py_XDECREF(globals);
24850     PyErr_WriteUnraisable(module);
24851     if (unlikely(PyErr_WarnEx(PyExc_RuntimeWarning, "Cython module failed to patch module with custom type", 1) < 0)) {
24852         Py_DECREF(module);
24853         module = NULL;
24854     }
24855 #else
24856     py_code++;
24857 #endif
24858     return module;
24859 }
24860 
24861 /* PatchInspect */
__Pyx_patch_inspect(PyObject * module)24862 static PyObject* __Pyx_patch_inspect(PyObject* module) {
24863 #if defined(__Pyx_Generator_USED) && (!defined(CYTHON_PATCH_INSPECT) || CYTHON_PATCH_INSPECT)
24864     static int inspect_patched = 0;
24865     if (unlikely((!inspect_patched) && module)) {
24866         module = __Pyx_Coroutine_patch_module(
24867             module, ""
24868 "old_types = getattr(_module.isgenerator, '_cython_generator_types', None)\n"
24869 "if old_types is None or not isinstance(old_types, set):\n"
24870 "    old_types = set()\n"
24871 "    def cy_wrap(orig_func, type=type, cython_generator_types=old_types):\n"
24872 "        def cy_isgenerator(obj): return type(obj) in cython_generator_types or orig_func(obj)\n"
24873 "        cy_isgenerator._cython_generator_types = cython_generator_types\n"
24874 "        return cy_isgenerator\n"
24875 "    _module.isgenerator = cy_wrap(_module.isgenerator)\n"
24876 "old_types.add(_cython_generator_type)\n"
24877         );
24878         inspect_patched = 1;
24879     }
24880 #else
24881     if ((0)) return __Pyx_Coroutine_patch_module(module, NULL);
24882 #endif
24883     return module;
24884 }
24885 
24886 /* FetchCommonType */
__Pyx_FetchCommonType(PyTypeObject * type)24887 static PyTypeObject* __Pyx_FetchCommonType(PyTypeObject* type) {
24888     PyObject* fake_module;
24889     PyTypeObject* cached_type = NULL;
24890     fake_module = PyImport_AddModule((char*) "_cython_" CYTHON_ABI);
24891     if (!fake_module) return NULL;
24892     Py_INCREF(fake_module);
24893     cached_type = (PyTypeObject*) PyObject_GetAttrString(fake_module, type->tp_name);
24894     if (cached_type) {
24895         if (!PyType_Check((PyObject*)cached_type)) {
24896             PyErr_Format(PyExc_TypeError,
24897                 "Shared Cython type %.200s is not a type object",
24898                 type->tp_name);
24899             goto bad;
24900         }
24901         if (cached_type->tp_basicsize != type->tp_basicsize) {
24902             PyErr_Format(PyExc_TypeError,
24903                 "Shared Cython type %.200s has the wrong size, try recompiling",
24904                 type->tp_name);
24905             goto bad;
24906         }
24907     } else {
24908         if (!PyErr_ExceptionMatches(PyExc_AttributeError)) goto bad;
24909         PyErr_Clear();
24910         if (PyType_Ready(type) < 0) goto bad;
24911         if (PyObject_SetAttrString(fake_module, type->tp_name, (PyObject*) type) < 0)
24912             goto bad;
24913         Py_INCREF(type);
24914         cached_type = type;
24915     }
24916 done:
24917     Py_DECREF(fake_module);
24918     return cached_type;
24919 bad:
24920     Py_XDECREF(cached_type);
24921     cached_type = NULL;
24922     goto done;
24923 }
24924 
24925 /* CythonFunctionShared */
24926 #include <structmember.h>
24927 static PyObject *
__Pyx_CyFunction_get_doc(__pyx_CyFunctionObject * op,CYTHON_UNUSED void * closure)24928 __Pyx_CyFunction_get_doc(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *closure)
24929 {
24930     if (unlikely(op->func_doc == NULL)) {
24931         if (op->func.m_ml->ml_doc) {
24932 #if PY_MAJOR_VERSION >= 3
24933             op->func_doc = PyUnicode_FromString(op->func.m_ml->ml_doc);
24934 #else
24935             op->func_doc = PyString_FromString(op->func.m_ml->ml_doc);
24936 #endif
24937             if (unlikely(op->func_doc == NULL))
24938                 return NULL;
24939         } else {
24940             Py_INCREF(Py_None);
24941             return Py_None;
24942         }
24943     }
24944     Py_INCREF(op->func_doc);
24945     return op->func_doc;
24946 }
24947 static int
__Pyx_CyFunction_set_doc(__pyx_CyFunctionObject * op,PyObject * value,CYTHON_UNUSED void * context)24948 __Pyx_CyFunction_set_doc(__pyx_CyFunctionObject *op, PyObject *value, CYTHON_UNUSED void *context)
24949 {
24950     PyObject *tmp = op->func_doc;
24951     if (value == NULL) {
24952         value = Py_None;
24953     }
24954     Py_INCREF(value);
24955     op->func_doc = value;
24956     Py_XDECREF(tmp);
24957     return 0;
24958 }
24959 static PyObject *
__Pyx_CyFunction_get_name(__pyx_CyFunctionObject * op,CYTHON_UNUSED void * context)24960 __Pyx_CyFunction_get_name(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *context)
24961 {
24962     if (unlikely(op->func_name == NULL)) {
24963 #if PY_MAJOR_VERSION >= 3
24964         op->func_name = PyUnicode_InternFromString(op->func.m_ml->ml_name);
24965 #else
24966         op->func_name = PyString_InternFromString(op->func.m_ml->ml_name);
24967 #endif
24968         if (unlikely(op->func_name == NULL))
24969             return NULL;
24970     }
24971     Py_INCREF(op->func_name);
24972     return op->func_name;
24973 }
24974 static int
__Pyx_CyFunction_set_name(__pyx_CyFunctionObject * op,PyObject * value,CYTHON_UNUSED void * context)24975 __Pyx_CyFunction_set_name(__pyx_CyFunctionObject *op, PyObject *value, CYTHON_UNUSED void *context)
24976 {
24977     PyObject *tmp;
24978 #if PY_MAJOR_VERSION >= 3
24979     if (unlikely(value == NULL || !PyUnicode_Check(value)))
24980 #else
24981     if (unlikely(value == NULL || !PyString_Check(value)))
24982 #endif
24983     {
24984         PyErr_SetString(PyExc_TypeError,
24985                         "__name__ must be set to a string object");
24986         return -1;
24987     }
24988     tmp = op->func_name;
24989     Py_INCREF(value);
24990     op->func_name = value;
24991     Py_XDECREF(tmp);
24992     return 0;
24993 }
24994 static PyObject *
__Pyx_CyFunction_get_qualname(__pyx_CyFunctionObject * op,CYTHON_UNUSED void * context)24995 __Pyx_CyFunction_get_qualname(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *context)
24996 {
24997     Py_INCREF(op->func_qualname);
24998     return op->func_qualname;
24999 }
25000 static int
__Pyx_CyFunction_set_qualname(__pyx_CyFunctionObject * op,PyObject * value,CYTHON_UNUSED void * context)25001 __Pyx_CyFunction_set_qualname(__pyx_CyFunctionObject *op, PyObject *value, CYTHON_UNUSED void *context)
25002 {
25003     PyObject *tmp;
25004 #if PY_MAJOR_VERSION >= 3
25005     if (unlikely(value == NULL || !PyUnicode_Check(value)))
25006 #else
25007     if (unlikely(value == NULL || !PyString_Check(value)))
25008 #endif
25009     {
25010         PyErr_SetString(PyExc_TypeError,
25011                         "__qualname__ must be set to a string object");
25012         return -1;
25013     }
25014     tmp = op->func_qualname;
25015     Py_INCREF(value);
25016     op->func_qualname = value;
25017     Py_XDECREF(tmp);
25018     return 0;
25019 }
25020 static PyObject *
__Pyx_CyFunction_get_self(__pyx_CyFunctionObject * m,CYTHON_UNUSED void * closure)25021 __Pyx_CyFunction_get_self(__pyx_CyFunctionObject *m, CYTHON_UNUSED void *closure)
25022 {
25023     PyObject *self;
25024     self = m->func_closure;
25025     if (self == NULL)
25026         self = Py_None;
25027     Py_INCREF(self);
25028     return self;
25029 }
25030 static PyObject *
__Pyx_CyFunction_get_dict(__pyx_CyFunctionObject * op,CYTHON_UNUSED void * context)25031 __Pyx_CyFunction_get_dict(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *context)
25032 {
25033     if (unlikely(op->func_dict == NULL)) {
25034         op->func_dict = PyDict_New();
25035         if (unlikely(op->func_dict == NULL))
25036             return NULL;
25037     }
25038     Py_INCREF(op->func_dict);
25039     return op->func_dict;
25040 }
25041 static int
__Pyx_CyFunction_set_dict(__pyx_CyFunctionObject * op,PyObject * value,CYTHON_UNUSED void * context)25042 __Pyx_CyFunction_set_dict(__pyx_CyFunctionObject *op, PyObject *value, CYTHON_UNUSED void *context)
25043 {
25044     PyObject *tmp;
25045     if (unlikely(value == NULL)) {
25046         PyErr_SetString(PyExc_TypeError,
25047                "function's dictionary may not be deleted");
25048         return -1;
25049     }
25050     if (unlikely(!PyDict_Check(value))) {
25051         PyErr_SetString(PyExc_TypeError,
25052                "setting function's dictionary to a non-dict");
25053         return -1;
25054     }
25055     tmp = op->func_dict;
25056     Py_INCREF(value);
25057     op->func_dict = value;
25058     Py_XDECREF(tmp);
25059     return 0;
25060 }
25061 static PyObject *
__Pyx_CyFunction_get_globals(__pyx_CyFunctionObject * op,CYTHON_UNUSED void * context)25062 __Pyx_CyFunction_get_globals(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *context)
25063 {
25064     Py_INCREF(op->func_globals);
25065     return op->func_globals;
25066 }
25067 static PyObject *
__Pyx_CyFunction_get_closure(CYTHON_UNUSED __pyx_CyFunctionObject * op,CYTHON_UNUSED void * context)25068 __Pyx_CyFunction_get_closure(CYTHON_UNUSED __pyx_CyFunctionObject *op, CYTHON_UNUSED void *context)
25069 {
25070     Py_INCREF(Py_None);
25071     return Py_None;
25072 }
25073 static PyObject *
__Pyx_CyFunction_get_code(__pyx_CyFunctionObject * op,CYTHON_UNUSED void * context)25074 __Pyx_CyFunction_get_code(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *context)
25075 {
25076     PyObject* result = (op->func_code) ? op->func_code : Py_None;
25077     Py_INCREF(result);
25078     return result;
25079 }
25080 static int
__Pyx_CyFunction_init_defaults(__pyx_CyFunctionObject * op)25081 __Pyx_CyFunction_init_defaults(__pyx_CyFunctionObject *op) {
25082     int result = 0;
25083     PyObject *res = op->defaults_getter((PyObject *) op);
25084     if (unlikely(!res))
25085         return -1;
25086     #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
25087     op->defaults_tuple = PyTuple_GET_ITEM(res, 0);
25088     Py_INCREF(op->defaults_tuple);
25089     op->defaults_kwdict = PyTuple_GET_ITEM(res, 1);
25090     Py_INCREF(op->defaults_kwdict);
25091     #else
25092     op->defaults_tuple = PySequence_ITEM(res, 0);
25093     if (unlikely(!op->defaults_tuple)) result = -1;
25094     else {
25095         op->defaults_kwdict = PySequence_ITEM(res, 1);
25096         if (unlikely(!op->defaults_kwdict)) result = -1;
25097     }
25098     #endif
25099     Py_DECREF(res);
25100     return result;
25101 }
25102 static int
__Pyx_CyFunction_set_defaults(__pyx_CyFunctionObject * op,PyObject * value,CYTHON_UNUSED void * context)25103 __Pyx_CyFunction_set_defaults(__pyx_CyFunctionObject *op, PyObject* value, CYTHON_UNUSED void *context) {
25104     PyObject* tmp;
25105     if (!value) {
25106         value = Py_None;
25107     } else if (value != Py_None && !PyTuple_Check(value)) {
25108         PyErr_SetString(PyExc_TypeError,
25109                         "__defaults__ must be set to a tuple object");
25110         return -1;
25111     }
25112     Py_INCREF(value);
25113     tmp = op->defaults_tuple;
25114     op->defaults_tuple = value;
25115     Py_XDECREF(tmp);
25116     return 0;
25117 }
25118 static PyObject *
__Pyx_CyFunction_get_defaults(__pyx_CyFunctionObject * op,CYTHON_UNUSED void * context)25119 __Pyx_CyFunction_get_defaults(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *context) {
25120     PyObject* result = op->defaults_tuple;
25121     if (unlikely(!result)) {
25122         if (op->defaults_getter) {
25123             if (__Pyx_CyFunction_init_defaults(op) < 0) return NULL;
25124             result = op->defaults_tuple;
25125         } else {
25126             result = Py_None;
25127         }
25128     }
25129     Py_INCREF(result);
25130     return result;
25131 }
25132 static int
__Pyx_CyFunction_set_kwdefaults(__pyx_CyFunctionObject * op,PyObject * value,CYTHON_UNUSED void * context)25133 __Pyx_CyFunction_set_kwdefaults(__pyx_CyFunctionObject *op, PyObject* value, CYTHON_UNUSED void *context) {
25134     PyObject* tmp;
25135     if (!value) {
25136         value = Py_None;
25137     } else if (value != Py_None && !PyDict_Check(value)) {
25138         PyErr_SetString(PyExc_TypeError,
25139                         "__kwdefaults__ must be set to a dict object");
25140         return -1;
25141     }
25142     Py_INCREF(value);
25143     tmp = op->defaults_kwdict;
25144     op->defaults_kwdict = value;
25145     Py_XDECREF(tmp);
25146     return 0;
25147 }
25148 static PyObject *
__Pyx_CyFunction_get_kwdefaults(__pyx_CyFunctionObject * op,CYTHON_UNUSED void * context)25149 __Pyx_CyFunction_get_kwdefaults(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *context) {
25150     PyObject* result = op->defaults_kwdict;
25151     if (unlikely(!result)) {
25152         if (op->defaults_getter) {
25153             if (__Pyx_CyFunction_init_defaults(op) < 0) return NULL;
25154             result = op->defaults_kwdict;
25155         } else {
25156             result = Py_None;
25157         }
25158     }
25159     Py_INCREF(result);
25160     return result;
25161 }
25162 static int
__Pyx_CyFunction_set_annotations(__pyx_CyFunctionObject * op,PyObject * value,CYTHON_UNUSED void * context)25163 __Pyx_CyFunction_set_annotations(__pyx_CyFunctionObject *op, PyObject* value, CYTHON_UNUSED void *context) {
25164     PyObject* tmp;
25165     if (!value || value == Py_None) {
25166         value = NULL;
25167     } else if (!PyDict_Check(value)) {
25168         PyErr_SetString(PyExc_TypeError,
25169                         "__annotations__ must be set to a dict object");
25170         return -1;
25171     }
25172     Py_XINCREF(value);
25173     tmp = op->func_annotations;
25174     op->func_annotations = value;
25175     Py_XDECREF(tmp);
25176     return 0;
25177 }
25178 static PyObject *
__Pyx_CyFunction_get_annotations(__pyx_CyFunctionObject * op,CYTHON_UNUSED void * context)25179 __Pyx_CyFunction_get_annotations(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *context) {
25180     PyObject* result = op->func_annotations;
25181     if (unlikely(!result)) {
25182         result = PyDict_New();
25183         if (unlikely(!result)) return NULL;
25184         op->func_annotations = result;
25185     }
25186     Py_INCREF(result);
25187     return result;
25188 }
25189 static PyGetSetDef __pyx_CyFunction_getsets[] = {
25190     {(char *) "func_doc", (getter)__Pyx_CyFunction_get_doc, (setter)__Pyx_CyFunction_set_doc, 0, 0},
25191     {(char *) "__doc__",  (getter)__Pyx_CyFunction_get_doc, (setter)__Pyx_CyFunction_set_doc, 0, 0},
25192     {(char *) "func_name", (getter)__Pyx_CyFunction_get_name, (setter)__Pyx_CyFunction_set_name, 0, 0},
25193     {(char *) "__name__", (getter)__Pyx_CyFunction_get_name, (setter)__Pyx_CyFunction_set_name, 0, 0},
25194     {(char *) "__qualname__", (getter)__Pyx_CyFunction_get_qualname, (setter)__Pyx_CyFunction_set_qualname, 0, 0},
25195     {(char *) "__self__", (getter)__Pyx_CyFunction_get_self, 0, 0, 0},
25196     {(char *) "func_dict", (getter)__Pyx_CyFunction_get_dict, (setter)__Pyx_CyFunction_set_dict, 0, 0},
25197     {(char *) "__dict__", (getter)__Pyx_CyFunction_get_dict, (setter)__Pyx_CyFunction_set_dict, 0, 0},
25198     {(char *) "func_globals", (getter)__Pyx_CyFunction_get_globals, 0, 0, 0},
25199     {(char *) "__globals__", (getter)__Pyx_CyFunction_get_globals, 0, 0, 0},
25200     {(char *) "func_closure", (getter)__Pyx_CyFunction_get_closure, 0, 0, 0},
25201     {(char *) "__closure__", (getter)__Pyx_CyFunction_get_closure, 0, 0, 0},
25202     {(char *) "func_code", (getter)__Pyx_CyFunction_get_code, 0, 0, 0},
25203     {(char *) "__code__", (getter)__Pyx_CyFunction_get_code, 0, 0, 0},
25204     {(char *) "func_defaults", (getter)__Pyx_CyFunction_get_defaults, (setter)__Pyx_CyFunction_set_defaults, 0, 0},
25205     {(char *) "__defaults__", (getter)__Pyx_CyFunction_get_defaults, (setter)__Pyx_CyFunction_set_defaults, 0, 0},
25206     {(char *) "__kwdefaults__", (getter)__Pyx_CyFunction_get_kwdefaults, (setter)__Pyx_CyFunction_set_kwdefaults, 0, 0},
25207     {(char *) "__annotations__", (getter)__Pyx_CyFunction_get_annotations, (setter)__Pyx_CyFunction_set_annotations, 0, 0},
25208     {0, 0, 0, 0, 0}
25209 };
25210 static PyMemberDef __pyx_CyFunction_members[] = {
25211     {(char *) "__module__", T_OBJECT, offsetof(PyCFunctionObject, m_module), PY_WRITE_RESTRICTED, 0},
25212     {0, 0, 0,  0, 0}
25213 };
25214 static PyObject *
__Pyx_CyFunction_reduce(__pyx_CyFunctionObject * m,CYTHON_UNUSED PyObject * args)25215 __Pyx_CyFunction_reduce(__pyx_CyFunctionObject *m, CYTHON_UNUSED PyObject *args)
25216 {
25217 #if PY_MAJOR_VERSION >= 3
25218     Py_INCREF(m->func_qualname);
25219     return m->func_qualname;
25220 #else
25221     return PyString_FromString(m->func.m_ml->ml_name);
25222 #endif
25223 }
25224 static PyMethodDef __pyx_CyFunction_methods[] = {
25225     {"__reduce__", (PyCFunction)__Pyx_CyFunction_reduce, METH_VARARGS, 0},
25226     {0, 0, 0, 0}
25227 };
25228 #if PY_VERSION_HEX < 0x030500A0
25229 #define __Pyx_CyFunction_weakreflist(cyfunc) ((cyfunc)->func_weakreflist)
25230 #else
25231 #define __Pyx_CyFunction_weakreflist(cyfunc) ((cyfunc)->func.m_weakreflist)
25232 #endif
__Pyx_CyFunction_Init(__pyx_CyFunctionObject * op,PyMethodDef * ml,int flags,PyObject * qualname,PyObject * closure,PyObject * module,PyObject * globals,PyObject * code)25233 static PyObject *__Pyx_CyFunction_Init(__pyx_CyFunctionObject *op, PyMethodDef *ml, int flags, PyObject* qualname,
25234                                        PyObject *closure, PyObject *module, PyObject* globals, PyObject* code) {
25235     if (unlikely(op == NULL))
25236         return NULL;
25237     op->flags = flags;
25238     __Pyx_CyFunction_weakreflist(op) = NULL;
25239     op->func.m_ml = ml;
25240     op->func.m_self = (PyObject *) op;
25241     Py_XINCREF(closure);
25242     op->func_closure = closure;
25243     Py_XINCREF(module);
25244     op->func.m_module = module;
25245     op->func_dict = NULL;
25246     op->func_name = NULL;
25247     Py_INCREF(qualname);
25248     op->func_qualname = qualname;
25249     op->func_doc = NULL;
25250     op->func_classobj = NULL;
25251     op->func_globals = globals;
25252     Py_INCREF(op->func_globals);
25253     Py_XINCREF(code);
25254     op->func_code = code;
25255     op->defaults_pyobjects = 0;
25256     op->defaults_size = 0;
25257     op->defaults = NULL;
25258     op->defaults_tuple = NULL;
25259     op->defaults_kwdict = NULL;
25260     op->defaults_getter = NULL;
25261     op->func_annotations = NULL;
25262     return (PyObject *) op;
25263 }
25264 static int
__Pyx_CyFunction_clear(__pyx_CyFunctionObject * m)25265 __Pyx_CyFunction_clear(__pyx_CyFunctionObject *m)
25266 {
25267     Py_CLEAR(m->func_closure);
25268     Py_CLEAR(m->func.m_module);
25269     Py_CLEAR(m->func_dict);
25270     Py_CLEAR(m->func_name);
25271     Py_CLEAR(m->func_qualname);
25272     Py_CLEAR(m->func_doc);
25273     Py_CLEAR(m->func_globals);
25274     Py_CLEAR(m->func_code);
25275     Py_CLEAR(m->func_classobj);
25276     Py_CLEAR(m->defaults_tuple);
25277     Py_CLEAR(m->defaults_kwdict);
25278     Py_CLEAR(m->func_annotations);
25279     if (m->defaults) {
25280         PyObject **pydefaults = __Pyx_CyFunction_Defaults(PyObject *, m);
25281         int i;
25282         for (i = 0; i < m->defaults_pyobjects; i++)
25283             Py_XDECREF(pydefaults[i]);
25284         PyObject_Free(m->defaults);
25285         m->defaults = NULL;
25286     }
25287     return 0;
25288 }
__Pyx__CyFunction_dealloc(__pyx_CyFunctionObject * m)25289 static void __Pyx__CyFunction_dealloc(__pyx_CyFunctionObject *m)
25290 {
25291     if (__Pyx_CyFunction_weakreflist(m) != NULL)
25292         PyObject_ClearWeakRefs((PyObject *) m);
25293     __Pyx_CyFunction_clear(m);
25294     PyObject_GC_Del(m);
25295 }
__Pyx_CyFunction_dealloc(__pyx_CyFunctionObject * m)25296 static void __Pyx_CyFunction_dealloc(__pyx_CyFunctionObject *m)
25297 {
25298     PyObject_GC_UnTrack(m);
25299     __Pyx__CyFunction_dealloc(m);
25300 }
__Pyx_CyFunction_traverse(__pyx_CyFunctionObject * m,visitproc visit,void * arg)25301 static int __Pyx_CyFunction_traverse(__pyx_CyFunctionObject *m, visitproc visit, void *arg)
25302 {
25303     Py_VISIT(m->func_closure);
25304     Py_VISIT(m->func.m_module);
25305     Py_VISIT(m->func_dict);
25306     Py_VISIT(m->func_name);
25307     Py_VISIT(m->func_qualname);
25308     Py_VISIT(m->func_doc);
25309     Py_VISIT(m->func_globals);
25310     Py_VISIT(m->func_code);
25311     Py_VISIT(m->func_classobj);
25312     Py_VISIT(m->defaults_tuple);
25313     Py_VISIT(m->defaults_kwdict);
25314     if (m->defaults) {
25315         PyObject **pydefaults = __Pyx_CyFunction_Defaults(PyObject *, m);
25316         int i;
25317         for (i = 0; i < m->defaults_pyobjects; i++)
25318             Py_VISIT(pydefaults[i]);
25319     }
25320     return 0;
25321 }
__Pyx_CyFunction_descr_get(PyObject * func,PyObject * obj,PyObject * type)25322 static PyObject *__Pyx_CyFunction_descr_get(PyObject *func, PyObject *obj, PyObject *type)
25323 {
25324 #if PY_MAJOR_VERSION < 3
25325     __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func;
25326     if (m->flags & __Pyx_CYFUNCTION_STATICMETHOD) {
25327         Py_INCREF(func);
25328         return func;
25329     }
25330     if (m->flags & __Pyx_CYFUNCTION_CLASSMETHOD) {
25331         if (type == NULL)
25332             type = (PyObject *)(Py_TYPE(obj));
25333         return __Pyx_PyMethod_New(func, type, (PyObject *)(Py_TYPE(type)));
25334     }
25335     if (obj == Py_None)
25336         obj = NULL;
25337 #endif
25338     return __Pyx_PyMethod_New(func, obj, type);
25339 }
25340 static PyObject*
__Pyx_CyFunction_repr(__pyx_CyFunctionObject * op)25341 __Pyx_CyFunction_repr(__pyx_CyFunctionObject *op)
25342 {
25343 #if PY_MAJOR_VERSION >= 3
25344     return PyUnicode_FromFormat("<cyfunction %U at %p>",
25345                                 op->func_qualname, (void *)op);
25346 #else
25347     return PyString_FromFormat("<cyfunction %s at %p>",
25348                                PyString_AsString(op->func_qualname), (void *)op);
25349 #endif
25350 }
__Pyx_CyFunction_CallMethod(PyObject * func,PyObject * self,PyObject * arg,PyObject * kw)25351 static PyObject * __Pyx_CyFunction_CallMethod(PyObject *func, PyObject *self, PyObject *arg, PyObject *kw) {
25352     PyCFunctionObject* f = (PyCFunctionObject*)func;
25353     PyCFunction meth = f->m_ml->ml_meth;
25354     Py_ssize_t size;
25355     switch (f->m_ml->ml_flags & (METH_VARARGS | METH_KEYWORDS | METH_NOARGS | METH_O)) {
25356     case METH_VARARGS:
25357         if (likely(kw == NULL || PyDict_Size(kw) == 0))
25358             return (*meth)(self, arg);
25359         break;
25360     case METH_VARARGS | METH_KEYWORDS:
25361         return (*(PyCFunctionWithKeywords)(void*)meth)(self, arg, kw);
25362     case METH_NOARGS:
25363         if (likely(kw == NULL || PyDict_Size(kw) == 0)) {
25364             size = PyTuple_GET_SIZE(arg);
25365             if (likely(size == 0))
25366                 return (*meth)(self, NULL);
25367             PyErr_Format(PyExc_TypeError,
25368                 "%.200s() takes no arguments (%" CYTHON_FORMAT_SSIZE_T "d given)",
25369                 f->m_ml->ml_name, size);
25370             return NULL;
25371         }
25372         break;
25373     case METH_O:
25374         if (likely(kw == NULL || PyDict_Size(kw) == 0)) {
25375             size = PyTuple_GET_SIZE(arg);
25376             if (likely(size == 1)) {
25377                 PyObject *result, *arg0;
25378                 #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
25379                 arg0 = PyTuple_GET_ITEM(arg, 0);
25380                 #else
25381                 arg0 = PySequence_ITEM(arg, 0); if (unlikely(!arg0)) return NULL;
25382                 #endif
25383                 result = (*meth)(self, arg0);
25384                 #if !(CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS)
25385                 Py_DECREF(arg0);
25386                 #endif
25387                 return result;
25388             }
25389             PyErr_Format(PyExc_TypeError,
25390                 "%.200s() takes exactly one argument (%" CYTHON_FORMAT_SSIZE_T "d given)",
25391                 f->m_ml->ml_name, size);
25392             return NULL;
25393         }
25394         break;
25395     default:
25396         PyErr_SetString(PyExc_SystemError, "Bad call flags in "
25397                         "__Pyx_CyFunction_Call. METH_OLDARGS is no "
25398                         "longer supported!");
25399         return NULL;
25400     }
25401     PyErr_Format(PyExc_TypeError, "%.200s() takes no keyword arguments",
25402                  f->m_ml->ml_name);
25403     return NULL;
25404 }
__Pyx_CyFunction_Call(PyObject * func,PyObject * arg,PyObject * kw)25405 static CYTHON_INLINE PyObject *__Pyx_CyFunction_Call(PyObject *func, PyObject *arg, PyObject *kw) {
25406     return __Pyx_CyFunction_CallMethod(func, ((PyCFunctionObject*)func)->m_self, arg, kw);
25407 }
__Pyx_CyFunction_CallAsMethod(PyObject * func,PyObject * args,PyObject * kw)25408 static PyObject *__Pyx_CyFunction_CallAsMethod(PyObject *func, PyObject *args, PyObject *kw) {
25409     PyObject *result;
25410     __pyx_CyFunctionObject *cyfunc = (__pyx_CyFunctionObject *) func;
25411     if ((cyfunc->flags & __Pyx_CYFUNCTION_CCLASS) && !(cyfunc->flags & __Pyx_CYFUNCTION_STATICMETHOD)) {
25412         Py_ssize_t argc;
25413         PyObject *new_args;
25414         PyObject *self;
25415         argc = PyTuple_GET_SIZE(args);
25416         new_args = PyTuple_GetSlice(args, 1, argc);
25417         if (unlikely(!new_args))
25418             return NULL;
25419         self = PyTuple_GetItem(args, 0);
25420         if (unlikely(!self)) {
25421             Py_DECREF(new_args);
25422             return NULL;
25423         }
25424         result = __Pyx_CyFunction_CallMethod(func, self, new_args, kw);
25425         Py_DECREF(new_args);
25426     } else {
25427         result = __Pyx_CyFunction_Call(func, args, kw);
25428     }
25429     return result;
25430 }
25431 static PyTypeObject __pyx_CyFunctionType_type = {
25432     PyVarObject_HEAD_INIT(0, 0)
25433     "cython_function_or_method",
25434     sizeof(__pyx_CyFunctionObject),
25435     0,
25436     (destructor) __Pyx_CyFunction_dealloc,
25437     0,
25438     0,
25439     0,
25440 #if PY_MAJOR_VERSION < 3
25441     0,
25442 #else
25443     0,
25444 #endif
25445     (reprfunc) __Pyx_CyFunction_repr,
25446     0,
25447     0,
25448     0,
25449     0,
25450     __Pyx_CyFunction_CallAsMethod,
25451     0,
25452     0,
25453     0,
25454     0,
25455     Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC,
25456     0,
25457     (traverseproc) __Pyx_CyFunction_traverse,
25458     (inquiry) __Pyx_CyFunction_clear,
25459     0,
25460 #if PY_VERSION_HEX < 0x030500A0
25461     offsetof(__pyx_CyFunctionObject, func_weakreflist),
25462 #else
25463     offsetof(PyCFunctionObject, m_weakreflist),
25464 #endif
25465     0,
25466     0,
25467     __pyx_CyFunction_methods,
25468     __pyx_CyFunction_members,
25469     __pyx_CyFunction_getsets,
25470     0,
25471     0,
25472     __Pyx_CyFunction_descr_get,
25473     0,
25474     offsetof(__pyx_CyFunctionObject, func_dict),
25475     0,
25476     0,
25477     0,
25478     0,
25479     0,
25480     0,
25481     0,
25482     0,
25483     0,
25484     0,
25485     0,
25486     0,
25487 #if PY_VERSION_HEX >= 0x030400a1
25488     0,
25489 #endif
25490 #if PY_VERSION_HEX >= 0x030800b1
25491     0,
25492 #endif
25493 #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
25494     0,
25495 #endif
25496 };
__pyx_CyFunction_init(void)25497 static int __pyx_CyFunction_init(void) {
25498     __pyx_CyFunctionType = __Pyx_FetchCommonType(&__pyx_CyFunctionType_type);
25499     if (unlikely(__pyx_CyFunctionType == NULL)) {
25500         return -1;
25501     }
25502     return 0;
25503 }
__Pyx_CyFunction_InitDefaults(PyObject * func,size_t size,int pyobjects)25504 static CYTHON_INLINE void *__Pyx_CyFunction_InitDefaults(PyObject *func, size_t size, int pyobjects) {
25505     __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func;
25506     m->defaults = PyObject_Malloc(size);
25507     if (unlikely(!m->defaults))
25508         return PyErr_NoMemory();
25509     memset(m->defaults, 0, size);
25510     m->defaults_pyobjects = pyobjects;
25511     m->defaults_size = size;
25512     return m->defaults;
25513 }
__Pyx_CyFunction_SetDefaultsTuple(PyObject * func,PyObject * tuple)25514 static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsTuple(PyObject *func, PyObject *tuple) {
25515     __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func;
25516     m->defaults_tuple = tuple;
25517     Py_INCREF(tuple);
25518 }
__Pyx_CyFunction_SetDefaultsKwDict(PyObject * func,PyObject * dict)25519 static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsKwDict(PyObject *func, PyObject *dict) {
25520     __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func;
25521     m->defaults_kwdict = dict;
25522     Py_INCREF(dict);
25523 }
__Pyx_CyFunction_SetAnnotationsDict(PyObject * func,PyObject * dict)25524 static CYTHON_INLINE void __Pyx_CyFunction_SetAnnotationsDict(PyObject *func, PyObject *dict) {
25525     __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func;
25526     m->func_annotations = dict;
25527     Py_INCREF(dict);
25528 }
25529 
25530 /* CythonFunction */
__Pyx_CyFunction_New(PyMethodDef * ml,int flags,PyObject * qualname,PyObject * closure,PyObject * module,PyObject * globals,PyObject * code)25531 static PyObject *__Pyx_CyFunction_New(PyMethodDef *ml, int flags, PyObject* qualname,
25532                                       PyObject *closure, PyObject *module, PyObject* globals, PyObject* code) {
25533     PyObject *op = __Pyx_CyFunction_Init(
25534         PyObject_GC_New(__pyx_CyFunctionObject, __pyx_CyFunctionType),
25535         ml, flags, qualname, closure, module, globals, code
25536     );
25537     if (likely(op)) {
25538         PyObject_GC_Track(op);
25539     }
25540     return op;
25541 }
25542 
25543 /* CalculateMetaclass */
__Pyx_CalculateMetaclass(PyTypeObject * metaclass,PyObject * bases)25544 static PyObject *__Pyx_CalculateMetaclass(PyTypeObject *metaclass, PyObject *bases) {
25545     Py_ssize_t i, nbases = PyTuple_GET_SIZE(bases);
25546     for (i=0; i < nbases; i++) {
25547         PyTypeObject *tmptype;
25548         PyObject *tmp = PyTuple_GET_ITEM(bases, i);
25549         tmptype = Py_TYPE(tmp);
25550 #if PY_MAJOR_VERSION < 3
25551         if (tmptype == &PyClass_Type)
25552             continue;
25553 #endif
25554         if (!metaclass) {
25555             metaclass = tmptype;
25556             continue;
25557         }
25558         if (PyType_IsSubtype(metaclass, tmptype))
25559             continue;
25560         if (PyType_IsSubtype(tmptype, metaclass)) {
25561             metaclass = tmptype;
25562             continue;
25563         }
25564         PyErr_SetString(PyExc_TypeError,
25565                         "metaclass conflict: "
25566                         "the metaclass of a derived class "
25567                         "must be a (non-strict) subclass "
25568                         "of the metaclasses of all its bases");
25569         return NULL;
25570     }
25571     if (!metaclass) {
25572 #if PY_MAJOR_VERSION < 3
25573         metaclass = &PyClass_Type;
25574 #else
25575         metaclass = &PyType_Type;
25576 #endif
25577     }
25578     Py_INCREF((PyObject*) metaclass);
25579     return (PyObject*) metaclass;
25580 }
25581 
25582 /* Py3ClassCreate */
__Pyx_Py3MetaclassPrepare(PyObject * metaclass,PyObject * bases,PyObject * name,PyObject * qualname,PyObject * mkw,PyObject * modname,PyObject * doc)25583 static PyObject *__Pyx_Py3MetaclassPrepare(PyObject *metaclass, PyObject *bases, PyObject *name,
25584                                            PyObject *qualname, PyObject *mkw, PyObject *modname, PyObject *doc) {
25585     PyObject *ns;
25586     if (metaclass) {
25587         PyObject *prep = __Pyx_PyObject_GetAttrStr(metaclass, __pyx_n_s_prepare);
25588         if (prep) {
25589             PyObject *pargs = PyTuple_Pack(2, name, bases);
25590             if (unlikely(!pargs)) {
25591                 Py_DECREF(prep);
25592                 return NULL;
25593             }
25594             ns = PyObject_Call(prep, pargs, mkw);
25595             Py_DECREF(prep);
25596             Py_DECREF(pargs);
25597         } else {
25598             if (unlikely(!PyErr_ExceptionMatches(PyExc_AttributeError)))
25599                 return NULL;
25600             PyErr_Clear();
25601             ns = PyDict_New();
25602         }
25603     } else {
25604         ns = PyDict_New();
25605     }
25606     if (unlikely(!ns))
25607         return NULL;
25608     if (unlikely(PyObject_SetItem(ns, __pyx_n_s_module_2, modname) < 0)) goto bad;
25609     if (unlikely(PyObject_SetItem(ns, __pyx_n_s_qualname, qualname) < 0)) goto bad;
25610     if (unlikely(doc && PyObject_SetItem(ns, __pyx_n_s_doc, doc) < 0)) goto bad;
25611     return ns;
25612 bad:
25613     Py_DECREF(ns);
25614     return NULL;
25615 }
__Pyx_Py3ClassCreate(PyObject * metaclass,PyObject * name,PyObject * bases,PyObject * dict,PyObject * mkw,int calculate_metaclass,int allow_py2_metaclass)25616 static PyObject *__Pyx_Py3ClassCreate(PyObject *metaclass, PyObject *name, PyObject *bases,
25617                                       PyObject *dict, PyObject *mkw,
25618                                       int calculate_metaclass, int allow_py2_metaclass) {
25619     PyObject *result, *margs;
25620     PyObject *owned_metaclass = NULL;
25621     if (allow_py2_metaclass) {
25622         owned_metaclass = PyObject_GetItem(dict, __pyx_n_s_metaclass);
25623         if (owned_metaclass) {
25624             metaclass = owned_metaclass;
25625         } else if (likely(PyErr_ExceptionMatches(PyExc_KeyError))) {
25626             PyErr_Clear();
25627         } else {
25628             return NULL;
25629         }
25630     }
25631     if (calculate_metaclass && (!metaclass || PyType_Check(metaclass))) {
25632         metaclass = __Pyx_CalculateMetaclass((PyTypeObject*) metaclass, bases);
25633         Py_XDECREF(owned_metaclass);
25634         if (unlikely(!metaclass))
25635             return NULL;
25636         owned_metaclass = metaclass;
25637     }
25638     margs = PyTuple_Pack(3, name, bases, dict);
25639     if (unlikely(!margs)) {
25640         result = NULL;
25641     } else {
25642         result = PyObject_Call(metaclass, margs, mkw);
25643         Py_DECREF(margs);
25644     }
25645     Py_XDECREF(owned_metaclass);
25646     return result;
25647 }
25648 
25649 /* CLineInTraceback */
25650 #ifndef CYTHON_CLINE_IN_TRACEBACK
__Pyx_CLineForTraceback(CYTHON_NCP_UNUSED PyThreadState * tstate,int c_line)25651 static int __Pyx_CLineForTraceback(CYTHON_NCP_UNUSED PyThreadState *tstate, int c_line) {
25652     PyObject *use_cline;
25653     PyObject *ptype, *pvalue, *ptraceback;
25654 #if CYTHON_COMPILING_IN_CPYTHON
25655     PyObject **cython_runtime_dict;
25656 #endif
25657     if (unlikely(!__pyx_cython_runtime)) {
25658         return c_line;
25659     }
25660     __Pyx_ErrFetchInState(tstate, &ptype, &pvalue, &ptraceback);
25661 #if CYTHON_COMPILING_IN_CPYTHON
25662     cython_runtime_dict = _PyObject_GetDictPtr(__pyx_cython_runtime);
25663     if (likely(cython_runtime_dict)) {
25664         __PYX_PY_DICT_LOOKUP_IF_MODIFIED(
25665             use_cline, *cython_runtime_dict,
25666             __Pyx_PyDict_GetItemStr(*cython_runtime_dict, __pyx_n_s_cline_in_traceback))
25667     } else
25668 #endif
25669     {
25670       PyObject *use_cline_obj = __Pyx_PyObject_GetAttrStr(__pyx_cython_runtime, __pyx_n_s_cline_in_traceback);
25671       if (use_cline_obj) {
25672         use_cline = PyObject_Not(use_cline_obj) ? Py_False : Py_True;
25673         Py_DECREF(use_cline_obj);
25674       } else {
25675         PyErr_Clear();
25676         use_cline = NULL;
25677       }
25678     }
25679     if (!use_cline) {
25680         c_line = 0;
25681         PyObject_SetAttr(__pyx_cython_runtime, __pyx_n_s_cline_in_traceback, Py_False);
25682     }
25683     else if (use_cline == Py_False || (use_cline != Py_True && PyObject_Not(use_cline) != 0)) {
25684         c_line = 0;
25685     }
25686     __Pyx_ErrRestoreInState(tstate, ptype, pvalue, ptraceback);
25687     return c_line;
25688 }
25689 #endif
25690 
25691 /* CodeObjectCache */
__pyx_bisect_code_objects(__Pyx_CodeObjectCacheEntry * entries,int count,int code_line)25692 static int __pyx_bisect_code_objects(__Pyx_CodeObjectCacheEntry* entries, int count, int code_line) {
25693     int start = 0, mid = 0, end = count - 1;
25694     if (end >= 0 && code_line > entries[end].code_line) {
25695         return count;
25696     }
25697     while (start < end) {
25698         mid = start + (end - start) / 2;
25699         if (code_line < entries[mid].code_line) {
25700             end = mid;
25701         } else if (code_line > entries[mid].code_line) {
25702              start = mid + 1;
25703         } else {
25704             return mid;
25705         }
25706     }
25707     if (code_line <= entries[mid].code_line) {
25708         return mid;
25709     } else {
25710         return mid + 1;
25711     }
25712 }
__pyx_find_code_object(int code_line)25713 static PyCodeObject *__pyx_find_code_object(int code_line) {
25714     PyCodeObject* code_object;
25715     int pos;
25716     if (unlikely(!code_line) || unlikely(!__pyx_code_cache.entries)) {
25717         return NULL;
25718     }
25719     pos = __pyx_bisect_code_objects(__pyx_code_cache.entries, __pyx_code_cache.count, code_line);
25720     if (unlikely(pos >= __pyx_code_cache.count) || unlikely(__pyx_code_cache.entries[pos].code_line != code_line)) {
25721         return NULL;
25722     }
25723     code_object = __pyx_code_cache.entries[pos].code_object;
25724     Py_INCREF(code_object);
25725     return code_object;
25726 }
__pyx_insert_code_object(int code_line,PyCodeObject * code_object)25727 static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object) {
25728     int pos, i;
25729     __Pyx_CodeObjectCacheEntry* entries = __pyx_code_cache.entries;
25730     if (unlikely(!code_line)) {
25731         return;
25732     }
25733     if (unlikely(!entries)) {
25734         entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Malloc(64*sizeof(__Pyx_CodeObjectCacheEntry));
25735         if (likely(entries)) {
25736             __pyx_code_cache.entries = entries;
25737             __pyx_code_cache.max_count = 64;
25738             __pyx_code_cache.count = 1;
25739             entries[0].code_line = code_line;
25740             entries[0].code_object = code_object;
25741             Py_INCREF(code_object);
25742         }
25743         return;
25744     }
25745     pos = __pyx_bisect_code_objects(__pyx_code_cache.entries, __pyx_code_cache.count, code_line);
25746     if ((pos < __pyx_code_cache.count) && unlikely(__pyx_code_cache.entries[pos].code_line == code_line)) {
25747         PyCodeObject* tmp = entries[pos].code_object;
25748         entries[pos].code_object = code_object;
25749         Py_DECREF(tmp);
25750         return;
25751     }
25752     if (__pyx_code_cache.count == __pyx_code_cache.max_count) {
25753         int new_max = __pyx_code_cache.max_count + 64;
25754         entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Realloc(
25755             __pyx_code_cache.entries, ((size_t)new_max) * sizeof(__Pyx_CodeObjectCacheEntry));
25756         if (unlikely(!entries)) {
25757             return;
25758         }
25759         __pyx_code_cache.entries = entries;
25760         __pyx_code_cache.max_count = new_max;
25761     }
25762     for (i=__pyx_code_cache.count; i>pos; i--) {
25763         entries[i] = entries[i-1];
25764     }
25765     entries[pos].code_line = code_line;
25766     entries[pos].code_object = code_object;
25767     __pyx_code_cache.count++;
25768     Py_INCREF(code_object);
25769 }
25770 
25771 /* AddTraceback */
25772 #include "compile.h"
25773 #include "frameobject.h"
25774 #include "traceback.h"
__Pyx_CreateCodeObjectForTraceback(const char * funcname,int c_line,int py_line,const char * filename)25775 static PyCodeObject* __Pyx_CreateCodeObjectForTraceback(
25776             const char *funcname, int c_line,
25777             int py_line, const char *filename) {
25778     PyCodeObject *py_code = 0;
25779     PyObject *py_srcfile = 0;
25780     PyObject *py_funcname = 0;
25781     #if PY_MAJOR_VERSION < 3
25782     py_srcfile = PyString_FromString(filename);
25783     #else
25784     py_srcfile = PyUnicode_FromString(filename);
25785     #endif
25786     if (!py_srcfile) goto bad;
25787     if (c_line) {
25788         #if PY_MAJOR_VERSION < 3
25789         py_funcname = PyString_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line);
25790         #else
25791         py_funcname = PyUnicode_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line);
25792         #endif
25793     }
25794     else {
25795         #if PY_MAJOR_VERSION < 3
25796         py_funcname = PyString_FromString(funcname);
25797         #else
25798         py_funcname = PyUnicode_FromString(funcname);
25799         #endif
25800     }
25801     if (!py_funcname) goto bad;
25802     py_code = __Pyx_PyCode_New(
25803         0,
25804         0,
25805         0,
25806         0,
25807         0,
25808         __pyx_empty_bytes, /*PyObject *code,*/
25809         __pyx_empty_tuple, /*PyObject *consts,*/
25810         __pyx_empty_tuple, /*PyObject *names,*/
25811         __pyx_empty_tuple, /*PyObject *varnames,*/
25812         __pyx_empty_tuple, /*PyObject *freevars,*/
25813         __pyx_empty_tuple, /*PyObject *cellvars,*/
25814         py_srcfile,   /*PyObject *filename,*/
25815         py_funcname,  /*PyObject *name,*/
25816         py_line,
25817         __pyx_empty_bytes  /*PyObject *lnotab*/
25818     );
25819     Py_DECREF(py_srcfile);
25820     Py_DECREF(py_funcname);
25821     return py_code;
25822 bad:
25823     Py_XDECREF(py_srcfile);
25824     Py_XDECREF(py_funcname);
25825     return NULL;
25826 }
__Pyx_AddTraceback(const char * funcname,int c_line,int py_line,const char * filename)25827 static void __Pyx_AddTraceback(const char *funcname, int c_line,
25828                                int py_line, const char *filename) {
25829     PyCodeObject *py_code = 0;
25830     PyFrameObject *py_frame = 0;
25831     PyThreadState *tstate = __Pyx_PyThreadState_Current;
25832     if (c_line) {
25833         c_line = __Pyx_CLineForTraceback(tstate, c_line);
25834     }
25835     py_code = __pyx_find_code_object(c_line ? -c_line : py_line);
25836     if (!py_code) {
25837         py_code = __Pyx_CreateCodeObjectForTraceback(
25838             funcname, c_line, py_line, filename);
25839         if (!py_code) goto bad;
25840         __pyx_insert_code_object(c_line ? -c_line : py_line, py_code);
25841     }
25842     py_frame = PyFrame_New(
25843         tstate,            /*PyThreadState *tstate,*/
25844         py_code,           /*PyCodeObject *code,*/
25845         __pyx_d,    /*PyObject *globals,*/
25846         0                  /*PyObject *locals*/
25847     );
25848     if (!py_frame) goto bad;
25849     __Pyx_PyFrame_SetLineNumber(py_frame, py_line);
25850     PyTraceBack_Here(py_frame);
25851 bad:
25852     Py_XDECREF(py_code);
25853     Py_XDECREF(py_frame);
25854 }
25855 
25856 /* CIntFromPyVerify */
25857 #define __PYX_VERIFY_RETURN_INT(target_type, func_type, func_value)\
25858     __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, 0)
25859 #define __PYX_VERIFY_RETURN_INT_EXC(target_type, func_type, func_value)\
25860     __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, 1)
25861 #define __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, exc)\
25862     {\
25863         func_type value = func_value;\
25864         if (sizeof(target_type) < sizeof(func_type)) {\
25865             if (unlikely(value != (func_type) (target_type) value)) {\
25866                 func_type zero = 0;\
25867                 if (exc && unlikely(value == (func_type)-1 && PyErr_Occurred()))\
25868                     return (target_type) -1;\
25869                 if (is_unsigned && unlikely(value < zero))\
25870                     goto raise_neg_overflow;\
25871                 else\
25872                     goto raise_overflow;\
25873             }\
25874         }\
25875         return (target_type) value;\
25876     }
25877 
25878 /* CIntToPy */
__Pyx_PyInt_From_long(long value)25879 static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value) {
25880 #ifdef __Pyx_HAS_GCC_DIAGNOSTIC
25881 #pragma GCC diagnostic push
25882 #pragma GCC diagnostic ignored "-Wconversion"
25883 #endif
25884     const long neg_one = (long) -1, const_zero = (long) 0;
25885 #ifdef __Pyx_HAS_GCC_DIAGNOSTIC
25886 #pragma GCC diagnostic pop
25887 #endif
25888     const int is_unsigned = neg_one > const_zero;
25889     if (is_unsigned) {
25890         if (sizeof(long) < sizeof(long)) {
25891             return PyInt_FromLong((long) value);
25892         } else if (sizeof(long) <= sizeof(unsigned long)) {
25893             return PyLong_FromUnsignedLong((unsigned long) value);
25894 #ifdef HAVE_LONG_LONG
25895         } else if (sizeof(long) <= sizeof(unsigned PY_LONG_LONG)) {
25896             return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
25897 #endif
25898         }
25899     } else {
25900         if (sizeof(long) <= sizeof(long)) {
25901             return PyInt_FromLong((long) value);
25902 #ifdef HAVE_LONG_LONG
25903         } else if (sizeof(long) <= sizeof(PY_LONG_LONG)) {
25904             return PyLong_FromLongLong((PY_LONG_LONG) value);
25905 #endif
25906         }
25907     }
25908     {
25909         int one = 1; int little = (int)*(unsigned char *)&one;
25910         unsigned char *bytes = (unsigned char *)&value;
25911         return _PyLong_FromByteArray(bytes, sizeof(long),
25912                                      little, !is_unsigned);
25913     }
25914 }
25915 
25916 /* CIntFromPy */
__Pyx_PyInt_As_int(PyObject * x)25917 static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *x) {
25918 #ifdef __Pyx_HAS_GCC_DIAGNOSTIC
25919 #pragma GCC diagnostic push
25920 #pragma GCC diagnostic ignored "-Wconversion"
25921 #endif
25922     const int neg_one = (int) -1, const_zero = (int) 0;
25923 #ifdef __Pyx_HAS_GCC_DIAGNOSTIC
25924 #pragma GCC diagnostic pop
25925 #endif
25926     const int is_unsigned = neg_one > const_zero;
25927 #if PY_MAJOR_VERSION < 3
25928     if (likely(PyInt_Check(x))) {
25929         if (sizeof(int) < sizeof(long)) {
25930             __PYX_VERIFY_RETURN_INT(int, long, PyInt_AS_LONG(x))
25931         } else {
25932             long val = PyInt_AS_LONG(x);
25933             if (is_unsigned && unlikely(val < 0)) {
25934                 goto raise_neg_overflow;
25935             }
25936             return (int) val;
25937         }
25938     } else
25939 #endif
25940     if (likely(PyLong_Check(x))) {
25941         if (is_unsigned) {
25942 #if CYTHON_USE_PYLONG_INTERNALS
25943             const digit* digits = ((PyLongObject*)x)->ob_digit;
25944             switch (Py_SIZE(x)) {
25945                 case  0: return (int) 0;
25946                 case  1: __PYX_VERIFY_RETURN_INT(int, digit, digits[0])
25947                 case 2:
25948                     if (8 * sizeof(int) > 1 * PyLong_SHIFT) {
25949                         if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
25950                             __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
25951                         } else if (8 * sizeof(int) >= 2 * PyLong_SHIFT) {
25952                             return (int) (((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0]));
25953                         }
25954                     }
25955                     break;
25956                 case 3:
25957                     if (8 * sizeof(int) > 2 * PyLong_SHIFT) {
25958                         if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
25959                             __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
25960                         } else if (8 * sizeof(int) >= 3 * PyLong_SHIFT) {
25961                             return (int) (((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]));
25962                         }
25963                     }
25964                     break;
25965                 case 4:
25966                     if (8 * sizeof(int) > 3 * PyLong_SHIFT) {
25967                         if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
25968                             __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
25969                         } else if (8 * sizeof(int) >= 4 * PyLong_SHIFT) {
25970                             return (int) (((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]));
25971                         }
25972                     }
25973                     break;
25974             }
25975 #endif
25976 #if CYTHON_COMPILING_IN_CPYTHON
25977             if (unlikely(Py_SIZE(x) < 0)) {
25978                 goto raise_neg_overflow;
25979             }
25980 #else
25981             {
25982                 int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
25983                 if (unlikely(result < 0))
25984                     return (int) -1;
25985                 if (unlikely(result == 1))
25986                     goto raise_neg_overflow;
25987             }
25988 #endif
25989             if (sizeof(int) <= sizeof(unsigned long)) {
25990                 __PYX_VERIFY_RETURN_INT_EXC(int, unsigned long, PyLong_AsUnsignedLong(x))
25991 #ifdef HAVE_LONG_LONG
25992             } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) {
25993                 __PYX_VERIFY_RETURN_INT_EXC(int, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
25994 #endif
25995             }
25996         } else {
25997 #if CYTHON_USE_PYLONG_INTERNALS
25998             const digit* digits = ((PyLongObject*)x)->ob_digit;
25999             switch (Py_SIZE(x)) {
26000                 case  0: return (int) 0;
26001                 case -1: __PYX_VERIFY_RETURN_INT(int, sdigit, (sdigit) (-(sdigit)digits[0]))
26002                 case  1: __PYX_VERIFY_RETURN_INT(int,  digit, +digits[0])
26003                 case -2:
26004                     if (8 * sizeof(int) - 1 > 1 * PyLong_SHIFT) {
26005                         if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
26006                             __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
26007                         } else if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT) {
26008                             return (int) (((int)-1)*(((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
26009                         }
26010                     }
26011                     break;
26012                 case 2:
26013                     if (8 * sizeof(int) > 1 * PyLong_SHIFT) {
26014                         if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
26015                             __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
26016                         } else if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT) {
26017                             return (int) ((((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
26018                         }
26019                     }
26020                     break;
26021                 case -3:
26022                     if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT) {
26023                         if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
26024                             __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
26025                         } else if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT) {
26026                             return (int) (((int)-1)*(((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
26027                         }
26028                     }
26029                     break;
26030                 case 3:
26031                     if (8 * sizeof(int) > 2 * PyLong_SHIFT) {
26032                         if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
26033                             __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
26034                         } else if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT) {
26035                             return (int) ((((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
26036                         }
26037                     }
26038                     break;
26039                 case -4:
26040                     if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT) {
26041                         if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
26042                             __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
26043                         } else if (8 * sizeof(int) - 1 > 4 * PyLong_SHIFT) {
26044                             return (int) (((int)-1)*(((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
26045                         }
26046                     }
26047                     break;
26048                 case 4:
26049                     if (8 * sizeof(int) > 3 * PyLong_SHIFT) {
26050                         if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
26051                             __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
26052                         } else if (8 * sizeof(int) - 1 > 4 * PyLong_SHIFT) {
26053                             return (int) ((((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
26054                         }
26055                     }
26056                     break;
26057             }
26058 #endif
26059             if (sizeof(int) <= sizeof(long)) {
26060                 __PYX_VERIFY_RETURN_INT_EXC(int, long, PyLong_AsLong(x))
26061 #ifdef HAVE_LONG_LONG
26062             } else if (sizeof(int) <= sizeof(PY_LONG_LONG)) {
26063                 __PYX_VERIFY_RETURN_INT_EXC(int, PY_LONG_LONG, PyLong_AsLongLong(x))
26064 #endif
26065             }
26066         }
26067         {
26068 #if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray)
26069             PyErr_SetString(PyExc_RuntimeError,
26070                             "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers");
26071 #else
26072             int val;
26073             PyObject *v = __Pyx_PyNumber_IntOrLong(x);
26074  #if PY_MAJOR_VERSION < 3
26075             if (likely(v) && !PyLong_Check(v)) {
26076                 PyObject *tmp = v;
26077                 v = PyNumber_Long(tmp);
26078                 Py_DECREF(tmp);
26079             }
26080  #endif
26081             if (likely(v)) {
26082                 int one = 1; int is_little = (int)*(unsigned char *)&one;
26083                 unsigned char *bytes = (unsigned char *)&val;
26084                 int ret = _PyLong_AsByteArray((PyLongObject *)v,
26085                                               bytes, sizeof(val),
26086                                               is_little, !is_unsigned);
26087                 Py_DECREF(v);
26088                 if (likely(!ret))
26089                     return val;
26090             }
26091 #endif
26092             return (int) -1;
26093         }
26094     } else {
26095         int val;
26096         PyObject *tmp = __Pyx_PyNumber_IntOrLong(x);
26097         if (!tmp) return (int) -1;
26098         val = __Pyx_PyInt_As_int(tmp);
26099         Py_DECREF(tmp);
26100         return val;
26101     }
26102 raise_overflow:
26103     PyErr_SetString(PyExc_OverflowError,
26104         "value too large to convert to int");
26105     return (int) -1;
26106 raise_neg_overflow:
26107     PyErr_SetString(PyExc_OverflowError,
26108         "can't convert negative value to int");
26109     return (int) -1;
26110 }
26111 
26112 /* CIntToPy */
__Pyx_PyInt_From_int(int value)26113 static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value) {
26114 #ifdef __Pyx_HAS_GCC_DIAGNOSTIC
26115 #pragma GCC diagnostic push
26116 #pragma GCC diagnostic ignored "-Wconversion"
26117 #endif
26118     const int neg_one = (int) -1, const_zero = (int) 0;
26119 #ifdef __Pyx_HAS_GCC_DIAGNOSTIC
26120 #pragma GCC diagnostic pop
26121 #endif
26122     const int is_unsigned = neg_one > const_zero;
26123     if (is_unsigned) {
26124         if (sizeof(int) < sizeof(long)) {
26125             return PyInt_FromLong((long) value);
26126         } else if (sizeof(int) <= sizeof(unsigned long)) {
26127             return PyLong_FromUnsignedLong((unsigned long) value);
26128 #ifdef HAVE_LONG_LONG
26129         } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) {
26130             return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
26131 #endif
26132         }
26133     } else {
26134         if (sizeof(int) <= sizeof(long)) {
26135             return PyInt_FromLong((long) value);
26136 #ifdef HAVE_LONG_LONG
26137         } else if (sizeof(int) <= sizeof(PY_LONG_LONG)) {
26138             return PyLong_FromLongLong((PY_LONG_LONG) value);
26139 #endif
26140         }
26141     }
26142     {
26143         int one = 1; int little = (int)*(unsigned char *)&one;
26144         unsigned char *bytes = (unsigned char *)&value;
26145         return _PyLong_FromByteArray(bytes, sizeof(int),
26146                                      little, !is_unsigned);
26147     }
26148 }
26149 
26150 /* CIntFromPy */
__Pyx_PyInt_As_long(PyObject * x)26151 static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *x) {
26152 #ifdef __Pyx_HAS_GCC_DIAGNOSTIC
26153 #pragma GCC diagnostic push
26154 #pragma GCC diagnostic ignored "-Wconversion"
26155 #endif
26156     const long neg_one = (long) -1, const_zero = (long) 0;
26157 #ifdef __Pyx_HAS_GCC_DIAGNOSTIC
26158 #pragma GCC diagnostic pop
26159 #endif
26160     const int is_unsigned = neg_one > const_zero;
26161 #if PY_MAJOR_VERSION < 3
26162     if (likely(PyInt_Check(x))) {
26163         if (sizeof(long) < sizeof(long)) {
26164             __PYX_VERIFY_RETURN_INT(long, long, PyInt_AS_LONG(x))
26165         } else {
26166             long val = PyInt_AS_LONG(x);
26167             if (is_unsigned && unlikely(val < 0)) {
26168                 goto raise_neg_overflow;
26169             }
26170             return (long) val;
26171         }
26172     } else
26173 #endif
26174     if (likely(PyLong_Check(x))) {
26175         if (is_unsigned) {
26176 #if CYTHON_USE_PYLONG_INTERNALS
26177             const digit* digits = ((PyLongObject*)x)->ob_digit;
26178             switch (Py_SIZE(x)) {
26179                 case  0: return (long) 0;
26180                 case  1: __PYX_VERIFY_RETURN_INT(long, digit, digits[0])
26181                 case 2:
26182                     if (8 * sizeof(long) > 1 * PyLong_SHIFT) {
26183                         if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
26184                             __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
26185                         } else if (8 * sizeof(long) >= 2 * PyLong_SHIFT) {
26186                             return (long) (((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0]));
26187                         }
26188                     }
26189                     break;
26190                 case 3:
26191                     if (8 * sizeof(long) > 2 * PyLong_SHIFT) {
26192                         if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
26193                             __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
26194                         } else if (8 * sizeof(long) >= 3 * PyLong_SHIFT) {
26195                             return (long) (((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]));
26196                         }
26197                     }
26198                     break;
26199                 case 4:
26200                     if (8 * sizeof(long) > 3 * PyLong_SHIFT) {
26201                         if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
26202                             __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
26203                         } else if (8 * sizeof(long) >= 4 * PyLong_SHIFT) {
26204                             return (long) (((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]));
26205                         }
26206                     }
26207                     break;
26208             }
26209 #endif
26210 #if CYTHON_COMPILING_IN_CPYTHON
26211             if (unlikely(Py_SIZE(x) < 0)) {
26212                 goto raise_neg_overflow;
26213             }
26214 #else
26215             {
26216                 int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
26217                 if (unlikely(result < 0))
26218                     return (long) -1;
26219                 if (unlikely(result == 1))
26220                     goto raise_neg_overflow;
26221             }
26222 #endif
26223             if (sizeof(long) <= sizeof(unsigned long)) {
26224                 __PYX_VERIFY_RETURN_INT_EXC(long, unsigned long, PyLong_AsUnsignedLong(x))
26225 #ifdef HAVE_LONG_LONG
26226             } else if (sizeof(long) <= sizeof(unsigned PY_LONG_LONG)) {
26227                 __PYX_VERIFY_RETURN_INT_EXC(long, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
26228 #endif
26229             }
26230         } else {
26231 #if CYTHON_USE_PYLONG_INTERNALS
26232             const digit* digits = ((PyLongObject*)x)->ob_digit;
26233             switch (Py_SIZE(x)) {
26234                 case  0: return (long) 0;
26235                 case -1: __PYX_VERIFY_RETURN_INT(long, sdigit, (sdigit) (-(sdigit)digits[0]))
26236                 case  1: __PYX_VERIFY_RETURN_INT(long,  digit, +digits[0])
26237                 case -2:
26238                     if (8 * sizeof(long) - 1 > 1 * PyLong_SHIFT) {
26239                         if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
26240                             __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
26241                         } else if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) {
26242                             return (long) (((long)-1)*(((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0])));
26243                         }
26244                     }
26245                     break;
26246                 case 2:
26247                     if (8 * sizeof(long) > 1 * PyLong_SHIFT) {
26248                         if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
26249                             __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
26250                         } else if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) {
26251                             return (long) ((((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0])));
26252                         }
26253                     }
26254                     break;
26255                 case -3:
26256                     if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) {
26257                         if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
26258                             __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
26259                         } else if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) {
26260                             return (long) (((long)-1)*(((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])));
26261                         }
26262                     }
26263                     break;
26264                 case 3:
26265                     if (8 * sizeof(long) > 2 * PyLong_SHIFT) {
26266                         if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
26267                             __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
26268                         } else if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) {
26269                             return (long) ((((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])));
26270                         }
26271                     }
26272                     break;
26273                 case -4:
26274                     if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) {
26275                         if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
26276                             __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
26277                         } else if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) {
26278                             return (long) (((long)-1)*(((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])));
26279                         }
26280                     }
26281                     break;
26282                 case 4:
26283                     if (8 * sizeof(long) > 3 * PyLong_SHIFT) {
26284                         if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
26285                             __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
26286                         } else if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) {
26287                             return (long) ((((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])));
26288                         }
26289                     }
26290                     break;
26291             }
26292 #endif
26293             if (sizeof(long) <= sizeof(long)) {
26294                 __PYX_VERIFY_RETURN_INT_EXC(long, long, PyLong_AsLong(x))
26295 #ifdef HAVE_LONG_LONG
26296             } else if (sizeof(long) <= sizeof(PY_LONG_LONG)) {
26297                 __PYX_VERIFY_RETURN_INT_EXC(long, PY_LONG_LONG, PyLong_AsLongLong(x))
26298 #endif
26299             }
26300         }
26301         {
26302 #if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray)
26303             PyErr_SetString(PyExc_RuntimeError,
26304                             "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers");
26305 #else
26306             long val;
26307             PyObject *v = __Pyx_PyNumber_IntOrLong(x);
26308  #if PY_MAJOR_VERSION < 3
26309             if (likely(v) && !PyLong_Check(v)) {
26310                 PyObject *tmp = v;
26311                 v = PyNumber_Long(tmp);
26312                 Py_DECREF(tmp);
26313             }
26314  #endif
26315             if (likely(v)) {
26316                 int one = 1; int is_little = (int)*(unsigned char *)&one;
26317                 unsigned char *bytes = (unsigned char *)&val;
26318                 int ret = _PyLong_AsByteArray((PyLongObject *)v,
26319                                               bytes, sizeof(val),
26320                                               is_little, !is_unsigned);
26321                 Py_DECREF(v);
26322                 if (likely(!ret))
26323                     return val;
26324             }
26325 #endif
26326             return (long) -1;
26327         }
26328     } else {
26329         long val;
26330         PyObject *tmp = __Pyx_PyNumber_IntOrLong(x);
26331         if (!tmp) return (long) -1;
26332         val = __Pyx_PyInt_As_long(tmp);
26333         Py_DECREF(tmp);
26334         return val;
26335     }
26336 raise_overflow:
26337     PyErr_SetString(PyExc_OverflowError,
26338         "value too large to convert to long");
26339     return (long) -1;
26340 raise_neg_overflow:
26341     PyErr_SetString(PyExc_OverflowError,
26342         "can't convert negative value to long");
26343     return (long) -1;
26344 }
26345 
26346 /* CheckBinaryVersion */
__Pyx_check_binary_version(void)26347 static int __Pyx_check_binary_version(void) {
26348     char ctversion[4], rtversion[4];
26349     PyOS_snprintf(ctversion, 4, "%d.%d", PY_MAJOR_VERSION, PY_MINOR_VERSION);
26350     PyOS_snprintf(rtversion, 4, "%s", Py_GetVersion());
26351     if (ctversion[0] != rtversion[0] || ctversion[2] != rtversion[2]) {
26352         char message[200];
26353         PyOS_snprintf(message, sizeof(message),
26354                       "compiletime version %s of module '%.100s' "
26355                       "does not match runtime version %s",
26356                       ctversion, __Pyx_MODULE_NAME, rtversion);
26357         return PyErr_WarnEx(NULL, message, 1);
26358     }
26359     return 0;
26360 }
26361 
26362 /* InitStrings */
__Pyx_InitStrings(__Pyx_StringTabEntry * t)26363 static int __Pyx_InitStrings(__Pyx_StringTabEntry *t) {
26364     while (t->p) {
26365         #if PY_MAJOR_VERSION < 3
26366         if (t->is_unicode) {
26367             *t->p = PyUnicode_DecodeUTF8(t->s, t->n - 1, NULL);
26368         } else if (t->intern) {
26369             *t->p = PyString_InternFromString(t->s);
26370         } else {
26371             *t->p = PyString_FromStringAndSize(t->s, t->n - 1);
26372         }
26373         #else
26374         if (t->is_unicode | t->is_str) {
26375             if (t->intern) {
26376                 *t->p = PyUnicode_InternFromString(t->s);
26377             } else if (t->encoding) {
26378                 *t->p = PyUnicode_Decode(t->s, t->n - 1, t->encoding, NULL);
26379             } else {
26380                 *t->p = PyUnicode_FromStringAndSize(t->s, t->n - 1);
26381             }
26382         } else {
26383             *t->p = PyBytes_FromStringAndSize(t->s, t->n - 1);
26384         }
26385         #endif
26386         if (!*t->p)
26387             return -1;
26388         if (PyObject_Hash(*t->p) == -1)
26389             return -1;
26390         ++t;
26391     }
26392     return 0;
26393 }
26394 
__Pyx_PyUnicode_FromString(const char * c_str)26395 static CYTHON_INLINE PyObject* __Pyx_PyUnicode_FromString(const char* c_str) {
26396     return __Pyx_PyUnicode_FromStringAndSize(c_str, (Py_ssize_t)strlen(c_str));
26397 }
__Pyx_PyObject_AsString(PyObject * o)26398 static CYTHON_INLINE const char* __Pyx_PyObject_AsString(PyObject* o) {
26399     Py_ssize_t ignore;
26400     return __Pyx_PyObject_AsStringAndSize(o, &ignore);
26401 }
26402 #if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT
26403 #if !CYTHON_PEP393_ENABLED
__Pyx_PyUnicode_AsStringAndSize(PyObject * o,Py_ssize_t * length)26404 static const char* __Pyx_PyUnicode_AsStringAndSize(PyObject* o, Py_ssize_t *length) {
26405     char* defenc_c;
26406     PyObject* defenc = _PyUnicode_AsDefaultEncodedString(o, NULL);
26407     if (!defenc) return NULL;
26408     defenc_c = PyBytes_AS_STRING(defenc);
26409 #if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII
26410     {
26411         char* end = defenc_c + PyBytes_GET_SIZE(defenc);
26412         char* c;
26413         for (c = defenc_c; c < end; c++) {
26414             if ((unsigned char) (*c) >= 128) {
26415                 PyUnicode_AsASCIIString(o);
26416                 return NULL;
26417             }
26418         }
26419     }
26420 #endif
26421     *length = PyBytes_GET_SIZE(defenc);
26422     return defenc_c;
26423 }
26424 #else
__Pyx_PyUnicode_AsStringAndSize(PyObject * o,Py_ssize_t * length)26425 static CYTHON_INLINE const char* __Pyx_PyUnicode_AsStringAndSize(PyObject* o, Py_ssize_t *length) {
26426     if (unlikely(__Pyx_PyUnicode_READY(o) == -1)) return NULL;
26427 #if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII
26428     if (likely(PyUnicode_IS_ASCII(o))) {
26429         *length = PyUnicode_GET_LENGTH(o);
26430         return PyUnicode_AsUTF8(o);
26431     } else {
26432         PyUnicode_AsASCIIString(o);
26433         return NULL;
26434     }
26435 #else
26436     return PyUnicode_AsUTF8AndSize(o, length);
26437 #endif
26438 }
26439 #endif
26440 #endif
__Pyx_PyObject_AsStringAndSize(PyObject * o,Py_ssize_t * length)26441 static CYTHON_INLINE const char* __Pyx_PyObject_AsStringAndSize(PyObject* o, Py_ssize_t *length) {
26442 #if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT
26443     if (
26444 #if PY_MAJOR_VERSION < 3 && __PYX_DEFAULT_STRING_ENCODING_IS_ASCII
26445             __Pyx_sys_getdefaultencoding_not_ascii &&
26446 #endif
26447             PyUnicode_Check(o)) {
26448         return __Pyx_PyUnicode_AsStringAndSize(o, length);
26449     } else
26450 #endif
26451 #if (!CYTHON_COMPILING_IN_PYPY) || (defined(PyByteArray_AS_STRING) && defined(PyByteArray_GET_SIZE))
26452     if (PyByteArray_Check(o)) {
26453         *length = PyByteArray_GET_SIZE(o);
26454         return PyByteArray_AS_STRING(o);
26455     } else
26456 #endif
26457     {
26458         char* result;
26459         int r = PyBytes_AsStringAndSize(o, &result, length);
26460         if (unlikely(r < 0)) {
26461             return NULL;
26462         } else {
26463             return result;
26464         }
26465     }
26466 }
__Pyx_PyObject_IsTrue(PyObject * x)26467 static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject* x) {
26468    int is_true = x == Py_True;
26469    if (is_true | (x == Py_False) | (x == Py_None)) return is_true;
26470    else return PyObject_IsTrue(x);
26471 }
__Pyx_PyObject_IsTrueAndDecref(PyObject * x)26472 static CYTHON_INLINE int __Pyx_PyObject_IsTrueAndDecref(PyObject* x) {
26473     int retval;
26474     if (unlikely(!x)) return -1;
26475     retval = __Pyx_PyObject_IsTrue(x);
26476     Py_DECREF(x);
26477     return retval;
26478 }
__Pyx_PyNumber_IntOrLongWrongResultType(PyObject * result,const char * type_name)26479 static PyObject* __Pyx_PyNumber_IntOrLongWrongResultType(PyObject* result, const char* type_name) {
26480 #if PY_MAJOR_VERSION >= 3
26481     if (PyLong_Check(result)) {
26482         if (PyErr_WarnFormat(PyExc_DeprecationWarning, 1,
26483                 "__int__ returned non-int (type %.200s).  "
26484                 "The ability to return an instance of a strict subclass of int "
26485                 "is deprecated, and may be removed in a future version of Python.",
26486                 Py_TYPE(result)->tp_name)) {
26487             Py_DECREF(result);
26488             return NULL;
26489         }
26490         return result;
26491     }
26492 #endif
26493     PyErr_Format(PyExc_TypeError,
26494                  "__%.4s__ returned non-%.4s (type %.200s)",
26495                  type_name, type_name, Py_TYPE(result)->tp_name);
26496     Py_DECREF(result);
26497     return NULL;
26498 }
__Pyx_PyNumber_IntOrLong(PyObject * x)26499 static CYTHON_INLINE PyObject* __Pyx_PyNumber_IntOrLong(PyObject* x) {
26500 #if CYTHON_USE_TYPE_SLOTS
26501   PyNumberMethods *m;
26502 #endif
26503   const char *name = NULL;
26504   PyObject *res = NULL;
26505 #if PY_MAJOR_VERSION < 3
26506   if (likely(PyInt_Check(x) || PyLong_Check(x)))
26507 #else
26508   if (likely(PyLong_Check(x)))
26509 #endif
26510     return __Pyx_NewRef(x);
26511 #if CYTHON_USE_TYPE_SLOTS
26512   m = Py_TYPE(x)->tp_as_number;
26513   #if PY_MAJOR_VERSION < 3
26514   if (m && m->nb_int) {
26515     name = "int";
26516     res = m->nb_int(x);
26517   }
26518   else if (m && m->nb_long) {
26519     name = "long";
26520     res = m->nb_long(x);
26521   }
26522   #else
26523   if (likely(m && m->nb_int)) {
26524     name = "int";
26525     res = m->nb_int(x);
26526   }
26527   #endif
26528 #else
26529   if (!PyBytes_CheckExact(x) && !PyUnicode_CheckExact(x)) {
26530     res = PyNumber_Int(x);
26531   }
26532 #endif
26533   if (likely(res)) {
26534 #if PY_MAJOR_VERSION < 3
26535     if (unlikely(!PyInt_Check(res) && !PyLong_Check(res))) {
26536 #else
26537     if (unlikely(!PyLong_CheckExact(res))) {
26538 #endif
26539         return __Pyx_PyNumber_IntOrLongWrongResultType(res, name);
26540     }
26541   }
26542   else if (!PyErr_Occurred()) {
26543     PyErr_SetString(PyExc_TypeError,
26544                     "an integer is required");
26545   }
26546   return res;
26547 }
26548 static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject* b) {
26549   Py_ssize_t ival;
26550   PyObject *x;
26551 #if PY_MAJOR_VERSION < 3
26552   if (likely(PyInt_CheckExact(b))) {
26553     if (sizeof(Py_ssize_t) >= sizeof(long))
26554         return PyInt_AS_LONG(b);
26555     else
26556         return PyInt_AsSsize_t(b);
26557   }
26558 #endif
26559   if (likely(PyLong_CheckExact(b))) {
26560     #if CYTHON_USE_PYLONG_INTERNALS
26561     const digit* digits = ((PyLongObject*)b)->ob_digit;
26562     const Py_ssize_t size = Py_SIZE(b);
26563     if (likely(__Pyx_sst_abs(size) <= 1)) {
26564         ival = likely(size) ? digits[0] : 0;
26565         if (size == -1) ival = -ival;
26566         return ival;
26567     } else {
26568       switch (size) {
26569          case 2:
26570            if (8 * sizeof(Py_ssize_t) > 2 * PyLong_SHIFT) {
26571              return (Py_ssize_t) (((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
26572            }
26573            break;
26574          case -2:
26575            if (8 * sizeof(Py_ssize_t) > 2 * PyLong_SHIFT) {
26576              return -(Py_ssize_t) (((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
26577            }
26578            break;
26579          case 3:
26580            if (8 * sizeof(Py_ssize_t) > 3 * PyLong_SHIFT) {
26581              return (Py_ssize_t) (((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
26582            }
26583            break;
26584          case -3:
26585            if (8 * sizeof(Py_ssize_t) > 3 * PyLong_SHIFT) {
26586              return -(Py_ssize_t) (((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
26587            }
26588            break;
26589          case 4:
26590            if (8 * sizeof(Py_ssize_t) > 4 * PyLong_SHIFT) {
26591              return (Py_ssize_t) (((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
26592            }
26593            break;
26594          case -4:
26595            if (8 * sizeof(Py_ssize_t) > 4 * PyLong_SHIFT) {
26596              return -(Py_ssize_t) (((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
26597            }
26598            break;
26599       }
26600     }
26601     #endif
26602     return PyLong_AsSsize_t(b);
26603   }
26604   x = PyNumber_Index(b);
26605   if (!x) return -1;
26606   ival = PyInt_AsSsize_t(x);
26607   Py_DECREF(x);
26608   return ival;
26609 }
26610 static CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(long b) {
26611   return b ? __Pyx_NewRef(Py_True) : __Pyx_NewRef(Py_False);
26612 }
26613 static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t ival) {
26614     return PyInt_FromSize_t(ival);
26615 }
26616 
26617 
26618 #endif /* Py_PYTHON_H */
26619