mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
(no message)
This commit is contained in:
+11
-6
@@ -5,6 +5,7 @@ import com.intellij.codeInspection.ProblemDescriptor;
|
||||
import com.intellij.psi.*;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.siyeh.ig.*;
|
||||
import com.siyeh.ig.psiutils.WellFormednessUtils;
|
||||
|
||||
public class AssignmentUsedAsConditionInspection extends ExpressionInspection {
|
||||
private final AssignmentUsedAsConditionFix fix = new AssignmentUsedAsConditionFix();
|
||||
@@ -51,14 +52,18 @@ public class AssignmentUsedAsConditionInspection extends ExpressionInspection {
|
||||
|
||||
public void visitAssignmentExpression(PsiAssignmentExpression expression) {
|
||||
super.visitAssignmentExpression(expression);
|
||||
if(!WellFormednessUtils.isWellFormed(expression)){
|
||||
return;
|
||||
}
|
||||
final PsiJavaToken sign = expression.getOperationSign();
|
||||
if (sign == null) {
|
||||
return;
|
||||
}
|
||||
if (!sign.getTokenType().equals(JavaTokenType.EQ)) {
|
||||
final PsiElement parent = expression.getParent();
|
||||
if(parent == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
final PsiElement parent = expression.getParent();
|
||||
if (parent instanceof PsiIfStatement) {
|
||||
checkIfStatementCondition((PsiIfStatement) parent, expression);
|
||||
}
|
||||
@@ -75,28 +80,28 @@ public class AssignmentUsedAsConditionInspection extends ExpressionInspection {
|
||||
|
||||
private void checkIfStatementCondition(PsiIfStatement ifStatement, PsiAssignmentExpression expression) {
|
||||
final PsiExpression condition = ifStatement.getCondition();
|
||||
if (condition != null && condition.equals(expression)) {
|
||||
if (expression.equals(condition)) {
|
||||
registerError(expression);
|
||||
}
|
||||
}
|
||||
|
||||
private void checkDoWhileStatementCondition(PsiDoWhileStatement doWhileStatement, PsiAssignmentExpression expression) {
|
||||
final PsiExpression condition = doWhileStatement.getCondition();
|
||||
if (condition != null && condition.equals(expression)) {
|
||||
if(expression.equals(condition)){
|
||||
registerError(expression);
|
||||
}
|
||||
}
|
||||
|
||||
private void checkForStatementCondition(PsiForStatement forStatement, PsiAssignmentExpression expression) {
|
||||
final PsiExpression condition = forStatement.getCondition();
|
||||
if (condition != null && condition.equals(expression)) {
|
||||
if(expression.equals(condition)){
|
||||
registerError(expression);
|
||||
}
|
||||
}
|
||||
|
||||
private void checkWhileStatementCondition(PsiWhileStatement whileStatement, PsiAssignmentExpression expression) {
|
||||
final PsiExpression condition = whileStatement.getCondition();
|
||||
if (condition != null && condition.equals(expression)) {
|
||||
if(expression.equals(condition)){
|
||||
registerError(expression);
|
||||
}
|
||||
}
|
||||
|
||||
+23
-12
@@ -10,43 +10,54 @@ import com.siyeh.ig.ExpressionInspection;
|
||||
import com.siyeh.ig.GroupNames;
|
||||
import com.siyeh.ig.psiutils.ComparisonUtils;
|
||||
import com.siyeh.ig.psiutils.TypeUtils;
|
||||
import com.siyeh.ig.psiutils.WellFormednessUtils;
|
||||
|
||||
public class ComparisonOfShortAndCharInspection extends ExpressionInspection {
|
||||
public class ComparisonOfShortAndCharInspection extends ExpressionInspection{
|
||||
|
||||
public String getDisplayName() {
|
||||
public String getDisplayName(){
|
||||
return "Comparison of short and char values";
|
||||
}
|
||||
|
||||
public String getGroupDisplayName() {
|
||||
public String getGroupDisplayName(){
|
||||
return GroupNames.BUGS_GROUP_NAME;
|
||||
}
|
||||
|
||||
public String buildErrorString(PsiElement location) {
|
||||
public String buildErrorString(PsiElement location){
|
||||
return "Equality comparison (#ref) of short and char values #loc";
|
||||
}
|
||||
|
||||
public BaseInspectionVisitor createVisitor(InspectionManager inspectionManager, boolean onTheFly) {
|
||||
return new ComparisonOfShortAndCharVisitor(this, inspectionManager, onTheFly);
|
||||
public BaseInspectionVisitor createVisitor(
|
||||
InspectionManager inspectionManager, boolean onTheFly){
|
||||
return new ComparisonOfShortAndCharVisitor(this, inspectionManager,
|
||||
onTheFly);
|
||||
}
|
||||
|
||||
private static class ComparisonOfShortAndCharVisitor extends BaseInspectionVisitor {
|
||||
private static class ComparisonOfShortAndCharVisitor
|
||||
extends BaseInspectionVisitor{
|
||||
private static final String SHORT = "short";
|
||||
private static final String CHAR = "char";
|
||||
|
||||
private ComparisonOfShortAndCharVisitor(BaseInspection inspection, InspectionManager inspectionManager, boolean isOnTheFly) {
|
||||
private ComparisonOfShortAndCharVisitor(BaseInspection inspection,
|
||||
InspectionManager inspectionManager,
|
||||
boolean isOnTheFly){
|
||||
super(inspection, inspectionManager, isOnTheFly);
|
||||
}
|
||||
|
||||
public void visitBinaryExpression(PsiBinaryExpression expression) {
|
||||
public void visitBinaryExpression(PsiBinaryExpression expression){
|
||||
super.visitBinaryExpression(expression);
|
||||
if (!ComparisonUtils.isEqualityComparison(expression)) {
|
||||
if(!WellFormednessUtils.isWellFormed(expression)){
|
||||
return;
|
||||
}
|
||||
if(!ComparisonUtils.isEqualityComparison(expression)){
|
||||
return;
|
||||
}
|
||||
final PsiExpression lhs = expression.getLOperand();
|
||||
final PsiExpression rhs = expression.getROperand();
|
||||
if (TypeUtils.expressionHasType(SHORT, lhs) && TypeUtils.expressionHasType(CHAR, rhs)) {
|
||||
if(TypeUtils.expressionHasType(SHORT, lhs) &&
|
||||
TypeUtils.expressionHasType(CHAR, rhs)){
|
||||
registerError(expression);
|
||||
} else if (TypeUtils.expressionHasType(CHAR, lhs) && TypeUtils.expressionHasType(SHORT, rhs)) {
|
||||
} else if(TypeUtils.expressionHasType(CHAR, lhs) &&
|
||||
TypeUtils.expressionHasType(SHORT, rhs)){
|
||||
registerError(expression);
|
||||
}
|
||||
}
|
||||
|
||||
+9
-7
@@ -1,12 +1,16 @@
|
||||
package com.siyeh.ig.bugs;
|
||||
|
||||
import com.intellij.codeInspection.InspectionManager;
|
||||
import com.intellij.psi.*;
|
||||
import com.intellij.psi.tree.IElementType;
|
||||
import com.intellij.psi.PsiBinaryExpression;
|
||||
import com.intellij.psi.PsiElement;
|
||||
import com.intellij.psi.PsiExpression;
|
||||
import com.intellij.psi.PsiType;
|
||||
import com.siyeh.ig.BaseInspection;
|
||||
import com.siyeh.ig.BaseInspectionVisitor;
|
||||
import com.siyeh.ig.ExpressionInspection;
|
||||
import com.siyeh.ig.GroupNames;
|
||||
import com.siyeh.ig.psiutils.ComparisonUtils;
|
||||
import com.siyeh.ig.psiutils.WellFormednessUtils;
|
||||
|
||||
public class FloatingPointEqualityInspection extends ExpressionInspection {
|
||||
|
||||
@@ -33,13 +37,11 @@ public class FloatingPointEqualityInspection extends ExpressionInspection {
|
||||
|
||||
public void visitBinaryExpression(PsiBinaryExpression expression) {
|
||||
super.visitBinaryExpression(expression);
|
||||
final PsiJavaToken sign = expression.getOperationSign();
|
||||
if (sign == null) {
|
||||
if(!WellFormednessUtils.isWellFormed(expression)){
|
||||
return;
|
||||
}
|
||||
final IElementType tokenType = sign.getTokenType();
|
||||
if (!(tokenType.equals(JavaTokenType.EQEQ) ||
|
||||
tokenType.equals(JavaTokenType.NE))) {
|
||||
if(!ComparisonUtils.isEqualityComparison(expression))
|
||||
{
|
||||
return;
|
||||
}
|
||||
final PsiExpression lhs = expression.getLOperand();
|
||||
|
||||
@@ -9,6 +9,8 @@ import com.siyeh.ig.BaseInspection;
|
||||
import com.siyeh.ig.BaseInspectionVisitor;
|
||||
import com.siyeh.ig.ExpressionInspection;
|
||||
import com.siyeh.ig.GroupNames;
|
||||
import com.siyeh.ig.psiutils.WellFormednessUtils;
|
||||
import com.siyeh.ig.psiutils.ComparisonUtils;
|
||||
|
||||
public class IncompatibleMaskInspection extends ExpressionInspection {
|
||||
|
||||
@@ -44,18 +46,16 @@ public class IncompatibleMaskInspection extends ExpressionInspection {
|
||||
|
||||
public void visitBinaryExpression(PsiBinaryExpression expression) {
|
||||
super.visitBinaryExpression(expression);
|
||||
if(!WellFormednessUtils.isWellFormed(expression)){
|
||||
return;
|
||||
}
|
||||
if(!ComparisonUtils.isEqualityComparison(expression)){
|
||||
return;
|
||||
}
|
||||
final PsiType expressionType = expression.getType();
|
||||
if (expressionType == null) {
|
||||
return;
|
||||
}
|
||||
final PsiJavaToken sign = expression.getOperationSign();
|
||||
if (sign == null) {
|
||||
return;
|
||||
}
|
||||
final IElementType tokenType = sign.getTokenType();
|
||||
if (!tokenType.equals(JavaTokenType.EQEQ) && !tokenType.equals(JavaTokenType.NE)) {
|
||||
return;
|
||||
}
|
||||
final PsiExpression rhs = expression.getROperand();
|
||||
final PsiExpression strippedRhs = stripExpression(rhs);
|
||||
if (strippedRhs == null) {
|
||||
|
||||
+4
-9
@@ -8,9 +8,10 @@ import com.siyeh.ig.BaseInspectionVisitor;
|
||||
import com.siyeh.ig.ExpressionInspection;
|
||||
import com.siyeh.ig.GroupNames;
|
||||
import com.siyeh.ig.psiutils.ExpectedTypeUtils;
|
||||
import com.siyeh.ig.psiutils.WellFormednessUtils;
|
||||
|
||||
import java.util.Set;
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
|
||||
public class IntegerDivisionInFloatingPointContextInspection extends ExpressionInspection {
|
||||
private static final Set s_integralTypes = new HashSet(10);
|
||||
@@ -52,26 +53,20 @@ public class IntegerDivisionInFloatingPointContextInspection extends ExpressionI
|
||||
|
||||
public void visitBinaryExpression(PsiBinaryExpression expression) {
|
||||
super.visitBinaryExpression(expression);
|
||||
final PsiJavaToken sign = expression.getOperationSign();
|
||||
if (sign == null) {
|
||||
if(!WellFormednessUtils.isWellFormed(expression)){
|
||||
return;
|
||||
}
|
||||
final PsiJavaToken sign = expression.getOperationSign();
|
||||
final IElementType tokenType = sign.getTokenType();
|
||||
if (!tokenType.equals(JavaTokenType.DIV)) {
|
||||
return;
|
||||
}
|
||||
final PsiExpression lhs = expression.getLOperand();
|
||||
if (lhs == null) {
|
||||
return;
|
||||
}
|
||||
final PsiType lhsType = lhs.getType();
|
||||
if (!isIntegral(lhsType)) {
|
||||
return;
|
||||
}
|
||||
final PsiExpression rhs = expression.getROperand();
|
||||
if (rhs == null) {
|
||||
return;
|
||||
}
|
||||
final PsiType rhsType = rhs.getType();
|
||||
if (!isIntegral(rhsType)) {
|
||||
return;
|
||||
|
||||
+4
-2
@@ -6,6 +6,7 @@ import com.intellij.psi.*;
|
||||
import com.intellij.psi.tree.IElementType;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.siyeh.ig.*;
|
||||
import com.siyeh.ig.psiutils.WellFormednessUtils;
|
||||
|
||||
public class NonShortCircuitBooleanInspection extends ExpressionInspection {
|
||||
private final InspectionGadgetsFix fix = new NonShortCircuitBooleanFix();
|
||||
@@ -67,10 +68,11 @@ public class NonShortCircuitBooleanInspection extends ExpressionInspection {
|
||||
|
||||
public void visitBinaryExpression(PsiBinaryExpression expression) {
|
||||
super.visitBinaryExpression(expression);
|
||||
final PsiJavaToken sign = expression.getOperationSign();
|
||||
if (sign == null) {
|
||||
if(!WellFormednessUtils.isWellFormed(expression)){
|
||||
return;
|
||||
}
|
||||
|
||||
final PsiJavaToken sign = expression.getOperationSign();
|
||||
final IElementType tokenType = sign.getTokenType();
|
||||
if (!tokenType.equals(JavaTokenType.AND) &&
|
||||
!tokenType.equals(JavaTokenType.OR)) {
|
||||
|
||||
+3
-10
@@ -54,11 +54,8 @@ public class OctalAndDecimalIntegersMixedInspection extends ExpressionInspection
|
||||
|
||||
private static boolean isDecimalLiteral(PsiLiteralExpression literal) {
|
||||
final PsiType type = literal.getType();
|
||||
if (type == null) {
|
||||
return false;
|
||||
}
|
||||
if (!type.equals(PsiType.INT) &&
|
||||
!type.equals(PsiType.LONG)) {
|
||||
if (!PsiType.INT.equals(type) &&
|
||||
!PsiType.LONG.equals(type)) {
|
||||
return false;
|
||||
}
|
||||
final String text = literal.getText();
|
||||
@@ -70,11 +67,7 @@ public class OctalAndDecimalIntegersMixedInspection extends ExpressionInspection
|
||||
|
||||
private static boolean isOctalLiteral(PsiLiteralExpression literal) {
|
||||
final PsiType type = literal.getType();
|
||||
if (type == null) {
|
||||
return false;
|
||||
}
|
||||
if (!(type.equals(PsiType.INT)
|
||||
|| type.equals(PsiType.LONG))) {
|
||||
if (!PsiType.INT.equals(type) && !PsiType.LONG.equals(type)) {
|
||||
return false;
|
||||
}
|
||||
final String text = literal.getText();
|
||||
|
||||
@@ -4,11 +4,9 @@ import com.intellij.codeInspection.InspectionManager;
|
||||
import com.intellij.codeInspection.ProblemDescriptor;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.psi.*;
|
||||
import com.intellij.psi.tree.IElementType;
|
||||
import com.siyeh.ig.*;
|
||||
import com.siyeh.ig.psiutils.ClassUtils;
|
||||
import com.siyeh.ig.psiutils.ComparisonUtils;
|
||||
import com.siyeh.ig.psiutils.ParenthesesUtils;
|
||||
import com.siyeh.ig.psiutils.TypeUtils;
|
||||
import com.siyeh.ig.psiutils.*;
|
||||
|
||||
public class StringEqualityInspection extends ExpressionInspection {
|
||||
private final EqualityToEqualsFix fix = new EqualityToEqualsFix();
|
||||
@@ -44,18 +42,14 @@ public class StringEqualityInspection extends ExpressionInspection {
|
||||
final PsiBinaryExpression expression =
|
||||
(PsiBinaryExpression) comparisonToken.getParent();
|
||||
final PsiJavaToken sign = expression.getOperationSign();
|
||||
if (!(sign.getTokenType() != JavaTokenType.NE)) {
|
||||
final IElementType tokenType = sign.getTokenType();
|
||||
if (tokenType.equals(JavaTokenType.NE)) {
|
||||
negated = true;
|
||||
}
|
||||
final PsiExpression lhs = expression.getLOperand();
|
||||
if (lhs == null) {
|
||||
return;
|
||||
}
|
||||
final PsiExpression strippedLhs = ParenthesesUtils.stripParentheses(lhs);
|
||||
final PsiExpression rhs = expression.getROperand();
|
||||
if (rhs == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
final PsiExpression strippedRhs = ParenthesesUtils.stripParentheses(rhs);
|
||||
|
||||
final String expString;
|
||||
@@ -81,6 +75,9 @@ public class StringEqualityInspection extends ExpressionInspection {
|
||||
|
||||
public void visitBinaryExpression(PsiBinaryExpression expression) {
|
||||
super.visitBinaryExpression(expression);
|
||||
if(!WellFormednessUtils.isWellFormed(expression)){
|
||||
return;
|
||||
}
|
||||
if (!ComparisonUtils.isEqualityComparison(expression)) {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -9,6 +9,7 @@ import com.siyeh.ig.BaseInspectionVisitor;
|
||||
import com.siyeh.ig.ExpressionInspection;
|
||||
import com.siyeh.ig.GroupNames;
|
||||
import com.siyeh.ig.psiutils.TypeUtils;
|
||||
import com.siyeh.ig.psiutils.WellFormednessUtils;
|
||||
|
||||
public class SubtractionInCompareToInspection extends ExpressionInspection {
|
||||
|
||||
@@ -35,6 +36,9 @@ public class SubtractionInCompareToInspection extends ExpressionInspection {
|
||||
|
||||
public void visitBinaryExpression(PsiBinaryExpression exp) {
|
||||
super.visitBinaryExpression(exp);
|
||||
if(!WellFormednessUtils.isWellFormed(exp)){
|
||||
return;
|
||||
}
|
||||
if (!isSubtraction(exp)) {
|
||||
return;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user