Name Validator: Remove unused fields and parameters

This commit is contained in:
Alexey Sedunov
2014-09-23 15:40:09 +04:00
parent 5d7a07456d
commit 8ec2b5a973
7 changed files with 18 additions and 28 deletions
@@ -98,7 +98,7 @@ private fun needExplicitParameterTypes(context: InsertionContext, placeholderRan
private fun buildTemplate(lambdaType: JetType, explicitParameterTypes: Boolean, project: Project): Template { private fun buildTemplate(lambdaType: JetType, explicitParameterTypes: Boolean, project: Project): Template {
val parameterTypes = functionParameterTypes(lambdaType) val parameterTypes = functionParameterTypes(lambdaType)
val nameValidator = JetNameValidator.getEmptyValidator(project) //TODO: check for names in scope val nameValidator = JetNameValidator.getEmptyValidator() //TODO: check for names in scope
val useParenthesis = explicitParameterTypes || parameterTypes.size != 1 val useParenthesis = explicitParameterTypes || parameterTypes.size != 1
@@ -116,7 +116,7 @@ public class AddFunctionParametersFix extends ChangeFunctionSignatureFix {
public void configure(@NotNull JetChangeSignatureData changeSignatureData, @NotNull BindingContext bindingContext) { public void configure(@NotNull JetChangeSignatureData changeSignatureData, @NotNull BindingContext bindingContext) {
List<ValueParameterDescriptor> parameters = functionDescriptor.getValueParameters(); List<ValueParameterDescriptor> parameters = functionDescriptor.getValueParameters();
List<? extends ValueArgument> arguments = callElement.getValueArguments(); List<? extends ValueArgument> arguments = callElement.getValueArguments();
JetNameValidator validator = JetNameValidator.createCollectingValidator(callElement.getProject()); JetNameValidator validator = JetNameValidator.createCollectingValidator();
for (int i = 0; i < arguments.size(); i ++) { for (int i = 0; i < arguments.size(); i ++) {
ValueArgument argument = arguments.get(i); ValueArgument argument = arguments.get(i);
@@ -56,12 +56,12 @@ public class ChangeFunctionLiteralSignatureFix extends ChangeFunctionSignatureFi
} }
@Override @Override
protected void invoke(@NotNull final Project project, Editor editor, JetFile file) { protected void invoke(@NotNull Project project, Editor editor, JetFile file) {
BindingContext bindingContext = ResolvePackage.getBindingContext(file); BindingContext bindingContext = ResolvePackage.getBindingContext(file);
runChangeSignature(project, functionDescriptor, new JetChangeSignatureConfiguration() { runChangeSignature(project, functionDescriptor, new JetChangeSignatureConfiguration() {
@Override @Override
public void configure(@NotNull JetChangeSignatureData changeSignatureData, @NotNull BindingContext bindingContext) { public void configure(@NotNull JetChangeSignatureData changeSignatureData, @NotNull BindingContext bindingContext) {
JetNameValidator validator = JetNameValidator.createCollectingValidator(project); JetNameValidator validator = JetNameValidator.createCollectingValidator();
changeSignatureData.clearParameters(); changeSignatureData.clearParameters();
for (JetType type : parameterTypes) { for (JetType type : parameterTypes) {
String name = JetNameSuggester.suggestNames(type, validator, "param")[0]; String name = JetNameSuggester.suggestNames(type, validator, "param")[0];
@@ -128,7 +128,7 @@ private class TypeOrExpressionThereof(private val variance: Variance,
else { else {
JetNameSuggester.suggestNamesForExpression( JetNameSuggester.suggestNamesForExpression(
expressionOfType!!, expressionOfType!!,
JetNameValidator.getEmptyValidator(expressionOfType.getProject()) JetNameValidator.getEmptyValidator()
) )
} }
} }
@@ -665,7 +665,7 @@ public class CreateFunctionFromUsageFix internal (
private fun setupParameterTypeTemplates(builder: TemplateBuilder, parameterList: JetParameterList): List<TypeExpression> { private fun setupParameterTypeTemplates(builder: TemplateBuilder, parameterList: JetParameterList): List<TypeExpression> {
val jetParameters = parameterList.getParameters() val jetParameters = parameterList.getParameters()
assert(jetParameters.size == parameters.size) assert(jetParameters.size == parameters.size)
val dummyValidator = JetNameValidator.getEmptyValidator(parameterList.getProject()) val dummyValidator = JetNameValidator.getEmptyValidator()
val typeParameters = ArrayList<TypeExpression>() val typeParameters = ArrayList<TypeExpression>()
for ((parameter, jetParameter) in parameters.zip(jetParameters)) { for ((parameter, jetParameter) in parameters.zip(jetParameters)) {
@@ -16,32 +16,27 @@
package org.jetbrains.jet.plugin.refactoring; package org.jetbrains.jet.plugin.refactoring;
import com.intellij.openapi.project.Project;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import java.util.HashSet; import java.util.HashSet;
import java.util.Set; import java.util.Set;
public abstract class JetNameValidator { public abstract class JetNameValidator {
private final Project project; private static final JetNameValidator EMPTY_VALIDATOR = new JetNameValidator() {
@Override
protected boolean validateInner(String name) {
return true;
}
};
protected JetNameValidator(Project project) { @NotNull
this.project = project; public static JetNameValidator getEmptyValidator() {
return EMPTY_VALIDATOR;
} }
@NotNull @NotNull
public static JetNameValidator getEmptyValidator(final Project project) { public static JetNameValidator createCollectingValidator() {
return new JetNameValidator(project) { return new JetNameValidator() {
@Override
protected boolean validateInner(String name) {
return true;
}
};
}
@NotNull
public static JetNameValidator createCollectingValidator(final Project project) {
return new JetNameValidator(project) {
private final Set<String> suggestedSet = new HashSet<String>(); private final Set<String> suggestedSet = new HashSet<String>();
@Override @Override
@@ -74,8 +69,4 @@ public abstract class JetNameValidator {
} }
protected abstract boolean validateInner(String name); protected abstract boolean validateInner(String name);
public Project getProject() {
return project;
}
} }
@@ -41,7 +41,6 @@ public class JetNameValidatorImpl extends JetNameValidator {
private final Target myTarget; private final Target myTarget;
public JetNameValidatorImpl(PsiElement container, PsiElement anchor, Target target) { public JetNameValidatorImpl(PsiElement container, PsiElement anchor, Target target) {
super(container.getProject());
myContainer = container; myContainer = container;
myAnchor = anchor; myAnchor = anchor;
myTarget = target; myTarget = target;
@@ -92,7 +92,7 @@ public class JetNameSuggesterTest extends LightCodeInsightFixtureTestCase {
JetRefactoringUtil.selectExpression(myFixture.getEditor(), file, new JetRefactoringUtil.SelectExpressionCallback() { JetRefactoringUtil.selectExpression(myFixture.getEditor(), file, new JetRefactoringUtil.SelectExpressionCallback() {
@Override @Override
public void run(@Nullable JetExpression expression) { public void run(@Nullable JetExpression expression) {
String[] names = JetNameSuggester.suggestNames(expression, JetNameValidator.getEmptyValidator(getProject()), "value"); String[] names = JetNameSuggester.suggestNames(expression, JetNameValidator.getEmptyValidator(), "value");
Arrays.sort(names); Arrays.sort(names);
String result = StringUtil.join(names, "\n").trim(); String result = StringUtil.join(names, "\n").trim();
assertEquals(expectedResultText, result); assertEquals(expectedResultText, result);