mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
reduce scope of simplifiable boolean expression inspection (PY-1021)
This commit is contained in:
@@ -7,16 +7,13 @@ import com.intellij.psi.tree.TokenSet;
|
||||
import com.jetbrains.python.PyBundle;
|
||||
import com.jetbrains.python.PyTokenTypes;
|
||||
import com.jetbrains.python.actions.SimplifyBooleanCheckQuickFix;
|
||||
import com.jetbrains.python.psi.PyBinaryExpression;
|
||||
import com.jetbrains.python.psi.PyElementType;
|
||||
import com.jetbrains.python.psi.*;
|
||||
import org.jetbrains.annotations.Nls;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
/**
|
||||
* Created by IntelliJ IDEA.
|
||||
* Author: Alexey.Ivanov
|
||||
* Date: 17.03.2010
|
||||
* Time: 18:03:35
|
||||
* @author Alexey.Ivanov
|
||||
*/
|
||||
public class PySimplifyBooleanCheckInspection extends LocalInspectionTool {
|
||||
@Nls
|
||||
@@ -56,14 +53,31 @@ public class PySimplifyBooleanCheckInspection extends LocalInspectionTool {
|
||||
super(holder);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void visitPyConditionalStatementPart(PyConditionalStatementPart node) {
|
||||
super.visitPyConditionalStatementPart(node);
|
||||
final PyExpression condition = node.getCondition();
|
||||
if (condition != null) {
|
||||
condition.accept(new PyBinaryExpressionVisitor(getHolder()));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static class PyBinaryExpressionVisitor extends PyInspectionVisitor {
|
||||
public PyBinaryExpressionVisitor(@Nullable final ProblemsHolder holder) {
|
||||
super(holder);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void visitPyBinaryExpression(PyBinaryExpression node) {
|
||||
super.visitPyBinaryExpression(node);
|
||||
final PyElementType operator = node.getOperator();
|
||||
if (node.getRightExpression() == null) {
|
||||
final PyExpression rightExpression = node.getRightExpression();
|
||||
if (rightExpression == null) {
|
||||
return;
|
||||
}
|
||||
final String leftExpressionText = node.getLeftExpression().getText();
|
||||
final String rightExpressionText = node.getRightExpression().getText();
|
||||
final String rightExpressionText = rightExpression.getText();
|
||||
if ("True".equals(leftExpressionText) ||
|
||||
"False".equals(leftExpressionText) ||
|
||||
"True".equals(rightExpressionText) ||
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package com.jetbrains.python.psi;
|
||||
|
||||
import com.intellij.psi.PsiElementVisitor;
|
||||
import com.jetbrains.python.psi.impl.PyConditionalStatementPartImpl;
|
||||
|
||||
/**
|
||||
* Visitor for python-specific nodes.
|
||||
@@ -221,4 +222,8 @@ public class PyElementVisitor extends PsiElementVisitor {
|
||||
public void visitPyStarImportElement(PyStarImportElement node) {
|
||||
visitPyElement(node);
|
||||
}
|
||||
|
||||
public void visitPyConditionalStatementPart(PyConditionalStatementPart node) {
|
||||
visitPyElement(node);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package com.jetbrains.python.psi.impl;
|
||||
|
||||
import com.jetbrains.python.psi.PyConditionalStatementPart;
|
||||
import com.jetbrains.python.psi.PyElementVisitor;
|
||||
import com.jetbrains.python.psi.PyExpression;
|
||||
import com.jetbrains.python.PyElementTypes;
|
||||
import com.intellij.lang.ASTNode;
|
||||
@@ -21,4 +22,9 @@ public abstract class PyConditionalStatementPartImpl extends PyStatementPartImpl
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void acceptPyVisitor(PyElementVisitor pyVisitor) {
|
||||
pyVisitor.visitPyConditionalStatementPart(this);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user