mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
PY-871 False positive on unused inspection
This commit is contained in:
@@ -9,6 +9,7 @@ import com.intellij.openapi.util.Ref;
|
||||
import com.intellij.psi.PsiElement;
|
||||
import com.intellij.psi.util.PsiTreeUtil;
|
||||
import com.jetbrains.python.psi.*;
|
||||
import com.jetbrains.python.psi.impl.PyAssignmentStatementNavigator;
|
||||
import com.jetbrains.python.psi.impl.PyAugAssignmentStatementNavigator;
|
||||
import com.jetbrains.python.psi.impl.PyImportStatementNavigator;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
@@ -127,7 +128,9 @@ public class PyControlFlowBuilder extends PyRecursiveElementVisitor {
|
||||
final PsiElement[] children = node.getChildren();
|
||||
// Case of non qualified reference
|
||||
if (children.length == 0){
|
||||
final ReadWriteInstruction instruction = new ReadWriteInstruction(myBuilder, node, node.getName(), ReadWriteInstruction.ACCESS.WRITE);
|
||||
final ReadWriteInstruction.ACCESS access = node.getParent() instanceof PySliceExpression
|
||||
? ReadWriteInstruction.ACCESS.READ : ReadWriteInstruction.ACCESS.WRITE;
|
||||
final ReadWriteInstruction instruction = new ReadWriteInstruction(myBuilder, node, node.getName(), access);
|
||||
myBuilder.addNode(instruction);
|
||||
myBuilder.checkPending(instruction);
|
||||
} else {
|
||||
|
||||
@@ -15,11 +15,15 @@ public class PyAssignmentStatementNavigator {
|
||||
|
||||
@Nullable
|
||||
public static PyAssignmentStatement getStatementByTarget(final PsiElement element){
|
||||
final PyAssignmentStatement parent = PsiTreeUtil.getParentOfType(element, PyAssignmentStatement.class);
|
||||
if (parent != null){
|
||||
for (PyExpression expression : parent.getTargets()) {
|
||||
if (element == expression || element.getParent() == expression){
|
||||
return parent;
|
||||
final PyAssignmentStatement assignmentStatement = PsiTreeUtil.getParentOfType(element, PyAssignmentStatement.class);
|
||||
if (assignmentStatement != null){
|
||||
for (PyExpression expression : assignmentStatement.getTargets()) {
|
||||
if (element == expression){
|
||||
return assignmentStatement;
|
||||
}
|
||||
final PsiElement parent = element.getParent();
|
||||
if (parent == expression && parent.getFirstChild() == element && parent.getLastChild() == element){
|
||||
return assignmentStatement;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user