From d01a145417a0838abbfc3087ad2aeffb23d9c92b Mon Sep 17 00:00:00 2001 From: Anna Kozlova Date: Tue, 29 Aug 2017 12:54:54 +0300 Subject: [PATCH] =?UTF-8?q?unused=20library:=20don't=20check=20runtime=20d?= =?UTF-8?q?ependencies=20(IDEA-178133=CB=86)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../UnusedLibrariesInspection.java | 4 +++- .../testData/inspection/unusedLibrary/junit.jar | Bin 14291 -> 0 bytes .../unusedLibrary/junitAsRuntime/expected.xml | 3 +++ .../unusedLibrary/junitAsRuntime/src/Test.java | 2 ++ .../UnusedLibraryInspectionTest.java | 12 ++++++++++++ 5 files changed, 20 insertions(+), 1 deletion(-) delete mode 100644 java/java-tests/testData/inspection/unusedLibrary/junit.jar create mode 100644 java/java-tests/testData/inspection/unusedLibrary/junitAsRuntime/expected.xml create mode 100644 java/java-tests/testData/inspection/unusedLibrary/junitAsRuntime/src/Test.java diff --git a/java/java-analysis-impl/src/com/intellij/codeInspection/unusedLibraries/UnusedLibrariesInspection.java b/java/java-analysis-impl/src/com/intellij/codeInspection/unusedLibraries/UnusedLibrariesInspection.java index d59acd8c23b4..efba1fb45f75 100644 --- a/java/java-analysis-impl/src/com/intellij/codeInspection/unusedLibraries/UnusedLibrariesInspection.java +++ b/java/java-analysis-impl/src/com/intellij/codeInspection/unusedLibraries/UnusedLibrariesInspection.java @@ -100,7 +100,9 @@ public class UnusedLibrariesInspection extends GlobalInspectionTool { final List result = new ArrayList<>(); for (OrderEntry entry : moduleRootManager.getOrderEntries()) { - if (entry instanceof LibraryOrderEntry && !((LibraryOrderEntry)entry).isExported()) { + if (entry instanceof LibraryOrderEntry && + !((LibraryOrderEntry)entry).isExported() && + ((LibraryOrderEntry)entry).getScope() != DependencyScope.RUNTIME) { final Set files = new HashSet<>(Arrays.asList(((LibraryOrderEntry)entry).getRootFiles(OrderRootType.CLASSES))); boolean allRootsUnused = usedRoots == null || !files.removeAll(usedRoots); if (allRootsUnused) { diff --git a/java/java-tests/testData/inspection/unusedLibrary/junit.jar b/java/java-tests/testData/inspection/unusedLibrary/junit.jar deleted file mode 100644 index bfb318b2d7eb3f432d43058d0b531f423eb22905..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14291 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 W^jEYE008dSMG67{kk0)3+y4XE=!|Os diff --git a/java/java-tests/testData/inspection/unusedLibrary/junitAsRuntime/expected.xml b/java/java-tests/testData/inspection/unusedLibrary/junitAsRuntime/expected.xml new file mode 100644 index 000000000000..ec272abeaa3a --- /dev/null +++ b/java/java-tests/testData/inspection/unusedLibrary/junitAsRuntime/expected.xml @@ -0,0 +1,3 @@ + + + diff --git a/java/java-tests/testData/inspection/unusedLibrary/junitAsRuntime/src/Test.java b/java/java-tests/testData/inspection/unusedLibrary/junitAsRuntime/src/Test.java new file mode 100644 index 000000000000..96d83e0c5031 --- /dev/null +++ b/java/java-tests/testData/inspection/unusedLibrary/junitAsRuntime/src/Test.java @@ -0,0 +1,2 @@ +class Test { +} \ No newline at end of file diff --git a/java/java-tests/testSrc/com/intellij/java/codeInspection/UnusedLibraryInspectionTest.java b/java/java-tests/testSrc/com/intellij/java/codeInspection/UnusedLibraryInspectionTest.java index 5d6b74c8ac6c..1c9f6d02f1d5 100644 --- a/java/java-tests/testSrc/com/intellij/java/codeInspection/UnusedLibraryInspectionTest.java +++ b/java/java-tests/testSrc/com/intellij/java/codeInspection/UnusedLibraryInspectionTest.java @@ -19,6 +19,10 @@ package com.intellij.java.codeInspection; import com.intellij.JavaTestUtil; import com.intellij.analysis.AnalysisScope; import com.intellij.codeInspection.unusedLibraries.UnusedLibrariesInspection; +import com.intellij.openapi.roots.DependencyScope; +import com.intellij.openapi.roots.LibraryOrderEntry; +import com.intellij.openapi.roots.ModuleRootManager; +import com.intellij.openapi.roots.OrderEntry; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.project.IntelliJProjectConfiguration; import com.intellij.testFramework.InspectionTestCase; @@ -35,6 +39,13 @@ public class UnusedLibraryInspectionTest extends InspectionTestCase { protected void setupRootModel(@NotNull String testDir, @NotNull VirtualFile[] sourceDir, String sdkName) { super.setupRootModel(testDir, sourceDir, sdkName); PsiTestUtil.addProjectLibrary(getModule(), "JUnit", IntelliJProjectConfiguration.getProjectLibraryClassesRootPaths("JUnit4")); + if (getTestName(true).endsWith("Runtime")) { + for (OrderEntry entry : ModuleRootManager.getInstance(getModule()).getOrderEntries()) { + if (entry instanceof LibraryOrderEntry && "JUnit".equals(((LibraryOrderEntry)entry).getLibraryName())) { + ((LibraryOrderEntry)entry).setScope(DependencyScope.RUNTIME); + } + } + } } private void doTest() { @@ -49,6 +60,7 @@ public class UnusedLibraryInspectionTest extends InspectionTestCase { public void testSimple() { doTest(); } public void testUsedJunit() { doTest(); } + public void testJunitAsRuntime() { doTest(); } public void testUsedJunitFromField() { doTest(); } public void testUsedInParameterAnnotation() { doTest(); } }