analyze module conflicts when moving js static members + cosmetics

This commit is contained in:
Kirill Safonov
2009-09-02 18:53:34 +04:00
parent 224bcce2dc
commit 7df910cf99
15 changed files with 44 additions and 46 deletions
@@ -4,8 +4,8 @@ import com.intellij.psi.PsiElement;
import com.intellij.psi.PsiMethod;
import com.intellij.refactoring.RefactoringBundle;
import com.intellij.refactoring.rename.UnresolvableCollisionUsageInfo;
import com.intellij.refactoring.util.ConflictsUtil;
import com.intellij.refactoring.util.RefactoringUIUtil;
import com.intellij.refactoring.util.CommonRefactoringUtil;
/**
* @author dsl
@@ -26,6 +26,6 @@ public class NewParameterCollidesWithLocalUsageInfo extends UnresolvableCollisio
RefactoringUIUtil.getDescription(myConflictingElement, true),
RefactoringUIUtil.getDescription(myMethod, true));
return ConflictsUtil.capitalize(buffer);
return CommonRefactoringUtil.capitalize(buffer);
}
}
@@ -232,7 +232,7 @@ public class InheritanceToDelegationProcessor extends BaseRefactoringProcessor {
if (container != null && !reportedContainers.contains(container)) {
String message = RefactoringBundle.message("0.uses.1.of.an.instance.of.a.2", RefactoringUIUtil.getDescription(container, true),
RefactoringUIUtil.getDescription(nonDelegatedMember, true), classDescription);
conflicts.add(ConflictsUtil.capitalize(message));
conflicts.add(CommonRefactoringUtil.capitalize(message));
reportedContainers.add(container);
}
}
@@ -248,7 +248,7 @@ public class InheritanceToDelegationProcessor extends BaseRefactoringProcessor {
String message = RefactoringBundle.message("0.upcasts.an.instance.of.1.to.2",
RefactoringUIUtil.getDescription(container, true), classDescription,
RefactoringUIUtil.getDescription(upcastedTo, false));
conflicts.add(ConflictsUtil.capitalize(message));
conflicts.add(CommonRefactoringUtil.capitalize(message));
reportedContainers.add(container);
}
}
@@ -151,7 +151,7 @@ public class InlineMethodProcessor extends BaseRefactoringProcessor {
final String containerDescription = RefactoringUIUtil.getDescription(container, true);
String message = RefactoringBundle.message("0.that.is.used.in.inlined.method.is.not.accessible.from.call.site.s.in.1",
referencedDescription, containerDescription);
conflicts.add(ConflictsUtil.capitalize(message));
conflicts.add(CommonRefactoringUtil.capitalize(message));
}
}
}
@@ -286,7 +286,7 @@ public class IntroduceParameterProcessor extends BaseRefactoringProcessor implem
String descr = RefactoringBundle.message("there.is.already.a.0.it.will.conflict.with.an.introduced.parameter",
RefactoringUIUtil.getDescription(variable, true));
conflict = ConflictsUtil.capitalize(descr);
conflict = CommonRefactoringUtil.capitalize(descr);
}
}
@@ -698,7 +698,7 @@ public abstract class IntroduceVariableBase extends IntroduceHandlerBase impleme
if (!modifiedInBody.isEmpty()) {
for (PsiVariable variable : modifiedInBody) {
final String message = RefactoringBundle.message("is.modified.in.loop.body", RefactoringUIUtil.getDescription(variable, false));
conflicts.add(ConflictsUtil.capitalize(message));
conflicts.add(CommonRefactoringUtil.capitalize(message));
}
conflicts.add(RefactoringBundle.message("introducing.variable.may.break.code.logic"));
}
@@ -14,10 +14,7 @@ import com.intellij.psi.util.MethodSignatureUtil;
import com.intellij.psi.util.PsiUtil;
import com.intellij.psi.util.TypeConversionUtil;
import com.intellij.refactoring.RefactoringBundle;
import com.intellij.refactoring.util.ConflictsUtil;
import com.intellij.refactoring.util.RefactoringHierarchyUtil;
import com.intellij.refactoring.util.RefactoringUIUtil;
import com.intellij.refactoring.util.RefactoringUtil;
import com.intellij.refactoring.util.*;
import com.intellij.refactoring.util.classMembers.ClassMemberReferencesVisitor;
import com.intellij.refactoring.util.classMembers.InterfaceContainmentVerifier;
import com.intellij.refactoring.util.classMembers.MemberInfo;
@@ -100,7 +97,7 @@ public class PullUpConflictsUtil {
&& !(member instanceof PsiClass && ((PsiClass)member).isInterface())) {
String message =
RefactoringBundle.message("0.is.not.static.it.cannot.be.moved.to.the.interface", RefactoringUIUtil.getDescription(member, false));
message = ConflictsUtil.capitalize(message);
message = CommonRefactoringUtil.capitalize(message);
conflictsList.add(message);
}
}
@@ -108,7 +105,7 @@ public class PullUpConflictsUtil {
if (member instanceof PsiField && ((PsiField)member).getInitializer() == null) {
String message = RefactoringBundle.message("0.is.not.initialized.in.declaration.such.fields.are.not.allowed.in.interfaces",
RefactoringUIUtil.getDescription(member, false));
conflictsList.add(ConflictsUtil.capitalize(message));
conflictsList.add(CommonRefactoringUtil.capitalize(message));
}
}
}
@@ -135,7 +132,7 @@ public class PullUpConflictsUtil {
String message = RefactoringBundle.message("0.already.contains.a.1",
RefactoringUIUtil.getDescription(superClass, false),
RefactoringUIUtil.getDescription(member, false));
message = ConflictsUtil.capitalize(message);
message = CommonRefactoringUtil.capitalize(message);
conflictsList.add(message);
}
}
@@ -188,7 +185,7 @@ public class PullUpConflictsUtil {
String message = RefactoringBundle.message("0.uses.1.which.is.not.accessible.from.the.superclass",
RefactoringUIUtil.getDescription(myScope, false),
RefactoringUIUtil.getDescription(classMember, true));
message = ConflictsUtil.capitalize(message);
message = CommonRefactoringUtil.capitalize(message);
myConflictsList.add(message);
}
@@ -199,7 +196,7 @@ public class PullUpConflictsUtil {
String message = RefactoringBundle.message("0.uses.1.which.is.not.moved.to.the.superclass",
RefactoringUIUtil.getDescription(myScope, false),
RefactoringUIUtil.getDescription(classMember, true));
message = ConflictsUtil.capitalize(message);
message = CommonRefactoringUtil.capitalize(message);
myConflictsList.add(message);
}
}
@@ -5,7 +5,6 @@ import com.intellij.psi.search.searches.ReferencesSearch;
import com.intellij.psi.util.InheritanceUtil;
import com.intellij.refactoring.RefactoringBundle;
import com.intellij.refactoring.util.CommonRefactoringUtil;
import com.intellij.refactoring.util.ConflictsUtil;
import com.intellij.refactoring.util.RefactoringUIUtil;
import com.intellij.refactoring.util.classMembers.ClassMemberReferencesVisitor;
import com.intellij.refactoring.util.classMembers.MemberInfo;
@@ -87,7 +86,7 @@ public class PushDownConflicts {
String name = movedMember.getName();
if (targetClass.findFieldByName(name, false) != null) {
String message = RefactoringBundle.message("0.already.contains.field.1", RefactoringUIUtil.getDescription(targetClass, false), CommonRefactoringUtil.htmlEmphasize(name));
myConflicts.add(ConflictsUtil.capitalize(message));
myConflicts.add(CommonRefactoringUtil.capitalize(message));
}
}
else if (movedMember instanceof PsiMethod) {
@@ -98,7 +97,7 @@ public class PushDownConflicts {
if (targetClass.findMethodBySignature(method, false) != null) {
String message = RefactoringBundle.message("0.is.already.overridden.in.1",
RefactoringUIUtil.getDescription(method, true), RefactoringUIUtil.getDescription(targetClass, false));
myConflicts.add(ConflictsUtil.capitalize(message));
myConflicts.add(CommonRefactoringUtil.capitalize(message));
}
}
}
@@ -130,7 +129,7 @@ public class PushDownConflicts {
if(myMovedMembers.contains(classMember) && !myAbstractMembers.contains(classMember)) {
String message = RefactoringBundle.message("0.uses.1.which.is.pushed.down", RefactoringUIUtil.getDescription(mySource, false),
RefactoringUIUtil.getDescription(classMember, false));
message = ConflictsUtil.capitalize(message);
message = CommonRefactoringUtil.capitalize(message);
myConflicts.add(message);
}
}
@@ -538,7 +538,7 @@ public class MoveClassesOrPackagesProcessor extends BaseRefactoringProcessor {
if (!myTargetPackage.equalToPackage(aPackage)) {
String message = RefactoringBundle.message("0.will.be.inaccessible.from.1", RefactoringUIUtil.getDescription(member, true),
RefactoringUIUtil.getDescription(container, true));
myConflicts.add(ConflictsUtil.capitalize(message));
myConflicts.add(CommonRefactoringUtil.capitalize(message));
}
}
}
@@ -7,6 +7,7 @@ import com.intellij.refactoring.RefactoringBundle;
import com.intellij.refactoring.util.ConflictsUtil;
import com.intellij.util.VisibilityUtil;
import com.intellij.refactoring.util.RefactoringUIUtil;
import com.intellij.refactoring.util.CommonRefactoringUtil;
import com.intellij.util.containers.HashMap;
import java.util.HashSet;
@@ -55,7 +56,7 @@ class PackageLocalsUsageCollector extends JavaRecursiveElementWalkingVisitor {
final String message = RefactoringBundle.message("0.uses.a.package.local.1",
RefactoringUIUtil.getDescription(container, true),
RefactoringUIUtil.getDescription(resolved, true));
myConflicts.add(ConflictsUtil.capitalize(message));
myConflicts.add(CommonRefactoringUtil.capitalize(message));
reportedRefs.add(container);
}
}
@@ -305,7 +305,7 @@ public class MoveMembersProcessor extends BaseRefactoringProcessor {
PsiMethod method = (PsiMethod)member;
if (hasMethod(targetClass, method)) {
String message = RefactoringBundle.message("0.already.exists.in.the.target.class", RefactoringUIUtil.getDescription(method, false));
message = ConflictsUtil.capitalize(message);
message = CommonRefactoringUtil.capitalize(message);
conflicts.add(message);
}
}
@@ -313,7 +313,7 @@ public class MoveMembersProcessor extends BaseRefactoringProcessor {
PsiField field = (PsiField)member;
if (hasField(targetClass, field)) {
String message = RefactoringBundle.message("0.already.exists.in.the.target.class", RefactoringUIUtil.getDescription(field, false));
message = ConflictsUtil.capitalize(message);
message = CommonRefactoringUtil.capitalize(message);
conflicts.add(message);
}
}
@@ -352,7 +352,7 @@ public class MoveMembersProcessor extends BaseRefactoringProcessor {
RefactoringUIUtil.getDescription(targetClass, true),
VisibilityUtil.getVisibilityStringToDisplay(targetClass),
RefactoringUIUtil.getDescription(ConflictsUtil.getContainer(ref), true));
message = ConflictsUtil.capitalize(message);
message = CommonRefactoringUtil.capitalize(message);
conflicts.add(message);
}
//check for member accessibility
@@ -361,7 +361,7 @@ public class MoveMembersProcessor extends BaseRefactoringProcessor {
RefactoringUIUtil.getDescription(member, true),
VisibilityUtil.getVisibilityStringToDisplay(member),
RefactoringUIUtil.getDescription(ConflictsUtil.getContainer(ref), true));
message = ConflictsUtil.capitalize(message);
message = CommonRefactoringUtil.capitalize(message);
conflicts.add(message);
}
}
@@ -426,7 +426,7 @@ public class MoveMembersProcessor extends BaseRefactoringProcessor {
RefactoringUIUtil.getDescription(refMember, true),
VisibilityUtil.getVisibilityStringToDisplay(refMember),
RefactoringUIUtil.getDescription(member, false));
message = ConflictsUtil.capitalize(message);
message = CommonRefactoringUtil.capitalize(message);
conflicts.add(message);
}
}
@@ -10,8 +10,8 @@ package com.intellij.refactoring.rename;
import com.intellij.psi.PsiElement;
import com.intellij.refactoring.RefactoringBundle;
import com.intellij.refactoring.util.ConflictsUtil;
import com.intellij.refactoring.util.RefactoringUIUtil;
import com.intellij.refactoring.util.CommonRefactoringUtil;
import com.intellij.usageView.UsageViewUtil;
public class LocalHidesRenamedLocalUsageInfo extends UnresolvableCollisionUsageInfo {
@@ -27,6 +27,6 @@ public class LocalHidesRenamedLocalUsageInfo extends UnresolvableCollisionUsageI
final String descr = RefactoringBundle.message("there.is.already.a.0.it.will.conflict.with.the.renamed.1",
RefactoringUIUtil.getDescription(myConflictingElement, true),
UsageViewUtil.getType(getElement()));
return ConflictsUtil.capitalize(descr);
return CommonRefactoringUtil.capitalize(descr);
}
}
@@ -11,8 +11,8 @@ package com.intellij.refactoring.rename;
import com.intellij.psi.PsiElement;
import com.intellij.psi.PsiMethod;
import com.intellij.refactoring.RefactoringBundle;
import com.intellij.refactoring.util.ConflictsUtil;
import com.intellij.refactoring.util.RefactoringUIUtil;
import com.intellij.refactoring.util.CommonRefactoringUtil;
import com.intellij.usageView.UsageViewUtil;
public class SubmemberHidesMemberUsageInfo extends UnresolvableCollisionUsageInfo {
@@ -32,6 +32,6 @@ public class SubmemberHidesMemberUsageInfo extends UnresolvableCollisionUsageInf
RefactoringUIUtil.getDescription(getElement(), true),
UsageViewUtil.getType(getElement()));
}
return ConflictsUtil.capitalize(descr);
return CommonRefactoringUtil.capitalize(descr);
}
}
@@ -28,10 +28,6 @@ public class ConflictsUtil {
}
}
public static String capitalize(String text) {
return Character.toUpperCase(text.charAt(0)) + text.substring(1);
}
public static void checkMethodConflicts(@Nullable PsiClass aClass,
PsiMethod refactoredMethod,
PsiMethod prototype,
@@ -1119,12 +1119,12 @@ public class RefactoringUtil {
@Override public void visitReferenceElement(PsiJavaCodeReferenceElement reference) {
super.visitReferenceElement(reference);
final PsiElement resolved = reference.resolve();
if (resolved != null && !reported.contains(resolved) && !isAncestor(resolved, scopes) &&
if (resolved != null && !reported.contains(resolved) && !CommonRefactoringUtil.isAncestor(resolved, scopes) &&
!PsiSearchScopeUtil.isInScope(resolveScope, resolved)) {
final String scopeDescription =
CommonRefactoringUtil.htmlEmphasize(RefactoringUIUtil.getDescription(ConflictsUtil.getContainer(reference), true));
final String message = RefactoringBundle.message("0.referenced.in.1.will.not.be.accessible.in.module.2",
ConflictsUtil.capitalize(CommonRefactoringUtil.htmlEmphasize(
CommonRefactoringUtil.capitalize(CommonRefactoringUtil.htmlEmphasize(
RefactoringUIUtil.getDescription(resolved, true))), scopeDescription,
CommonRefactoringUtil.htmlEmphasize(
targetModule.getName()));
@@ -1166,14 +1166,14 @@ public class RefactoringUtil {
final String message;
if (module == targetModule && isInTestSources) {
message = RefactoringBundle.message("0.referenced.in.1.will.not.be.accessible.from.production.of.module.2",
ConflictsUtil.capitalize(CommonRefactoringUtil.htmlEmphasize(
CommonRefactoringUtil.capitalize(CommonRefactoringUtil.htmlEmphasize(
RefactoringUIUtil.getDescription(moveRenameUsageInfo.getReferencedElement(), true))),
scopeDescription,
CommonRefactoringUtil.htmlEmphasize(module.getName()));
}
else {
message = RefactoringBundle.message("0.referenced.in.1.will.not.be.accessible.from.module.2",
ConflictsUtil.capitalize(CommonRefactoringUtil.htmlEmphasize(
CommonRefactoringUtil.capitalize(CommonRefactoringUtil.htmlEmphasize(
RefactoringUIUtil.getDescription(moveRenameUsageInfo.getReferencedElement(), true))),
scopeDescription,
CommonRefactoringUtil.htmlEmphasize(module.getName()));
@@ -1187,13 +1187,6 @@ public class RefactoringUtil {
}
}
private static boolean isAncestor(final PsiElement resolved, final Collection<? extends PsiElement> scopes) {
for (final PsiElement scope : scopes) {
if (PsiTreeUtil.isAncestor(scope, resolved, false)) return true;
}
return false;
}
@Nullable
public static PsiTypeParameterList createTypeParameterListWithUsedTypeParameters(@NotNull final PsiElement... elements) {
return createTypeParameterListWithUsedTypeParameters(null, elements);
@@ -23,6 +23,7 @@ import com.intellij.openapi.vfs.JarFileSystem;
import com.intellij.openapi.vfs.ReadonlyStatusHandler;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.psi.*;
import com.intellij.psi.util.PsiTreeUtil;
import com.intellij.refactoring.RefactoringBundle;
import com.intellij.codeInsight.hint.HintManager;
import gnu.trove.THashSet;
@@ -207,4 +208,15 @@ public class CommonRefactoringUtil {
}
}
}
public static String capitalize(String text) {
return Character.toUpperCase(text.charAt(0)) + text.substring(1);
}
public static boolean isAncestor(final PsiElement resolved, final Collection<? extends PsiElement> scopes) {
for (final PsiElement scope : scopes) {
if (PsiTreeUtil.isAncestor(scope, resolved, false)) return true;
}
return false;
}
}