From 959cee147178117efb9adbef2425e3886032589e Mon Sep 17 00:00:00 2001 From: nik Date: Mon, 18 May 2015 15:01:02 +0300 Subject: [PATCH] IDEA-135998: Do not suggest to replace 'matches' method with precompiled Pattern in GWT Client Code --- .../intellij/psi/impl/AllowedApiFilterExtension.java | 0 ...gexReplaceableByCompiledPatternInspectionBase.java | 11 ++++++++++- 2 files changed, 10 insertions(+), 1 deletion(-) rename java/{java-impl => java-analysis-impl}/src/com/intellij/psi/impl/AllowedApiFilterExtension.java (100%) diff --git a/java/java-impl/src/com/intellij/psi/impl/AllowedApiFilterExtension.java b/java/java-analysis-impl/src/com/intellij/psi/impl/AllowedApiFilterExtension.java similarity index 100% rename from java/java-impl/src/com/intellij/psi/impl/AllowedApiFilterExtension.java rename to java/java-analysis-impl/src/com/intellij/psi/impl/AllowedApiFilterExtension.java diff --git a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/performance/DynamicRegexReplaceableByCompiledPatternInspectionBase.java b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/performance/DynamicRegexReplaceableByCompiledPatternInspectionBase.java index feca10548dfc..d826a47a84c9 100644 --- a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/performance/DynamicRegexReplaceableByCompiledPatternInspectionBase.java +++ b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/performance/DynamicRegexReplaceableByCompiledPatternInspectionBase.java @@ -16,8 +16,10 @@ package com.siyeh.ig.performance; import com.intellij.codeInspection.ui.SingleCheckboxOptionsPanel; +import com.intellij.openapi.extensions.Extensions; import com.intellij.openapi.util.WriteExternalException; import com.intellij.psi.*; +import com.intellij.psi.impl.AllowedApiFilterExtension; import com.siyeh.InspectionGadgetsBundle; import com.siyeh.ig.BaseInspection; import com.siyeh.ig.BaseInspectionVisitor; @@ -124,7 +126,14 @@ public class DynamicRegexReplaceableByCompiledPatternInspectionBase extends Base return false; } final String className = containingClass.getQualifiedName(); - return CommonClassNames.JAVA_LANG_STRING.equals(className); + if (!CommonClassNames.JAVA_LANG_STRING.equals(className)) { + return false; + } + if (Extensions.getRootArea().hasExtensionPoint(AllowedApiFilterExtension.EP_NAME.getName())) { + //todo[nik] remove this condition when the extension point will be registered in java-analysis-impl module + return AllowedApiFilterExtension.isClassAllowed("java.util.regex.Pattern", expression); + } + return true; } private boolean isOptimizedPattern(String regex) {