deprecation inspection: do not suggest fix if method is not applicable IDEA-209685

This commit is contained in:
Dmitry Batkovich
2019-04-16 15:26:51 +03:00
parent 3f721a3d94
commit 00913bf027
2 changed files with 27 additions and 0 deletions
@@ -234,6 +234,12 @@ public abstract class DeprecationInspectionBase extends LocalInspectionTool {
else {
PsiExpression qualifierExpression = call.getMethodExpression().getQualifierExpression();
qualifierText = qualifierExpression == null ? "" : qualifierExpression.getText() + ".";
PsiType qualifierType = ExpressionUtils.getQualifierOrThis(call.getMethodExpression()).getType();
PsiClass qualifierClass = PsiUtil.resolveClassInType(qualifierType);
if (qualifierClass == null) return false;
PsiClass suggestedClass = suggestedReplacement.getContainingClass();
if (suggestedClass == null || !InheritanceUtil.isInheritorOrSelf(qualifierClass, suggestedClass, true)) return false;
}
PsiElementFactory elementFactory = JavaPsiFacade.getElementFactory(initial.getProject());
@@ -0,0 +1,21 @@
// "Replace method call with Test2.mmm" "false"
class Test {
static void example() {
Test t = new Test();
t.m<caret>mm();
}
/**
* {@link Test2#mmm()}
*
*/
@Deprecated
void mmm() {
}
}
class Test2 {
void mmm() {
}
}