mirror of
https://github.com/python/cpython.git
synced 2025-10-28 17:13:08 +00:00
Patch 702620 by Donovan Preston: Fix AE inheritance.
This commit is contained in:
parent
82ad32ec39
commit
7e0bc112b8
2 changed files with 10 additions and 9 deletions
|
|
@ -321,14 +321,15 @@ def compileaete(aete, resinfo, fname):
|
|||
fp.write("from %s import *\n"%modname)
|
||||
|
||||
# Generate property dicts and element dicts for all types declared in this module
|
||||
fp.write("def getbaseclasses(v):\n")
|
||||
fp.write("\tif hasattr(v, '_superclassnames') and not hasattr(v, '_propdict'):\n")
|
||||
fp.write("\ndef getbaseclasses(v):\n")
|
||||
fp.write("\tif not v._propdict:\n")
|
||||
fp.write("\t\tv._propdict = {}\n")
|
||||
fp.write("\t\tv._elemdict = {}\n")
|
||||
fp.write("\t\tfor superclass in v._superclassnames:\n")
|
||||
## fp.write("\t\t\tgetbaseclasses(superclass)\n")
|
||||
fp.write("\t\t\tv._propdict.update(getattr(eval(superclass), '_privpropdict', {}))\n")
|
||||
fp.write("\t\t\tv._elemdict.update(getattr(eval(superclass), '_privelemdict', {}))\n")
|
||||
fp.write("\t\tfor superclassname in getattr(v, '_superclassnames', []):\n")
|
||||
fp.write("\t\t\tsuperclass = eval(superclassname)\n")
|
||||
fp.write("\t\t\tgetbaseclasses(superclass)\n")
|
||||
fp.write("\t\t\tv._propdict.update(getattr(superclass, '_propdict', {}))\n")
|
||||
fp.write("\t\t\tv._elemdict.update(getattr(superclass, '_elemdict', {}))\n")
|
||||
fp.write("\t\tv._propdict.update(v._privpropdict)\n")
|
||||
fp.write("\t\tv._elemdict.update(v._privelemdict)\n")
|
||||
fp.write("\n")
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue