Thanks EKR.
You're welcome. Tracking down this bug was fun.
Myself, I think the code really does intend to use a different
variable __proxied but the call to hasattr() causes recursion. I just
changed it as follows:
def _set_proxied(const):
return _CONST_PROXY[const.value.__class__]
The following hack seems to repair the damage. Change:
def _set_proxied(const):
if not hasattr(const, '__proxied'):
const.__proxied = _CONST_PROXY[const.value.__class__]
return const.__proxied
To:
def _set_proxied(const):
const._proxied = _CONST_PROXY[const.value.__class__]
I can now demonstrate exactly where the unbound recursion happens.
The following is a debugger that warns me when the stack gets too big. It is a
subclass of pdb, but it overrides two methods in bdb.py. Here it is::
class debugger(pdb.Pdb):
def
The failing code appears to be _set_proxied in inference.py.
def _set_proxied(const):
if not hasattr(const, '__proxied'):
const.__proxied = _CONST_PROXY[const.value.__class__]
return const.__proxied
nodes.Const._proxied = property(_set_proxied)
The call to hasattr can call
I get this on all my files on Windows as well:
pylint 0.19.0,
astng 0.19.3, common 0.46.0
Python 2.6.4 (r264:75708, Oct 26 2009, 08:23:19) [MSC v.1500 32 bit (Intel)]
I do not believe pylint is working as well as it should. It is missing
serious errors, for example, undefined methods.
--
/leoFileCommands.py pylint.out
Messages to console, but not to pylint.out.
I'd call this a show-stopper. Please do something about this.
Edward K. Ream
--
pylint spews Exception RuntimeError: maximum recursion depth exceeded while
calling a Python object, when parsing