Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -22,40 +22,42 @@
import consulo.annotation.component.ExtensionImpl;
import consulo.language.psi.PsiElement;
import consulo.language.psi.util.PsiTreeUtil;
import consulo.localize.LocalizeValue;
import jakarta.annotation.Nonnull;

@ExtensionImpl
public class InstanceofThisInspection extends BaseInspection {
@Nonnull
@Override
public LocalizeValue getDisplayName() {
return InspectionGadgetsLocalize.instanceofCheckForThisDisplayName();
}

@Nonnull
public String getDisplayName() {
return InspectionGadgetsLocalize.instanceofCheckForThisDisplayName().get();
}

@Nonnull
public String buildErrorString(Object... infos) {
return InspectionGadgetsLocalize.instanceofCheckForThisProblemDescriptor().get();
}
@Nonnull
public String buildErrorString(Object... infos) {
return InspectionGadgetsLocalize.instanceofCheckForThisProblemDescriptor().get();
}

public BaseInspectionVisitor buildVisitor() {
return new InstanceofThisVisitor();
}
public BaseInspectionVisitor buildVisitor() {
return new InstanceofThisVisitor();
}

private static class InstanceofThisVisitor extends BaseInspectionVisitor {
private static class InstanceofThisVisitor extends BaseInspectionVisitor {

@Override
public void visitThisExpression(@Nonnull PsiThisExpression thisValue) {
super.visitThisExpression(thisValue);
if (thisValue.getQualifier() != null) {
return;
}
final PsiElement parent =
PsiTreeUtil.skipParentsOfType(thisValue, PsiParenthesizedExpression.class,
PsiConditionalExpression.class, PsiTypeCastExpression.class);
if (!(parent instanceof PsiInstanceOfExpression)) {
return;
}
registerError(thisValue);
@Override
public void visitThisExpression(@Nonnull PsiThisExpression thisValue) {
super.visitThisExpression(thisValue);
if (thisValue.getQualifier() != null) {
return;
}
final PsiElement parent =
PsiTreeUtil.skipParentsOfType(thisValue, PsiParenthesizedExpression.class,
PsiConditionalExpression.class, PsiTypeCastExpression.class
);
if (!(parent instanceof PsiInstanceOfExpression)) {
return;
}
registerError(thisValue);
}
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -30,51 +30,49 @@
import javax.swing.*;

@ExtensionImpl
public class LocalVariableOfConcreteClassInspection
extends BaseInspection {
public class LocalVariableOfConcreteClassInspection extends BaseInspection {
@SuppressWarnings("PublicField")
public boolean ignoreAbstractClasses = false;

@SuppressWarnings("PublicField")
public boolean ignoreAbstractClasses = false;

@Override
@Nonnull
public String getDisplayName() {
return InspectionGadgetsLocalize.localVariableOfConcreteClassDisplayName().get();
}
@Nonnull
@Override
public LocalizeValue getDisplayName() {
return InspectionGadgetsLocalize.localVariableOfConcreteClassDisplayName();
}

@Override
@Nonnull
@RequiredReadAction
public String buildErrorString(Object... arg) {
final PsiNamedElement variable = (PsiNamedElement)arg[0];
final String name = variable.getName();
return InspectionGadgetsLocalize.localVariableOfConcreteClassProblemDescriptor(name).get();
}
@Override
@Nonnull
@RequiredReadAction
public String buildErrorString(Object... arg) {
final PsiNamedElement variable = (PsiNamedElement) arg[0];
final String name = variable.getName();
return InspectionGadgetsLocalize.localVariableOfConcreteClassProblemDescriptor(name).get();
}

@Override
public JComponent createOptionsPanel() {
LocalizeValue message = InspectionGadgetsLocalize.localVariableOfConcreteClassOption();
return new SingleCheckboxOptionsPanel(message.get(), this, "ignoreAbstractClasses");
}
@Override
public JComponent createOptionsPanel() {
LocalizeValue message = InspectionGadgetsLocalize.localVariableOfConcreteClassOption();
return new SingleCheckboxOptionsPanel(message.get(), this, "ignoreAbstractClasses");
}

@Override
public BaseInspectionVisitor buildVisitor() {
return new LocalVariableOfConcreteClassVisitor();
}
@Override
public BaseInspectionVisitor buildVisitor() {
return new LocalVariableOfConcreteClassVisitor();
}

private class LocalVariableOfConcreteClassVisitor
extends BaseInspectionVisitor {
private class LocalVariableOfConcreteClassVisitor
extends BaseInspectionVisitor {

@Override
public void visitLocalVariable(
@Nonnull PsiLocalVariable variable) {
super.visitLocalVariable(variable);
final PsiTypeElement typeElement = variable.getTypeElement();
if (!ConcreteClassUtil.typeIsConcreteClass(typeElement,
ignoreAbstractClasses)) {
return;
}
registerError(typeElement, variable);
@Override
public void visitLocalVariable(
@Nonnull PsiLocalVariable variable
) {
super.visitLocalVariable(variable);
final PsiTypeElement typeElement = variable.getTypeElement();
if (!ConcreteClassUtil.typeIsConcreteClass(typeElement, ignoreAbstractClasses)) {
return;
}
registerError(typeElement, variable);
}
}
}
}
Loading
Loading