mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
[java] IDEA-216276 Provide fix for "method is already defined in"
For each "method is already defined in" error, a quick fix is added with "Navigate to duplicate method" text. In case of many duplicates, quick fix navigates to the topmost one. Merge-request: IJ-MR-170181 Merged-by: Marcin Mikosik <marcin.mikosik@jetbrains.com> GitOrigin-RevId: d609be3a3e4526bed37471f814d2e675cbd0d2a6
This commit is contained in:
committed by
intellij-monorepo-bot
parent
e5a45550c6
commit
787051b0be
+1
-1
@@ -527,7 +527,7 @@ final class MethodChecker {
|
||||
MethodSignature methodSignature = method.getSignature(PsiSubstitutor.EMPTY);
|
||||
List<PsiMethod> methods = (List<PsiMethod>)duplicateMethods.get(methodSignature);
|
||||
if (methods.size() > 1) {
|
||||
myVisitor.report(JavaErrorKinds.METHOD_DUPLICATE.create(method));
|
||||
myVisitor.report(JavaErrorKinds.METHOD_DUPLICATE.create(method, new JavaErrorKinds.DuplicateMethodsContext(methods)));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+6
-4
@@ -640,11 +640,11 @@ public final class JavaErrorKinds {
|
||||
owner.getTypeParameters().length));
|
||||
public static final Simple<PsiTypeElement> TYPE_PARAMETER_ACTUAL_INFERRED_MISMATCH = error("type.parameter.actual.inferred.mismatch");
|
||||
|
||||
public static final Simple<PsiMethod> METHOD_DUPLICATE =
|
||||
error(PsiMethod.class, "method.duplicate")
|
||||
.withRange(JavaErrorFormatUtil::getMethodDeclarationTextRange)
|
||||
public static final Parameterized<PsiMethod, DuplicateMethodsContext> METHOD_DUPLICATE =
|
||||
parameterized(PsiMethod.class, DuplicateMethodsContext.class, "method.duplicate")
|
||||
.withRange((method, duplicates) -> getMethodDeclarationTextRange(method))
|
||||
.withDescription(
|
||||
method -> message("method.duplicate", formatMethod(method), formatClass(requireNonNull(method.getContainingClass()))));
|
||||
(method, duplicates) -> message("method.duplicate", formatMethod(method), formatClass(requireNonNull(method.getContainingClass()))));
|
||||
public static final Simple<PsiMethod> METHOD_NO_PARAMETER_LIST =
|
||||
error(PsiMethod.class, "method.no.parameter.list").withAnchor(PsiMethod::getNameIdentifier);
|
||||
public static final Simple<PsiJavaCodeReferenceElement> METHOD_THROWS_CLASS_NAME_EXPECTED =
|
||||
@@ -1775,4 +1775,6 @@ public final class JavaErrorKinds {
|
||||
public record DeconstructionCountMismatchContext(@NotNull PsiPattern @NotNull [] patternComponents,
|
||||
@NotNull PsiRecordComponent @NotNull [] recordComponents,
|
||||
boolean hasMismatch) {}
|
||||
|
||||
public record DuplicateMethodsContext(@NotNull List<@NotNull PsiMethod> methods) {}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user