[issue26204] compiler: don't emit LOAD_CONST instructions for constant statements?
STINNER Victor
report at bugs.python.org
Tue Jan 26 17:33:02 EST 2016
STINNER Victor added the comment:
> Maybe the compiler should emit a warning to say that the code doesn't make sense at all and is ignored?
Oh ok, now I recall a similar issue that I posted 3 years ago: issue #17516, "Dead code should be removed".
Example of suspicious code:
def func():
func2(),
func() calls func2() and then create a tuple of 1 item with the func2() result. See my changeset 33bdd0a985b9 for examples in the Python source code. The parser or compiler should maybe help to developer to catch such strange code :-)
In some cases, the code really contains code explicitly dead:
def test_func():
return
do_real_stuff()
do_real_stuff() is never called. Maybe it was a deliberate choice, maybe it was a mistake in a very old code base, bug introduced after multiple refactoring, and high turn over in a team? Again, we should emit a warning on such case?
Hum, these warnings have a larger scope than this specific issue (don't emit LOAD_CONST for constants in expressions).
See also the related thread on python-dev for the specific case of triple quoted strings ("""string"""): https://mail.python.org/pipermail/python-dev/2013-March/124925.html
It was admitted that it's a convenient way to insert a comment and it must not emit a warning (at least, not by default?)
----------
_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue26204>
_______________________________________
More information about the Python-bugs-list
mailing list