diff --git a/java/java-analysis-impl/src/com/intellij/codeInspection/miscGenerics/SuspiciousMethodCallUtil.java b/java/java-analysis-impl/src/com/intellij/codeInspection/miscGenerics/SuspiciousMethodCallUtil.java index bb1c0b14d0f6..7babbcb206cb 100644 --- a/java/java-analysis-impl/src/com/intellij/codeInspection/miscGenerics/SuspiciousMethodCallUtil.java +++ b/java/java-analysis-impl/src/com/intellij/codeInspection/miscGenerics/SuspiciousMethodCallUtil.java @@ -264,7 +264,7 @@ public class SuspiciousMethodCallUtil { substitutor = TypeConversionUtil.getClassSubstitutor(patternClass, calleeClass, substitutor); if (substitutor == null) continue; - if (!method.getSignature(substitutor).equals(calleeMethod.getSignature(PsiSubstitutor.EMPTY))) continue; + if (!method.getSignature(substitutor).equals(calleeMethod.getSignature(resolveResult.getSubstitutor()))) continue; PsiTypeParameter[] typeParameters = patternClass.getTypeParameters(); if (typeParameters.length <= patternMethod.typeParameterIdx) return null; diff --git a/java/java-tests/testData/inspection/suspiciousCalls/NewMapMethods.java b/java/java-tests/testData/inspection/suspiciousCalls/NewMapMethods.java index 0cbcf9decea4..d43f8caa4c3e 100644 --- a/java/java-tests/testData/inspection/suspiciousCalls/NewMapMethods.java +++ b/java/java-tests/testData/inspection/suspiciousCalls/NewMapMethods.java @@ -1,11 +1,18 @@ import java.util.Map; +import java.util.HashMap; class Test { - void m(Map map){ + void m(Map map, HashMap hMap){ map.getOrDefault(1, ""); + hMap.getOrDefault(1, ""); + map.getOrDefault("", ""); + hMap.getOrDefault("", ""); + map.remove(1, ""); + hMap.remove(1, ""); map.remove("", ""); + hMap.remove("", ""); } } \ No newline at end of file