From 0107304a90ddfd1c0088441f968f334057d574ce Mon Sep 17 00:00:00 2001 From: Mikhail Pyltsin Date: Mon, 23 Dec 2024 17:45:36 +0100 Subject: [PATCH] [java-intentions] IDEA-365126 'BindFieldsFromParameters' shouldn't be offered when method has generic parameters GitOrigin-RevId: 92052cdd9f27b6a43fc949badc88d4e8d1695c65 --- .../intention/impl/BindFieldsFromParametersAction.java | 1 + .../bindFieldsFromParameters/beforeMethodGeneric.java | 8 ++++++++ 2 files changed, 9 insertions(+) create mode 100644 java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/bindFieldsFromParameters/beforeMethodGeneric.java diff --git a/java/java-impl/src/com/intellij/codeInsight/intention/impl/BindFieldsFromParametersAction.java b/java/java-impl/src/com/intellij/codeInsight/intention/impl/BindFieldsFromParametersAction.java index 1395cf126039..fecbdfc0da62 100644 --- a/java/java-impl/src/com/intellij/codeInsight/intention/impl/BindFieldsFromParametersAction.java +++ b/java/java-impl/src/com/intellij/codeInsight/intention/impl/BindFieldsFromParametersAction.java @@ -75,6 +75,7 @@ public final class BindFieldsFromParametersAction implements ModCommandAction { private static boolean isAvailable(@NotNull PsiParameter psiParameter) { PsiType type = FieldFromParameterUtils.getSubstitutedType(psiParameter); + if (type != null && !type.isAssignableFrom(psiParameter.getType())) return false; PsiClass targetClass = PsiTreeUtil.getParentOfType(psiParameter, PsiClass.class); return FieldFromParameterUtils.isAvailable(psiParameter, type, targetClass) && psiParameter.getLanguage().isKindOf(JavaLanguage.INSTANCE); diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/bindFieldsFromParameters/beforeMethodGeneric.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/bindFieldsFromParameters/beforeMethodGeneric.java new file mode 100644 index 000000000000..2c0113bb5ae6 --- /dev/null +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/bindFieldsFromParameters/beforeMethodGeneric.java @@ -0,0 +1,8 @@ +// "Bind constructor parameters to fields" "false" + +class Bar { + + void get(Class a) { + + } +} \ No newline at end of file