Eolian: function name part deduplication
This commit is contained in:
parent
8e9827e8f2
commit
8bd6c3e778
|
@ -99,6 +99,16 @@ def conv_cls_name(name):
|
|||
return name, name
|
||||
|
||||
|
||||
def conv_func_name(prefix, func_name):
|
||||
p = prefix.split("_")
|
||||
f = func_name.split("_")
|
||||
if p[-1] == f[0]:
|
||||
p.pop()
|
||||
prefix = "_".join(p)
|
||||
func_name = "_".join(f)
|
||||
return "_".join((prefix, func_name))
|
||||
|
||||
|
||||
class Generator(object):
|
||||
|
||||
tab = " "
|
||||
|
@ -234,9 +244,9 @@ class Method(object):
|
|||
self.py_name += "_"
|
||||
|
||||
if self.eo_prefix:
|
||||
self.c_name = "_".join((self.eo_prefix, func.name))
|
||||
self.c_name = conv_func_name(self.eo_prefix, func.name)
|
||||
elif self.legacy_prefix:
|
||||
self.c_name = "_".join((self.legacy_prefix, func.name))
|
||||
self.c_name = conv_func_name(self.legacy_prefix, func.name)
|
||||
else:
|
||||
raise ValueError("No prefix found for function %r" % (func))
|
||||
|
||||
|
@ -450,9 +460,11 @@ class Property(object):
|
|||
m = self.setter = Method(eo_prefix, legacy_prefix)
|
||||
m.py_name = "__set__"
|
||||
if eo_prefix:
|
||||
m.c_name = "_".join((eo_prefix, func.name, "set"))
|
||||
fname = conv_func_name(eo_prefix, func.name)
|
||||
m.c_name = "_".join((fname, "set"))
|
||||
elif legacy_prefix:
|
||||
m.c_name = "_".join((legacy_prefix, func.name, "set"))
|
||||
fname = conv_func_name(legacy_prefix, func.name)
|
||||
m.c_name = "_".join((fname, "set"))
|
||||
else:
|
||||
raise ValueError("No prefix found for %r" % (func))
|
||||
py_params = []
|
||||
|
@ -496,9 +508,11 @@ class Property(object):
|
|||
m = self.getter = Method(eo_prefix, legacy_prefix)
|
||||
m.py_name = "__get__"
|
||||
if eo_prefix:
|
||||
m.c_name = "_".join((eo_prefix, func.name, "get"))
|
||||
fname = conv_func_name(eo_prefix, func.name)
|
||||
m.c_name = "_".join((fname, "get"))
|
||||
elif legacy_prefix:
|
||||
m.c_name = "_".join((legacy_prefix, func.name, "get"))
|
||||
fname = conv_func_name(legacy_prefix, func.name)
|
||||
m.c_name = "_".join((fname, "get"))
|
||||
else:
|
||||
raise ValueError("No prefix found for %r" % (func))
|
||||
for p in func.property_values_list:
|
||||
|
@ -689,9 +703,9 @@ class Class(object):
|
|||
eo_prefix = self.eo_prefix = cls.eo_prefix
|
||||
legacy_prefix = self.legacy_prefix = cls.legacy_prefix
|
||||
|
||||
if eo_prefix:
|
||||
if eo_prefix and eo_prefix != "null":
|
||||
prefix = eo_prefix
|
||||
elif legacy_prefix:
|
||||
elif legacy_prefix and legacy_prefix != "null":
|
||||
log.warn("Class %s has legacy prefix" % (cls.name))
|
||||
prefix = legacy_prefix
|
||||
else:
|
||||
|
@ -732,7 +746,8 @@ class Class(object):
|
|||
if eo_prefix:
|
||||
self.default_ctor = EoDefaultConstructor(eo_prefix, None)
|
||||
else:
|
||||
self.default_ctor = LegacyDefaultConstructor(None, legacy_prefix)
|
||||
self.default_ctor = LegacyDefaultConstructor(
|
||||
None, legacy_prefix)
|
||||
|
||||
props = cls.functions_list_get(eolian.FunctionType.PROPERTY)
|
||||
for prop in props:
|
||||
|
|
Loading…
Reference in New Issue