mirror of https://github.com/python/cpython
Patch 702620 by Donovan Preston: Fix AE inheritance.
This commit is contained in:
parent
82ad32ec39
commit
7e0bc112b8
|
@ -502,11 +502,11 @@ class ComponentItem(SelectableItem):
|
|||
# Derived classes *must* set the *class attribute* 'want' to some constant
|
||||
# Also, dictionaries _propdict and _elemdict must be set to map property
|
||||
# and element names to the correct classes
|
||||
|
||||
|
||||
_propdict = {}
|
||||
_elemdict = {}
|
||||
def __init__(self, which, fr = None):
|
||||
SelectableItem.__init__(self, self.want, which, fr)
|
||||
self._propdict = {}
|
||||
self._elemdict = {}
|
||||
|
||||
def __repr__(self):
|
||||
if not self.fr:
|
||||
|
|
|
@ -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…
Reference in New Issue