diff --git a/java/java-impl/src/com/intellij/codeInspection/java15api/Java15APIUsageInspection.java b/java/java-impl/src/com/intellij/codeInspection/java15api/Java15APIUsageInspection.java
index 76e50800a41d..46773acd0638 100644
--- a/java/java-impl/src/com/intellij/codeInspection/java15api/Java15APIUsageInspection.java
+++ b/java/java-impl/src/com/intellij/codeInspection/java15api/Java15APIUsageInspection.java
@@ -260,7 +260,7 @@ public class Java15APIUsageInspection extends AbstractBaseJavaLocalInspectionToo
if (!methods.isEmpty()) {
PsiElement element2Highlight = aClass.getNameIdentifier();
if (element2Highlight == null) {
- element2Highlight = aClass;
+ element2Highlight = aClass instanceof PsiAnonymousClass ? ((PsiAnonymousClass)aClass).getBaseClassReference() : aClass;
}
myHolder.registerProblem(element2Highlight,
methods.size() == 1 ? InspectionsBundle.message("inspection.1.8.problem.single.descriptor", methods.get(0).getName(), getJdkName(effectiveLanguageLevel))
diff --git a/java/java-tests/testData/inspection/usage1.5/Annotation.java b/java/java-tests/testData/inspection/usage1.5/Annotation.java
new file mode 100644
index 000000000000..f751796c8cbe
--- /dev/null
+++ b/java/java-tests/testData/inspection/usage1.5/Annotation.java
@@ -0,0 +1,5 @@
+public class Annotation {
+
+ @SafeVarargs
+ public final void a(java.util.List... ls) {}
+}
\ No newline at end of file
diff --git a/java/java-tests/testData/inspection/usage1.5/Constructor.java b/java/java-tests/testData/inspection/usage1.5/Constructor.java
new file mode 100644
index 000000000000..d2b694538af3
--- /dev/null
+++ b/java/java-tests/testData/inspection/usage1.5/Constructor.java
@@ -0,0 +1,5 @@
+public class Constructor {
+ void foo() {
+ throw new IllegalArgumentException ("", new RuntimeException());
+ }
+}
\ No newline at end of file
diff --git a/java/java-tests/testData/inspection/usage1.5/DefaultMethods.java b/java/java-tests/testData/inspection/usage1.5/DefaultMethods.java
new file mode 100644
index 000000000000..449f945bd956
--- /dev/null
+++ b/java/java-tests/testData/inspection/usage1.5/DefaultMethods.java
@@ -0,0 +1,46 @@
+import java.util.Iterator;
+
+public class DefaultMethods implements Iterator {
+ @Override
+ public boolean hasNext() {
+ return false;
+ }
+
+ @Override
+ public String next() {
+ return null;
+ }
+
+ static class T implements Iterator {
+ @Override
+ public boolean hasNext() {
+ return false;
+ }
+
+ @Override
+ public String next() {
+ return null;
+ }
+
+ @Override
+ public void remove() {}
+ }
+
+ public > T typedIterator() {
+ return (T) iterator();
+ }
+
+ {
+ Iterator it=new Iterator(){
+ @Override
+ public boolean hasNext(){
+ return false;
+ }
+ @Override
+ public String next(){
+ return null;
+ }
+ };
+ }
+}
+
diff --git a/java/java-tests/testData/inspection/usage1.5/ignored/src/Test.java b/java/java-tests/testData/inspection/usage1.5/Ignored.java
similarity index 83%
rename from java/java-tests/testData/inspection/usage1.5/ignored/src/Test.java
rename to java/java-tests/testData/inspection/usage1.5/Ignored.java
index a309b1c70905..3dc8178e4838 100644
--- a/java/java-tests/testData/inspection/usage1.5/ignored/src/Test.java
+++ b/java/java-tests/testData/inspection/usage1.5/Ignored.java
@@ -1,5 +1,5 @@
import java.awt.geom.GeneralPath;
-public class Test {
+public class Ignored {
void foo() {
GeneralPath path = new GeneralPath();
path.moveTo(0,0);
diff --git a/java/java-tests/testData/inspection/usage1.5/OverrideAnnotation.java b/java/java-tests/testData/inspection/usage1.5/OverrideAnnotation.java
new file mode 100644
index 000000000000..915e581694df
--- /dev/null
+++ b/java/java-tests/testData/inspection/usage1.5/OverrideAnnotation.java
@@ -0,0 +1,9 @@
+import java.util.Map;
+
+public abstract class OverrideAnnotation implements Map {
+ @Override
+ public String getOrDefault(Object key, String defaultValue) {
+ return null;
+ }
+}
+
diff --git a/java/java-tests/testData/inspection/usage1.5/rawInheritFromNewlyGenerified/src/Test.java b/java/java-tests/testData/inspection/usage1.5/RawInheritFromNewlyGenerified.java
similarity index 74%
rename from java/java-tests/testData/inspection/usage1.5/rawInheritFromNewlyGenerified/src/Test.java
rename to java/java-tests/testData/inspection/usage1.5/RawInheritFromNewlyGenerified.java
index cfab2a12409f..71c33549845e 100644
--- a/java/java-tests/testData/inspection/usage1.5/rawInheritFromNewlyGenerified/src/Test.java
+++ b/java/java-tests/testData/inspection/usage1.5/RawInheritFromNewlyGenerified.java
@@ -1,4 +1,4 @@
-class Test {
+class RawInheritFromNewlyGenerified {
private AbstractCCM myModel;
}
diff --git a/java/java-tests/testData/inspection/usage1.5/annotation/expected.xml b/java/java-tests/testData/inspection/usage1.5/annotation/expected.xml
deleted file mode 100644
index b7c7e42f6a1b..000000000000
--- a/java/java-tests/testData/inspection/usage1.5/annotation/expected.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
- Test.java
- 3
- Usage of API documented as @since 1.7
-
-
\ No newline at end of file
diff --git a/java/java-tests/testData/inspection/usage1.5/annotation/src/Test.java b/java/java-tests/testData/inspection/usage1.5/annotation/src/Test.java
deleted file mode 100644
index b5173f9e00dd..000000000000
--- a/java/java-tests/testData/inspection/usage1.5/annotation/src/Test.java
+++ /dev/null
@@ -1,5 +0,0 @@
-public class Test {
-
- @SafeVarargs
- public final void a(List... ls) {}
-}
\ No newline at end of file
diff --git a/java/java-tests/testData/inspection/usage1.5/constructor/expected.xml b/java/java-tests/testData/inspection/usage1.5/constructor/expected.xml
deleted file mode 100644
index fbdcff5077de..000000000000
--- a/java/java-tests/testData/inspection/usage1.5/constructor/expected.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
- Test.java
- 3
- Usage of API documented as @since 1.5
-
-
-
diff --git a/java/java-tests/testData/inspection/usage1.5/constructor/src/Test.java b/java/java-tests/testData/inspection/usage1.5/constructor/src/Test.java
deleted file mode 100644
index b55fcb2c866f..000000000000
--- a/java/java-tests/testData/inspection/usage1.5/constructor/src/Test.java
+++ /dev/null
@@ -1,5 +0,0 @@
-public class Test {
- void foo() {
- throw new IllegalArgumentException ("", new RuntimeException());
- }
-}
\ No newline at end of file
diff --git a/java/java-tests/testData/inspection/usage1.5/defaultMethods/expected.xml b/java/java-tests/testData/inspection/usage1.5/defaultMethods/expected.xml
deleted file mode 100644
index f6d068d07ada..000000000000
--- a/java/java-tests/testData/inspection/usage1.5/defaultMethods/expected.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
- Test.java
- 3
- Usages of API documented as @since 1.5 (1.6|1.7)
- Default method 'remove' is not overridden. It would cause compilation problems with JDK 6
-
-
-
\ No newline at end of file
diff --git a/java/java-tests/testData/inspection/usage1.5/defaultMethods/src/Test.java b/java/java-tests/testData/inspection/usage1.5/defaultMethods/src/Test.java
deleted file mode 100644
index f44797702a63..000000000000
--- a/java/java-tests/testData/inspection/usage1.5/defaultMethods/src/Test.java
+++ /dev/null
@@ -1,33 +0,0 @@
-import java.util.Iterator;
-
-public class Test implements Iterator {
- @Override
- public boolean hasNext() {
- return false;
- }
-
- @Override
- public String next() {
- return null;
- }
-
- static class T implements Iterator {
- @Override
- public boolean hasNext() {
- return false;
- }
-
- @Override
- public String next() {
- return null;
- }
-
- @Override
- public void remove() {}
- }
-
- public > T typedIterator() {
- return (T) iterator();
- }
-}
-
diff --git a/java/java-tests/testData/inspection/usage1.5/ignored/expected.xml b/java/java-tests/testData/inspection/usage1.5/ignored/expected.xml
deleted file mode 100644
index 862563508d89..000000000000
--- a/java/java-tests/testData/inspection/usage1.5/ignored/expected.xml
+++ /dev/null
@@ -1,2 +0,0 @@
-
-
diff --git a/java/java-tests/testData/inspection/usage1.5/overrideAnnotation/expected.xml b/java/java-tests/testData/inspection/usage1.5/overrideAnnotation/expected.xml
deleted file mode 100644
index 6502e2c42b21..000000000000
--- a/java/java-tests/testData/inspection/usage1.5/overrideAnnotation/expected.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
- Test.java
- 4
- Usages of API documented as @since 1.5 (1.6|1.7)
- Usage of API documented as @since 1.8+
-
-
-
\ No newline at end of file
diff --git a/java/java-tests/testData/inspection/usage1.5/overrideAnnotation/src/Test.java b/java/java-tests/testData/inspection/usage1.5/overrideAnnotation/src/Test.java
deleted file mode 100644
index 5f8aabd4eecc..000000000000
--- a/java/java-tests/testData/inspection/usage1.5/overrideAnnotation/src/Test.java
+++ /dev/null
@@ -1,9 +0,0 @@
-import java.util.Map;
-
-public abstract class Test implements Map {
- @Override
- public String getOrDefault(Object key, String defaultValue) {
- return null;
- }
-}
-
diff --git a/java/java-tests/testData/inspection/usage1.5/rawInheritFromNewlyGenerified/expected.xml b/java/java-tests/testData/inspection/usage1.5/rawInheritFromNewlyGenerified/expected.xml
deleted file mode 100644
index 4704d91e891d..000000000000
--- a/java/java-tests/testData/inspection/usage1.5/rawInheritFromNewlyGenerified/expected.xml
+++ /dev/null
@@ -1,2 +0,0 @@
-
-
\ No newline at end of file
diff --git a/java/java-tests/testSrc/com/intellij/java/codeInspection/JavaAPIUsagesInspectionTest.java b/java/java-tests/testSrc/com/intellij/java/codeInspection/JavaAPIUsagesInspectionTest.java
index 701036870691..73dd665f1a84 100644
--- a/java/java-tests/testSrc/com/intellij/java/codeInspection/JavaAPIUsagesInspectionTest.java
+++ b/java/java-tests/testSrc/com/intellij/java/codeInspection/JavaAPIUsagesInspectionTest.java
@@ -17,45 +17,52 @@
package com.intellij.java.codeInspection;
import com.intellij.JavaTestUtil;
-import com.intellij.codeInspection.ex.LocalInspectionToolWrapper;
import com.intellij.codeInspection.java15api.Java15APIUsageInspection;
import com.intellij.pom.java.LanguageLevel;
import com.intellij.testFramework.IdeaTestUtil;
-import com.intellij.testFramework.InspectionTestCase;
+import com.intellij.testFramework.LightProjectDescriptor;
+import com.intellij.testFramework.fixtures.LightCodeInsightFixtureTestCase;
+import org.jetbrains.annotations.NotNull;
-public class JavaAPIUsagesInspectionTest extends InspectionTestCase {
+public class JavaAPIUsagesInspectionTest extends LightCodeInsightFixtureTestCase {
@Override
protected String getTestDataPath() {
- return JavaTestUtil.getJavaTestDataPath() + "/inspection";
+ return JavaTestUtil.getJavaTestDataPath() + "/inspection/usage1.5/";
}
- private void doTest() {
- final Java15APIUsageInspection usageInspection = new Java15APIUsageInspection();
- doTest("usage1.5/" + getTestName(true), new LocalInspectionToolWrapper(usageInspection), "java 1.5");
+
+ @Override
+ protected void setUp() throws Exception {
+ super.setUp();
+ myFixture.enableInspections(new Java15APIUsageInspection());
+ }
+
+ @NotNull
+ @Override
+ protected LightProjectDescriptor getProjectDescriptor() {
+ return JAVA_8;
}
public void testConstructor() {
- IdeaTestUtil.withLevel(getModule(), LanguageLevel.JDK_1_4, this::doTest);
+ IdeaTestUtil.setModuleLanguageLevel(myFixture.getModule(), LanguageLevel.JDK_1_4);
+ myFixture.testHighlighting(getTestName(false) + ".java");
}
public void testIgnored() {
- doTest();
+ myFixture.addClass("package java.awt.geom; public class GeneralPath {public void moveTo(int x, int y){}}");
+ doTest();
}
-
- public void testAnnotation() {
- IdeaTestUtil.withLevel(getModule(), LanguageLevel.JDK_1_6, this::doTest);
- }
-
- public void testDefaultMethods() {
- IdeaTestUtil.withLevel(getModule(), LanguageLevel.JDK_1_6, this::doTest);
- }
-
- public void testOverrideAnnotation() {
- IdeaTestUtil.withLevel(getModule(), LanguageLevel.JDK_1_6, this::doTest);
- }
-
+ public void testAnnotation() { doTest(); }
+ public void testDefaultMethods() { doTest(); }
+ public void testOverrideAnnotation() { doTest(); }
public void testRawInheritFromNewlyGenerified() {
- IdeaTestUtil.withLevel(getModule(), LanguageLevel.JDK_1_6, this::doTest);
+ myFixture.addClass("package javax.swing; public class AbstractListModel {}");
+ doTest();
+ }
+
+ private void doTest() {
+ IdeaTestUtil.setModuleLanguageLevel(myFixture.getModule(), LanguageLevel.JDK_1_6);
+ myFixture.testHighlighting(getTestName(false) + ".java");
}
//generate apiXXX.txt