inspection "expression can be de-lambdified": false positives removed

This commit is contained in:
Alexey Kudravtsev
2017-08-07 19:07:16 +03:00
parent 77efa5e9dd
commit 62759679eb
+4 -2
View File
@@ -761,8 +761,10 @@
<constraint name="s" nameOfExprType="java.lang.String" exprTypeWithinHierarchy="true" within="" contains="" />
<constraint name="c" nameOfExprType="char" exprTypeWithinHierarchy="true" within="" contains="" />
</replaceConfiguration>
<replaceConfiguration name="Can be de-lambdified" text="()-&gt;$R$.run()&#10;&#10;" recursive="false" caseInsensitive="true" type="JAVA" reformatAccordingToStyle="true" shortenFQN="true" replacement="$R$&#10;&#10;">
<constraint name="R" script="&quot;R instanceof com.intellij.psi.PsiExpression &amp;&amp; &#10;com.intellij.psi.util.InheritanceUtil.isInheritor(com.intellij.psi.util.PsiUtil.resolveClassInType(((com.intellij.psi.PsiExpression)R).getType()), &quot;java.lang.Runnable&quot;)&quot;" exprTypeWithinHierarchy="true" formalTypeWithinHierarchy="true" within="" contains="" />
<replaceConfiguration name="Can be de-lambdified" text="()-&gt;$R$.$f$()" recursive="false" caseInsensitive="true" type="JAVA" reformatAccordingToStyle="true" shortenFQN="true" replacement="$R$&#10;&#10;">
<constraint name="R" script="&quot;import com.intellij.psi.*&#10;import com.intellij.psi.util.*&#10;import com.intellij.psi.impl.source.tree.java.PsiLambdaExpressionImpl;&#10;&#10;//System.out.println(&quot;R &quot;+ R+&quot;; pa &quot;+R.getParent()+&quot;; &quot;+R.getParent().getParent().getParent())&#10;if (!(R instanceof PsiExpression) || !(R.getParent().getParent().getParent() instanceof PsiLambdaExpressionImpl)) {&#10; return false;&#10;}&#10; &#10;PsiType type = ((PsiExpression)R).getType();&#10;&#10;PsiLambdaExpressionImpl la = (PsiLambdaExpressionImpl) R.getParent().getParent().getParent();&#10;if (type == null || !(la.getBody() instanceof PsiExpression) || la.getParameterList().getParametersCount() != 0) return false;&#10;PsiType targetType = la.getFunctionalInterfaceType();&#10;if (targetType == null) return false;&#10;//System.out.println(&quot;type &quot;+ type+&quot;; tt &quot;+targetType+&quot;; &quot;+type.isAssignableFrom(targetType))&#10;return type.isAssignableFrom(targetType);&#10;&quot;" exprTypeWithinHierarchy="true" formalTypeWithinHierarchy="true" within="" contains="" />
<constraint name="__context__" target="true" within="" contains="" />
<constraint name="f" within="" contains="" />
</replaceConfiguration>
</inspection_tool>
<inspection_tool class="SafeVarargsDetector" enabled="false" level="WARNING" enabled_by_default="false" />