"Unused assignment" false positive
This commit is contained in:
Oleg Shpynov
2010-03-02 18:59:31 +03:00
parent b5321c6f63
commit ca49f980a8
4 changed files with 22 additions and 1 deletions
@@ -47,6 +47,16 @@ public class PyControlFlowBuilder extends PyRecursiveElementVisitor {
super.visitPyStatement(node);
}
@Override
public void visitPySubscriptionExpression(PySubscriptionExpression node) {
myBuilder.startNode(node);
node.getOperand().accept(this);
final PyExpression expression = node.getIndexExpression();
if (expression != null) {
expression.accept(this);
}
}
@Override
public void visitPyReferenceExpression(final PyReferenceExpression node) {
final PyExpression qualifier = node.getQualifier();
@@ -17,6 +17,7 @@
package com.jetbrains.python.psi;
import com.intellij.psi.PsiElementVisitor;
import com.jetbrains.python.psi.impl.PySubscriptionExpressionImpl;
/**
* Visitor for python-specific nodes.
@@ -225,4 +226,8 @@ public class PyElementVisitor extends PsiElementVisitor {
public void visitPyStarExpression(PyStarExpression node) {
visitPyExpression(node);
}
public void visitPySubscriptionExpression(PySubscriptionExpression node) {
visitPyExpression(node);
}
}
@@ -58,7 +58,7 @@ public class PyAssignmentStatementImpl extends PyElementImpl implements PyAssign
List<PyExpression> candidates = PyUtil.flattenedParens(psi_nodes); // put all possible tuples to one level
List<PyExpression> targets = new ArrayList<PyExpression>();
for (PyExpression expr : candidates) { // only filter out targets
if (expr instanceof PyTargetExpression) {
if (expr instanceof PyTargetExpression || expr instanceof PySubscriptionExpression) {
targets.add(expr);
}
}
@@ -18,6 +18,7 @@ package com.jetbrains.python.psi.impl;
import com.intellij.lang.ASTNode;
import com.jetbrains.python.PyElementTypes;
import com.jetbrains.python.psi.PyElementVisitor;
import com.jetbrains.python.psi.PyExpression;
import com.jetbrains.python.psi.PySubscriptionExpression;
import com.jetbrains.python.psi.types.PyType;
@@ -44,6 +45,11 @@ public class PySubscriptionExpressionImpl extends PyElementImpl implements PySub
return childToPsi(PyElementTypes.EXPRESSIONS, 1);
}
@Override
protected void acceptPyVisitor(final PyElementVisitor pyVisitor) {
pyVisitor.visitPySubscriptionExpression(this);
}
public PyType getType() {
return null;
}