mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
extract method: redundant cast treatments (IDEA-125259)
This commit is contained in:
+10
-8
@@ -800,15 +800,17 @@ public class ExtractMethodProcessor implements MatchProvider {
|
||||
int i = 0;
|
||||
for (VariableData data : myVariableDatum) {
|
||||
if (!data.passAsParameter) continue;
|
||||
final PsiVariable variable = data.variable;
|
||||
final PsiParameter psiParameter = newMethod.getParameterList().getParameters()[i++];
|
||||
if (!TypeConversionUtil.isAssignable(variable.getType(), psiParameter.getType())) {
|
||||
for (PsiReference reference : ReferencesSearch.search(psiParameter, new LocalSearchScope(body))){
|
||||
final PsiElement element = reference.getElement();
|
||||
if (element != null) {
|
||||
final PsiElement parent = element.getParent();
|
||||
if (parent instanceof PsiTypeCastExpression) {
|
||||
RedundantCastUtil.removeCast((PsiTypeCastExpression)parent);
|
||||
final PsiType paramType = psiParameter.getType();
|
||||
for (PsiReference reference : ReferencesSearch.search(psiParameter, new LocalSearchScope(body))){
|
||||
final PsiElement element = reference.getElement();
|
||||
if (element != null) {
|
||||
final PsiElement parent = element.getParent();
|
||||
if (parent instanceof PsiTypeCastExpression) {
|
||||
final PsiTypeCastExpression typeCastExpression = (PsiTypeCastExpression)parent;
|
||||
final PsiTypeElement castType = typeCastExpression.getCastType();
|
||||
if (castType != null && Comparing.equal(castType.getType(), paramType)) {
|
||||
RedundantCastUtil.removeCast(typeCastExpression);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,7 +6,7 @@ public class Test {
|
||||
}
|
||||
|
||||
private void newMethod(A o) {
|
||||
((A)o).bar();
|
||||
o.bar();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -6,6 +6,6 @@ class Test {
|
||||
}
|
||||
|
||||
private String newMethod(String x) {
|
||||
return ((String)x).substring(1);
|
||||
return x.substring(1);
|
||||
}
|
||||
}
|
||||
@@ -6,6 +6,6 @@ class Test {
|
||||
}
|
||||
|
||||
private PsiPackage newMethod(IOException targetElement) {
|
||||
return JavaDirectoryService.getInstance().getPackage((IOException)targetElement);
|
||||
return JavaDirectoryService.getInstance().getPackage(targetElement);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user