[javascriptlint-commit] SF.net SVN: javascriptlint:[384] trunk
Status: Beta
Brought to you by:
matthiasmiller
From: <mat...@us...> - 2018-06-10 20:27:00
|
Revision: 384 http://sourceforge.net/p/javascriptlint/code/384 Author: matthiasmiller Date: 2018-06-10 20:26:59 +0000 (Sun, 10 Jun 2018) Log Message: ----------- Fix the useless assignment warning. Modified Paths: -------------- trunk/javascriptlint/lintwarnings.py trunk/tests/warnings/useless_assign.js Modified: trunk/javascriptlint/lintwarnings.py =================================================================== --- trunk/javascriptlint/lintwarnings.py 2018-06-10 20:17:00 UTC (rev 383) +++ trunk/javascriptlint/lintwarnings.py 2018-06-10 20:26:59 UTC (rev 384) @@ -473,11 +473,14 @@ @lookfor((tok.NAME, op.SETNAME)) def useless_assign(node): - if node.parent.kind == tok.ASSIGN: + if node.parent.kind == tok.ASSIGN and node.parent.opcode not in (op.MUL, op.ADD, op.LSH, + op.RSH, op.URSH): assert node.node_index == 0 value = node.parent.kids[1] elif node.parent.kind == tok.VAR: value = node.kids[0] + else: + value = None if value and value.kind == tok.NAME and node.atom == value.atom: raise LintWarning(node) Modified: trunk/tests/warnings/useless_assign.js =================================================================== --- trunk/tests/warnings/useless_assign.js 2018-06-10 20:17:00 UTC (rev 383) +++ trunk/tests/warnings/useless_assign.js 2018-06-10 20:26:59 UTC (rev 384) @@ -17,4 +17,19 @@ for (; ; i = i) { /*warning:useless_assign*/ i++; } + + // These could conceivably be meaningful. + i *= i; + i += i; + i >>= i; + i <<= i; + i >>>= i; + + // These make no sense. + i /= i; /*warning:useless_assign*/ + i -= i; /*warning:useless_assign*/ + i %= i; /*warning:useless_assign*/ + i &= i; /*warning:useless_assign*/ + i |= i; /*warning:useless_assign*/ + i ^= i; /*warning:useless_assign*/ } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |