diff --git a/java/java-analysis-impl/src/com/intellij/codeInspection/ex/EntryPointsManagerBase.java b/java/java-analysis-impl/src/com/intellij/codeInspection/ex/EntryPointsManagerBase.java index 94c5d9b9e264..b8945da183ee 100644 --- a/java/java-analysis-impl/src/com/intellij/codeInspection/ex/EntryPointsManagerBase.java +++ b/java/java-analysis-impl/src/com/intellij/codeInspection/ex/EntryPointsManagerBase.java @@ -590,7 +590,7 @@ public abstract class EntryPointsManagerBase extends EntryPointsManager implemen } private static Pattern createRegexp(final String pattern) { - final String replace = pattern.replace("*", ".*").replace(".", "\\."); + final String replace = pattern.replace(".", "\\.").replace("*", ".*"); try { return Pattern.compile(replace); } diff --git a/java/java-tests/testSrc/com/intellij/codeInspection/UnusedDeclarationClassPatternsTest.kt b/java/java-tests/testSrc/com/intellij/codeInspection/UnusedDeclarationClassPatternsTest.kt index f96ea6ce8759..bbad694315db 100644 --- a/java/java-tests/testSrc/com/intellij/codeInspection/UnusedDeclarationClassPatternsTest.kt +++ b/java/java-tests/testSrc/com/intellij/codeInspection/UnusedDeclarationClassPatternsTest.kt @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.intellij.codeInspection; +package com.intellij.codeInspection import com.intellij.codeInspection.deadCode.UnusedDeclarationInspection import com.intellij.codeInspection.ex.EntryPointsManagerBase @@ -27,7 +27,7 @@ class UnusedDeclarationClassPatternsTest : LightCodeInsightFixtureTestCase() { val unusedDeclarationInspection = UnusedDeclarationInspection(true) myFixture.enableInspections(unusedDeclarationInspection) val classPattern = EntryPointsManagerBase.ClassPattern() - classPattern.hierarchically = true; + classPattern.hierarchically = true classPattern.pattern = "java.lang.Runnable" val patterns = EntryPointsManagerBase.getInstance(project).patterns try { @@ -41,6 +41,42 @@ class UnusedDeclarationClassPatternsTest : LightCodeInsightFixtureTestCase() { } } + fun testMethodPattern() { + val unusedDeclarationInspection = UnusedDeclarationInspection(true) + myFixture.enableInspections(unusedDeclarationInspection) + val classPattern = EntryPointsManagerBase.ClassPattern() + classPattern.pattern = "C" + classPattern.method = "*" + val patterns = EntryPointsManagerBase.getInstance(project).patterns + try { + patterns.add(classPattern) + myFixture.configureByText("C.java", "public abstract class C { void foo() {} public static void main(String[] args) {}}") + myFixture.checkHighlighting() + } + finally { + patterns.remove(classPattern) + myFixture.disableInspections(unusedDeclarationInspection) + } + } + + fun testMethodPattern1() { + val unusedDeclarationInspection = UnusedDeclarationInspection(true) + myFixture.enableInspections(unusedDeclarationInspection) + val classPattern = EntryPointsManagerBase.ClassPattern() + classPattern.pattern = "C" + classPattern.method = "foo*" + val patterns = EntryPointsManagerBase.getInstance(project).patterns + try { + patterns.add(classPattern) + myFixture.configureByText("C.java", "public abstract class C { void fooBar() {} public static void main(String[] args) {}}") + myFixture.checkHighlighting() + } + finally { + patterns.remove(classPattern) + myFixture.disableInspections(unusedDeclarationInspection) + } + } + fun testNoClassPattern() { val unusedDeclarationInspection = UnusedDeclarationInspection(true) try {