From 9d9c62523d9f961c65fbb58e7c594bef3023eee0 Mon Sep 17 00:00:00 2001 From: "Anna.Kozlova" Date: Tue, 27 Dec 2016 14:36:49 +0100 Subject: [PATCH] warn about static methods in interface with same erasure (IDEA-165927) --- .../daemon/impl/analysis/GenericsHighlightUtil.java | 2 +- .../SameErasureForStaticMethodsInInterfaces.java | 5 +++++ .../codeInsight/daemon/lambda/GenericsHighlighting8Test.java | 4 ++++ 3 files changed, 10 insertions(+), 1 deletion(-) create mode 100644 java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting8/SameErasureForStaticMethodsInInterfaces.java diff --git a/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/GenericsHighlightUtil.java b/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/GenericsHighlightUtil.java index e50bc4c3b5a7..8ad8847cf391 100644 --- a/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/GenericsHighlightUtil.java +++ b/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/GenericsHighlightUtil.java @@ -635,7 +635,7 @@ public class GenericsHighlightUtil { } if (superMethod.hasModifierProperty(PsiModifier.STATIC) && superContainingClass != null && - superContainingClass.isInterface() && PsiUtil.isLanguageLevel8OrHigher(superContainingClass)) { + superContainingClass.isInterface() && !checkEqualsSuper && PsiUtil.isLanguageLevel8OrHigher(superContainingClass)) { return null; } diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting8/SameErasureForStaticMethodsInInterfaces.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting8/SameErasureForStaticMethodsInInterfaces.java new file mode 100644 index 000000000000..db4acfc6f0c0 --- /dev/null +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting8/SameErasureForStaticMethodsInInterfaces.java @@ -0,0 +1,5 @@ + +interface Test { + static void foo(A a) {} + static void foo(B b) {} +} \ No newline at end of file diff --git a/java/java-tests/testSrc/com/intellij/codeInsight/daemon/lambda/GenericsHighlighting8Test.java b/java/java-tests/testSrc/com/intellij/codeInsight/daemon/lambda/GenericsHighlighting8Test.java index c74c36172b7a..904a6be6f9f4 100644 --- a/java/java-tests/testSrc/com/intellij/codeInsight/daemon/lambda/GenericsHighlighting8Test.java +++ b/java/java-tests/testSrc/com/intellij/codeInsight/daemon/lambda/GenericsHighlighting8Test.java @@ -1012,4 +1012,8 @@ public class GenericsHighlighting8Test extends LightDaemonAnalyzerTestCase { public void testBoundsPromotionForDerivedType() throws Exception { doTest(); } + + public void testSameErasureForStaticMethodsInInterfaces() throws Exception { + doTest(); + } }