From 8f3cc4607a6bb045ce427d57ff82fe5793b39ae3 Mon Sep 17 00:00:00 2001 From: Anna Kozlova Date: Tue, 8 Oct 2019 12:04:03 +0200 Subject: [PATCH] suspicious collection calls: support methods with 2 args where second is generic (IDEA-224194) GitOrigin-RevId: eea809cfaf93b220d63119caf0f9708c0649d5c3 --- .../miscGenerics/SuspiciousMethodCallUtil.java | 2 +- .../inspection/suspiciousCalls/NewMapMethods.java | 9 ++++++++- 2 files changed, 9 insertions(+), 2 deletions(-) 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