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 @@ -29,83 +29,82 @@

@ExtensionImpl
public class OverloadedMethodsWithSameNumberOfParametersInspection extends BaseInspection {
@SuppressWarnings({"PublicField"})
public boolean ignoreInconvertibleTypes = true;

@SuppressWarnings({"PublicField"})
public boolean ignoreInconvertibleTypes = true;

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

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

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

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

private class OverloadedMethodsWithSameNumberOfParametersVisitor extends BaseInspectionVisitor {
private class OverloadedMethodsWithSameNumberOfParametersVisitor extends BaseInspectionVisitor {

@Override
public void visitMethod(@Nonnull PsiMethod method) {
if (method.isConstructor()) {
return;
}
if (method.getNameIdentifier() == null) {
return;
}
final PsiParameterList parameterList = method.getParameterList();
final int parameterCount = parameterList.getParametersCount();
if (parameterCount == 0) {
return;
}
final PsiClass aClass = method.getContainingClass();
if (aClass == null) {
return;
}
if (MethodUtils.hasSuper(method)) {
return;
}
final String methodName = method.getName();
final PsiMethod[] sameNameMethods = aClass.findMethodsByName(methodName, false);
for (PsiMethod sameNameMethod : sameNameMethods) {
if (method.equals(sameNameMethod)) {
continue;
}
final PsiParameterList otherParameterList = sameNameMethod.getParameterList();
if (parameterCount == otherParameterList.getParametersCount()) {
if (ignoreInconvertibleTypes && !areParameterTypesConvertible(parameterList, otherParameterList)) {
return;
}
registerMethodError(method);
return;
@Override
public void visitMethod(@Nonnull PsiMethod method) {
if (method.isConstructor()) {
return;
}
if (method.getNameIdentifier() == null) {
return;
}
final PsiParameterList parameterList = method.getParameterList();
final int parameterCount = parameterList.getParametersCount();
if (parameterCount == 0) {
return;
}
final PsiClass aClass = method.getContainingClass();
if (aClass == null) {
return;
}
if (MethodUtils.hasSuper(method)) {
return;
}
final String methodName = method.getName();
final PsiMethod[] sameNameMethods = aClass.findMethodsByName(methodName, false);
for (PsiMethod sameNameMethod : sameNameMethods) {
if (method.equals(sameNameMethod)) {
continue;
}
final PsiParameterList otherParameterList = sameNameMethod.getParameterList();
if (parameterCount == otherParameterList.getParametersCount()) {
if (ignoreInconvertibleTypes && !areParameterTypesConvertible(parameterList, otherParameterList)) {
return;
}
registerMethodError(method);
return;
}
}
}
}
}

private boolean areParameterTypesConvertible(PsiParameterList parameterList, PsiParameterList otherParameterList) {
final PsiParameter[] parameters = parameterList.getParameters();
final PsiParameter[] otherParameters = otherParameterList.getParameters();
for (int i = 0; i < parameters.length; i++) {
final PsiType type = parameters[i].getType();
final PsiType otherType = otherParameters[i].getType();
if (!type.isAssignableFrom(otherType) && !otherType.isAssignableFrom(type)) {
return false;
private boolean areParameterTypesConvertible(PsiParameterList parameterList, PsiParameterList otherParameterList) {
final PsiParameter[] parameters = parameterList.getParameters();
final PsiParameter[] otherParameters = otherParameterList.getParameters();
for (int i = 0; i < parameters.length; i++) {
final PsiType type = parameters[i].getType();
final PsiType otherType = otherParameters[i].getType();
if (!type.isAssignableFrom(otherType) && !otherType.isAssignableFrom(type)) {
return false;
}
}
return true;
}
}
return true;
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -21,48 +21,46 @@
import com.siyeh.ig.BaseInspectionVisitor;
import com.siyeh.localize.InspectionGadgetsLocalize;
import consulo.annotation.component.ExtensionImpl;
import consulo.localize.LocalizeValue;
import jakarta.annotation.Nonnull;

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

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

@Nonnull
public String buildErrorString(Object... infos) {
final PsiMethod element = (PsiMethod)infos[0];
return element.isConstructor()
? InspectionGadgetsLocalize.overloadedVarargConstructorProblemDescriptor().get()
: InspectionGadgetsLocalize.overloadedVarargMethodProblemDescriptor().get();
}

public BaseInspectionVisitor buildVisitor() {
return new OverloadedVarargMethodVisitor();
}
@Nonnull
public String buildErrorString(Object... infos) {
final PsiMethod element = (PsiMethod) infos[0];
return element.isConstructor()
? InspectionGadgetsLocalize.overloadedVarargConstructorProblemDescriptor().get()
: InspectionGadgetsLocalize.overloadedVarargMethodProblemDescriptor().get();
}

private static class OverloadedVarargMethodVisitor
extends BaseInspectionVisitor {
public BaseInspectionVisitor buildVisitor() {
return new OverloadedVarargMethodVisitor();
}

@Override
public void visitMethod(@Nonnull PsiMethod method) {
if (!method.isVarArgs()) {
return;
}
final PsiClass aClass = method.getContainingClass();
if (aClass == null) {
return;
}
final String methodName = method.getName();
final PsiMethod[] sameNameMethods =
aClass.findMethodsByName(methodName, false);
for (PsiMethod sameNameMethod : sameNameMethods) {
if (!sameNameMethod.equals(method)) {
registerMethodError(method, method);
private static class OverloadedVarargMethodVisitor extends BaseInspectionVisitor {
@Override
public void visitMethod(@Nonnull PsiMethod method) {
if (!method.isVarArgs()) {
return;
}
final PsiClass aClass = method.getContainingClass();
if (aClass == null) {
return;
}
final String methodName = method.getName();
final PsiMethod[] sameNameMethods = aClass.findMethodsByName(methodName, false);
for (PsiMethod sameNameMethod : sameNameMethods) {
if (!sameNameMethod.equals(method)) {
registerMethodError(method, method);
}
}
}
}
}
}
}
Loading
Loading