special-case __weakref__ when determining C-safe identifiers (related to #252)
authorLisandro Dalcin <dalcinl@gmail.com>
Fri, 3 Apr 2009 00:23:19 +0000 (21:23 -0300)
committerLisandro Dalcin <dalcinl@gmail.com>
Fri, 3 Apr 2009 00:23:19 +0000 (21:23 -0300)
Cython/Compiler/Symtab.py

index 885c9ad1c0bfdddec163fdb5934126b904a0455a..fdcbe2bbce8ed9a221c6989f98736c01134653db 100644 (file)
@@ -32,8 +32,11 @@ iso_c99_keywords = set(
     '_Bool', '_Complex'', _Imaginary', 'inline', 'restrict'])
 
 def c_safe_identifier(cname):
-    # There are some C limitations on struct entry names. 
-    if (cname[:2] == '__' and not cname.startswith(Naming.pyrex_prefix)) or cname in iso_c99_keywords:
+    # There are some C limitations on struct entry names.
+    if ((cname[:2] == '__'
+         and not (cname.startswith(Naming.pyrex_prefix)
+                  or cname == '__weakref__'))
+        or cname in iso_c99_keywords):
         cname = Naming.pyrex_prefix + cname
     return cname