summaryrefslogtreecommitdiff
path: root/java/java-impl/src/com/intellij/codeInsight
diff options
context:
space:
mode:
authorTor Norbye <tnorbye@google.com>2014-08-20 17:28:18 -0700
committerTor Norbye <tnorbye@google.com>2014-08-20 17:28:18 -0700
commitd76e3920c56d37c942092b7dca20fcaded81c0a5 (patch)
tree80a55c7b59c38377216daaada4e8bc47b69ceb9a /java/java-impl/src/com/intellij/codeInsight
parent3b37877a2561bf9fbe072253a18688807d523505 (diff)
parent1aa2e09bdbd413eacb677e9fa4b50630530d0656 (diff)
downloadidea-d76e3920c56d37c942092b7dca20fcaded81c0a5.tar.gz
Merge remote-tracking branch 'aosp/upstream-master' into merge
Conflicts: .idea/modules.xml platform/platform-impl/src/com/intellij/openapi/updateSettings/impl/UpdatesXmlLoader.java Change-Id: Id899dae9a1e1c79272f8a70e14a7dcef4f760d7f
Diffstat (limited to 'java/java-impl/src/com/intellij/codeInsight')
-rw-r--r--java/java-impl/src/com/intellij/codeInsight/completion/JavaDocCompletionContributor.java20
-rw-r--r--java/java-impl/src/com/intellij/codeInsight/completion/JavaGenerateMemberCompletionContributor.java10
-rw-r--r--java/java-impl/src/com/intellij/codeInsight/completion/JavaMethodCallElement.java6
-rw-r--r--java/java-impl/src/com/intellij/codeInsight/completion/LambdaCompletionProvider.java22
-rw-r--r--java/java-impl/src/com/intellij/codeInsight/completion/MethodReferenceCompletionProvider.java15
-rw-r--r--java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateFromUsageBaseFix.java2
-rw-r--r--java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateGetterOrSetterFix.java6
-rw-r--r--java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateInnerClassFromNewFix.java3
-rw-r--r--java/java-impl/src/com/intellij/codeInsight/generation/surroundWith/SurroundWithUtil.java3
-rw-r--r--java/java-impl/src/com/intellij/codeInsight/intention/impl/BaseMoveInitializerToMethodAction.java16
-rw-r--r--java/java-impl/src/com/intellij/codeInsight/intention/impl/CopyAbstractMethodImplementationHandler.java15
-rw-r--r--java/java-impl/src/com/intellij/codeInsight/intention/impl/SplitDeclarationAction.java8
-rw-r--r--java/java-impl/src/com/intellij/codeInsight/template/postfix/util/JavaPostfixTemplatesUtils.java8
13 files changed, 73 insertions, 61 deletions
diff --git a/java/java-impl/src/com/intellij/codeInsight/completion/JavaDocCompletionContributor.java b/java/java-impl/src/com/intellij/codeInsight/completion/JavaDocCompletionContributor.java
index 49379c2c4f3e..2a9fc2f4a79f 100644
--- a/java/java-impl/src/com/intellij/codeInsight/completion/JavaDocCompletionContributor.java
+++ b/java/java-impl/src/com/intellij/codeInsight/completion/JavaDocCompletionContributor.java
@@ -19,6 +19,7 @@ import com.intellij.codeInsight.TailType;
import com.intellij.codeInsight.completion.scope.CompletionElement;
import com.intellij.codeInsight.completion.scope.JavaCompletionProcessor;
import com.intellij.codeInsight.editorActions.wordSelection.DocTagSelectioner;
+import com.intellij.codeInsight.javadoc.JavaDocUtil;
import com.intellij.codeInsight.lookup.*;
import com.intellij.codeInspection.InspectionProfile;
import com.intellij.codeInspection.SuppressionUtil;
@@ -391,16 +392,19 @@ public class JavaDocCompletionContributor extends CompletionContributor {
private static void shortenReferences(final Project project, final Editor editor, InsertionContext context, int offset) {
PsiDocumentManager.getInstance(project).commitDocument(editor.getDocument());
final PsiElement element = context.getFile().findElementAt(offset);
- final PsiDocTagValue tagValue = PsiTreeUtil.getParentOfType(element, PsiDocTagValue.class);
- if (tagValue != null) {
- try {
- JavaCodeStyleManager.getInstance(project).shortenClassReferences(tagValue);
- }
- catch (IncorrectOperationException e) {
- LOG.error(e);
+ final PsiDocComment docComment = PsiTreeUtil.getParentOfType(element, PsiDocComment.class);
+ if (!JavaDocUtil.isInsidePackageInfo(docComment)) {
+ final PsiDocTagValue tagValue = PsiTreeUtil.getParentOfType(element, PsiDocTagValue.class);
+ if (tagValue != null) {
+ try {
+ JavaCodeStyleManager.getInstance(project).shortenClassReferences(tagValue);
+ }
+ catch (IncorrectOperationException e) {
+ LOG.error(e);
+ }
}
+ PsiDocumentManager.getInstance(context.getProject()).commitAllDocuments();
}
- PsiDocumentManager.getInstance(context.getProject()).commitAllDocuments();
}
}
}
diff --git a/java/java-impl/src/com/intellij/codeInsight/completion/JavaGenerateMemberCompletionContributor.java b/java/java-impl/src/com/intellij/codeInsight/completion/JavaGenerateMemberCompletionContributor.java
index 7015004b7340..351eca4857fd 100644
--- a/java/java-impl/src/com/intellij/codeInsight/completion/JavaGenerateMemberCompletionContributor.java
+++ b/java/java-impl/src/com/intellij/codeInsight/completion/JavaGenerateMemberCompletionContributor.java
@@ -15,10 +15,7 @@
*/
package com.intellij.codeInsight.completion;
-import com.intellij.codeInsight.generation.GenerateMembersUtil;
-import com.intellij.codeInsight.generation.OverrideImplementExploreUtil;
-import com.intellij.codeInsight.generation.OverrideImplementUtil;
-import com.intellij.codeInsight.generation.PsiGenerationInfo;
+import com.intellij.codeInsight.generation.*;
import com.intellij.codeInsight.lookup.LookupElement;
import com.intellij.codeInsight.lookup.LookupElementBuilder;
import com.intellij.icons.AllIcons;
@@ -35,6 +32,7 @@ import com.intellij.util.containers.ContainerUtil;
import javax.swing.*;
import java.util.Arrays;
+import java.util.Collections;
import java.util.List;
import java.util.Set;
@@ -70,8 +68,8 @@ public class JavaGenerateMemberCompletionContributor {
List<PsiMethod> prototypes = ContainerUtil.newArrayList();
for (PsiField field : parent.getFields()) {
if (!(field instanceof PsiEnumConstant)) {
- prototypes.add(GenerateMembersUtil.generateGetterPrototype(field));
- prototypes.add(GenerateMembersUtil.generateSetterPrototype(field));
+ Collections.addAll(prototypes, GetterSetterPrototypeProvider.generateGetterSetters(field, true));
+ Collections.addAll(prototypes, GetterSetterPrototypeProvider.generateGetterSetters(field, false));
}
}
for (final PsiMethod prototype : prototypes) {
diff --git a/java/java-impl/src/com/intellij/codeInsight/completion/JavaMethodCallElement.java b/java/java-impl/src/com/intellij/codeInsight/completion/JavaMethodCallElement.java
index 29906bbde605..c0f82668f74a 100644
--- a/java/java-impl/src/com/intellij/codeInsight/completion/JavaMethodCallElement.java
+++ b/java/java-impl/src/com/intellij/codeInsight/completion/JavaMethodCallElement.java
@@ -39,7 +39,11 @@ public class JavaMethodCallElement extends LookupItem<PsiMethod> implements Type
private boolean myMayNeedExplicitTypeParameters;
public JavaMethodCallElement(@NotNull PsiMethod method) {
- super(method, method.getName());
+ this(method, method.getName());
+ }
+
+ public JavaMethodCallElement(@NotNull PsiMethod method, String methodName) {
+ super(method, methodName);
myMethod = method;
myHelper = null;
myContainingClass = method.getContainingClass();
diff --git a/java/java-impl/src/com/intellij/codeInsight/completion/LambdaCompletionProvider.java b/java/java-impl/src/com/intellij/codeInsight/completion/LambdaCompletionProvider.java
index f169ccd8aa56..4fd7df6c7e2e 100644
--- a/java/java-impl/src/com/intellij/codeInsight/completion/LambdaCompletionProvider.java
+++ b/java/java-impl/src/com/intellij/codeInsight/completion/LambdaCompletionProvider.java
@@ -25,6 +25,7 @@ import com.intellij.openapi.editor.EditorModificationUtil;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.util.text.StringUtil;
import com.intellij.psi.*;
+import com.intellij.psi.codeStyle.CodeStyleManager;
import com.intellij.psi.codeStyle.JavaCodeStyleManager;
import com.intellij.psi.impl.source.resolve.graphInference.FunctionalInterfaceParameterizationUtil;
import com.intellij.psi.util.PsiUtil;
@@ -52,18 +53,25 @@ public class LambdaCompletionProvider extends CompletionProvider<CompletionParam
final Project project = method.getProject();
final PsiElement originalPosition = parameters.getOriginalPosition();
final JVMElementFactory jvmElementFactory = originalPosition != null ? JVMElementFactories.getFactory(originalPosition.getLanguage(), project) : null;
+ final JavaCodeStyleManager javaCodeStyleManager = JavaCodeStyleManager.getInstance(project);
if (jvmElementFactory != null) {
final PsiSubstitutor substitutor = LambdaUtil.getSubstitutor(method, PsiUtil.resolveGenericsClassInType(functionalInterfaceType));
- final JavaCodeStyleManager codeStyleManager = JavaCodeStyleManager.getInstance(project);
- params = GenerateMembersUtil.overriddenParameters(params, jvmElementFactory, codeStyleManager, substitutor, originalPosition);
+ params = GenerateMembersUtil.overriddenParameters(params, jvmElementFactory, javaCodeStyleManager, substitutor, originalPosition);
}
- final String paramsString = params.length == 1 ? params[0].getName() : "(" + StringUtil.join(params, new Function<PsiParameter, String>() {
+ String paramsString =
+ params.length == 1 ? getParamName(params[0], javaCodeStyleManager, originalPosition) : "(" + StringUtil.join(params, new Function<PsiParameter, String>() {
@Override
public String fun(PsiParameter parameter) {
- return parameter.getName();
+ return getParamName(parameter, javaCodeStyleManager, originalPosition);
}
- }, ",") + ")";
+ }, ",") + ")";
+
+ final CodeStyleManager codeStyleManager = CodeStyleManager.getInstance(project);
+ PsiLambdaExpression lambdaExpression = (PsiLambdaExpression)JavaPsiFacade.getElementFactory(project)
+ .createExpressionFromText(paramsString + " -> {}", null);
+ lambdaExpression = (PsiLambdaExpression)codeStyleManager.reformat(lambdaExpression);
+ paramsString = lambdaExpression.getParameterList().getText();
final LookupElementBuilder builder =
LookupElementBuilder.create(paramsString).withPresentableText(paramsString + " -> {}").withInsertHandler(new InsertHandler<LookupElement>() {
@Override
@@ -77,4 +85,8 @@ public class LambdaCompletionProvider extends CompletionProvider<CompletionParam
}
}
}
+
+ private static String getParamName(PsiParameter param, JavaCodeStyleManager javaCodeStyleManager, PsiElement originalPosition) {
+ return javaCodeStyleManager.suggestUniqueVariableName(param.getName(), originalPosition, true);
+ }
}
diff --git a/java/java-impl/src/com/intellij/codeInsight/completion/MethodReferenceCompletionProvider.java b/java/java-impl/src/com/intellij/codeInsight/completion/MethodReferenceCompletionProvider.java
index e83f0ef38c3c..494ed110b254 100644
--- a/java/java-impl/src/com/intellij/codeInsight/completion/MethodReferenceCompletionProvider.java
+++ b/java/java-impl/src/com/intellij/codeInsight/completion/MethodReferenceCompletionProvider.java
@@ -68,7 +68,7 @@ public class MethodReferenceCompletionProvider extends CompletionProvider<Comple
final PsiElement resolve = referenceExpression.resolve();
if (resolve != null && PsiEquivalenceUtil.areElementsEquivalent(element, resolve) &&
PsiMethodReferenceUtil.checkMethodReferenceContext(referenceExpression, resolve, functionalType) == null) {
- result.addElement(new JavaMethodReferenceElement((PsiMethod)element, refPlace, referenceExpression));
+ result.addElement(new JavaMethodReferenceElement((PsiMethod)element, refPlace));
}
}
finally {
@@ -80,19 +80,20 @@ public class MethodReferenceCompletionProvider extends CompletionProvider<Comple
}
private PsiMethodReferenceExpression createMethodReferenceExpression(PsiMethod method) {
+ PsiElementFactory elementFactory = JavaPsiFacade.getElementFactory(method.getProject());
if (refPlace instanceof PsiMethodReferenceExpression) {
final PsiMethodReferenceExpression referenceExpression = (PsiMethodReferenceExpression)refPlace.copy();
final PsiElement referenceNameElement = referenceExpression.getReferenceNameElement();
LOG.assertTrue(referenceNameElement != null, referenceExpression);
- referenceNameElement.replace(JavaPsiFacade.getElementFactory(method.getProject()).createIdentifier(method.getName()));
+ referenceNameElement.replace(method.isConstructor() ? elementFactory.createKeyword("new") : elementFactory.createIdentifier(method.getName()));
return referenceExpression;
}
else if (method.hasModifierProperty(PsiModifier.STATIC)) {
final PsiClass aClass = method.getContainingClass();
LOG.assertTrue(aClass != null);
final String qualifiedName = aClass.getQualifiedName();
- return (PsiMethodReferenceExpression)JavaPsiFacade.getElementFactory(method.getProject()).createExpressionFromText(
- qualifiedName + "::" + method.getName(), refPlace);
+ return (PsiMethodReferenceExpression)elementFactory.createExpressionFromText(
+ qualifiedName + "::" + (method.isConstructor() ? "new" : method.getName()), refPlace);
}
else {
return null;
@@ -113,13 +114,11 @@ public class MethodReferenceCompletionProvider extends CompletionProvider<Comple
private static class JavaMethodReferenceElement extends JavaMethodCallElement {
private final PsiMethod myMethod;
private final PsiElement myRefPlace;
- private PsiMethodReferenceExpression myReferenceExpression;
- public JavaMethodReferenceElement(PsiMethod method, PsiElement refPlace, PsiMethodReferenceExpression referenceExpression) {
- super(method);
+ public JavaMethodReferenceElement(PsiMethod method, PsiElement refPlace) {
+ super(method, method.isConstructor() ? "new" : method.getName());
myMethod = method;
myRefPlace = refPlace;
- myReferenceExpression = referenceExpression;
}
@Override
diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateFromUsageBaseFix.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateFromUsageBaseFix.java
index abe9368374e8..9e8684899939 100644
--- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateFromUsageBaseFix.java
+++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateFromUsageBaseFix.java
@@ -475,7 +475,7 @@ public abstract class CreateFromUsageBaseFix extends BaseIntentionAction {
} else {
while (true) {
final String paramName = idx > 0 ? "T" + idx : "T";
- if (!typeParamNames.contains(paramName)) {
+ if (typeParamNames.add(paramName)) {
targetClass.getTypeParameterList().add(factory.createTypeParameterFromText(paramName, null));
break;
}
diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateGetterOrSetterFix.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateGetterOrSetterFix.java
index 209dde6cf4ea..897c6f80a571 100644
--- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateGetterOrSetterFix.java
+++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateGetterOrSetterFix.java
@@ -18,6 +18,7 @@ package com.intellij.codeInsight.daemon.impl.quickfix;
import com.intellij.codeInsight.FileModificationService;
import com.intellij.codeInsight.daemon.QuickFixBundle;
import com.intellij.codeInsight.generation.GenerateMembersUtil;
+import com.intellij.codeInsight.generation.GetterSetterPrototypeProvider;
import com.intellij.codeInsight.intention.IntentionAction;
import com.intellij.codeInsight.intention.LowPriorityAction;
import com.intellij.openapi.editor.Editor;
@@ -29,6 +30,7 @@ import org.jetbrains.annotations.NonNls;
import org.jetbrains.annotations.NotNull;
import java.util.ArrayList;
+import java.util.Collections;
import java.util.List;
/**
@@ -115,10 +117,10 @@ public class CreateGetterOrSetterFix implements IntentionAction, LowPriorityActi
PsiClass aClass = myField.getContainingClass();
final List<PsiMethod> methods = new ArrayList<PsiMethod>();
if (myCreateGetter) {
- methods.add(GenerateMembersUtil.generateGetterPrototype(myField));
+ Collections.addAll(methods, GetterSetterPrototypeProvider.generateGetterSetters(myField, true));
}
if (myCreateSetter) {
- methods.add(GenerateMembersUtil.generateSetterPrototype(myField));
+ Collections.addAll(methods, GetterSetterPrototypeProvider.generateGetterSetters(myField, false));
}
for (PsiMethod method : methods) {
aClass.add(method);
diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateInnerClassFromNewFix.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateInnerClassFromNewFix.java
index 55fe7664d0b0..333ca47b014c 100644
--- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateInnerClassFromNewFix.java
+++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateInnerClassFromNewFix.java
@@ -67,9 +67,8 @@ public class CreateInnerClassFromNewFix extends CreateClassFromNewFix {
}
created = (PsiClass)targetClass.add(created);
- setupClassFromNewExpression(created, newExpression);
-
setupGenericParameters(created, ref);
+ setupClassFromNewExpression(created, newExpression);
}
private static boolean isInThisOrSuperCall(PsiNewExpression newExpression) {
diff --git a/java/java-impl/src/com/intellij/codeInsight/generation/surroundWith/SurroundWithUtil.java b/java/java-impl/src/com/intellij/codeInsight/generation/surroundWith/SurroundWithUtil.java
index 046a9b7cea0a..2439aafc1e87 100644
--- a/java/java-impl/src/com/intellij/codeInsight/generation/surroundWith/SurroundWithUtil.java
+++ b/java/java-impl/src/com/intellij/codeInsight/generation/surroundWith/SurroundWithUtil.java
@@ -28,6 +28,7 @@ import com.intellij.psi.search.searches.ReferencesSearch;
import com.intellij.psi.util.PsiTypesUtil;
import com.intellij.psi.util.PsiUtilBase;
import com.intellij.psi.util.PsiUtilCore;
+import com.intellij.refactoring.util.RefactoringUtil;
import com.intellij.util.IncorrectOperationException;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -59,7 +60,7 @@ public class SurroundWithUtil {
PsiExpressionStatement assignment = (PsiExpressionStatement)factory.createStatementFromText(name + "=x;", null);
assignment = (PsiExpressionStatement)CodeStyleManager.getInstance(psiManager.getProject()).reformat(assignment);
PsiAssignmentExpression expr = (PsiAssignmentExpression)assignment.getExpression();
- expr.getRExpression().replace(initializer);
+ expr.getRExpression().replace(RefactoringUtil.convertInitializerToNormalExpression(initializer, var.getType()));
assignment = (PsiExpressionStatement)block.addAfter(assignment, declaration);
array.add(assignment);
}
diff --git a/java/java-impl/src/com/intellij/codeInsight/intention/impl/BaseMoveInitializerToMethodAction.java b/java/java-impl/src/com/intellij/codeInsight/intention/impl/BaseMoveInitializerToMethodAction.java
index 4756a5b25a47..5ccdc398684f 100644
--- a/java/java-impl/src/com/intellij/codeInsight/intention/impl/BaseMoveInitializerToMethodAction.java
+++ b/java/java-impl/src/com/intellij/codeInsight/intention/impl/BaseMoveInitializerToMethodAction.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2000-2012 JetBrains s.r.o.
+ * Copyright 2000-2014 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -29,6 +29,7 @@ import com.intellij.psi.*;
import com.intellij.psi.javadoc.PsiDocComment;
import com.intellij.psi.util.PsiTreeUtil;
import com.intellij.refactoring.util.RefactoringChangeUtil;
+import com.intellij.refactoring.util.RefactoringUtil;
import com.intellij.util.IncorrectOperationException;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -126,9 +127,7 @@ public abstract class BaseMoveInitializerToMethodAction extends PsiElementBaseIn
final PsiExpressionStatement statement = (PsiExpressionStatement)factory.createStatementFromText(field.getName() + " = y;", codeBlock);
PsiExpression initializer = field.getInitializer();
- if (initializer instanceof PsiArrayInitializerExpression) {
- initializer = arrayInitializerToNewExpression((PsiArrayInitializerExpression)initializer, factory, codeBlock);
- }
+ initializer = RefactoringUtil.convertInitializerToNormalExpression(initializer, field.getType());
final PsiAssignmentExpression expression = (PsiAssignmentExpression)statement.getExpression();
expression.getRExpression().replace(initializer);
@@ -158,15 +157,6 @@ public abstract class BaseMoveInitializerToMethodAction extends PsiElementBaseIn
return false;
}
- private static PsiExpression arrayInitializerToNewExpression(@NotNull PsiArrayInitializerExpression initializer,
- @NotNull PsiElementFactory factory,
- @NotNull PsiElement context) {
- final PsiType type = initializer.getType();
- final PsiNewExpression newExpression = (PsiNewExpression)factory.createExpressionFromText("new " + type.getCanonicalText() + "{}", context);
- newExpression.getArrayInitializer().replace(initializer);
- return newExpression;
- }
-
private static boolean containsReference(final @NotNull PsiElement element,
final @NotNull PsiField field) {
final Ref<Boolean> result = new Ref<Boolean>(Boolean.FALSE);
diff --git a/java/java-impl/src/com/intellij/codeInsight/intention/impl/CopyAbstractMethodImplementationHandler.java b/java/java-impl/src/com/intellij/codeInsight/intention/impl/CopyAbstractMethodImplementationHandler.java
index ddddf94430f7..6f6dcf4d4d6f 100644
--- a/java/java-impl/src/com/intellij/codeInsight/intention/impl/CopyAbstractMethodImplementationHandler.java
+++ b/java/java-impl/src/com/intellij/codeInsight/intention/impl/CopyAbstractMethodImplementationHandler.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2000-2012 JetBrains s.r.o.
+ * Copyright 2000-2014 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -20,6 +20,7 @@ import com.intellij.codeInsight.CodeInsightBundle;
import com.intellij.codeInsight.generation.GenerateMembersUtil;
import com.intellij.codeInsight.generation.OverrideImplementUtil;
import com.intellij.ide.util.MethodCellRenderer;
+import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.application.Result;
import com.intellij.openapi.command.WriteCommandAction;
import com.intellij.openapi.diagnostic.Logger;
@@ -38,6 +39,7 @@ import com.intellij.psi.util.PsiUtilCore;
import com.intellij.psi.util.TypeConversionUtil;
import com.intellij.ui.components.JBList;
import com.intellij.util.IncorrectOperationException;
+import org.jetbrains.annotations.NotNull;
import javax.swing.*;
import java.util.*;
@@ -66,7 +68,12 @@ public class CopyAbstractMethodImplementationHandler {
ProgressManager.getInstance().runProcessWithProgressSynchronously(new Runnable() {
@Override
public void run() {
- searchExistingImplementations();
+ ApplicationManager.getApplication().runReadAction(new Runnable() {
+ @Override
+ public void run() {
+ searchExistingImplementations();
+ }
+ });
}
}, CodeInsightBundle.message("searching.for.implementations"), false, myProject);
if (mySourceMethods.isEmpty()) {
@@ -152,7 +159,7 @@ public class CopyAbstractMethodImplementationHandler {
final List<PsiMethod> generatedMethods = new ArrayList<PsiMethod>();
new WriteCommandAction(myProject, getTargetFiles()) {
@Override
- protected void run(final Result result) throws Throwable {
+ protected void run(@NotNull final Result result) throws Throwable {
for (PsiEnumConstant enumConstant : myTargetEnumConstants) {
PsiClass initializingClass = enumConstant.getOrCreateInitializingClass();
myTargetClasses.add(initializingClass);
@@ -186,7 +193,7 @@ public class CopyAbstractMethodImplementationHandler {
}
}
}.execute();
- if (generatedMethods.size() > 0) {
+ if (!generatedMethods.isEmpty()) {
PsiMethod target = generatedMethods.get(0);
PsiFile psiFile = target.getContainingFile();
FileEditorManager fileEditorManager = FileEditorManager.getInstance(psiFile.getProject());
diff --git a/java/java-impl/src/com/intellij/codeInsight/intention/impl/SplitDeclarationAction.java b/java/java-impl/src/com/intellij/codeInsight/intention/impl/SplitDeclarationAction.java
index 8c1da6252efb..9ea64d81463b 100644
--- a/java/java-impl/src/com/intellij/codeInsight/intention/impl/SplitDeclarationAction.java
+++ b/java/java-impl/src/com/intellij/codeInsight/intention/impl/SplitDeclarationAction.java
@@ -25,6 +25,7 @@ import com.intellij.psi.*;
import com.intellij.psi.codeStyle.CodeStyleManager;
import com.intellij.psi.javadoc.PsiDocComment;
import com.intellij.psi.util.PsiTreeUtil;
+import com.intellij.refactoring.util.RefactoringUtil;
import com.intellij.util.IncorrectOperationException;
import org.jetbrains.annotations.NotNull;
@@ -119,12 +120,7 @@ public class SplitDeclarationAction extends PsiElementBaseIntentionAction {
statement = (PsiExpressionStatement)CodeStyleManager.getInstance(project).reformat(statement);
PsiAssignmentExpression assignment = (PsiAssignmentExpression)statement.getExpression();
PsiExpression initializer = var.getInitializer();
- PsiExpression rExpression = initializer;
- if (initializer instanceof PsiArrayInitializerExpression && var.getType() instanceof PsiArrayType) {
- rExpression = JavaPsiFacade.getInstance(psiManager.getProject()).getElementFactory().createExpressionFromText(
- "new " + var.getTypeElement().getText() + " " + initializer.getText(), null
- );
- }
+ PsiExpression rExpression = RefactoringUtil.convertInitializerToNormalExpression(initializer, var.getType());
assignment.getRExpression().replace(rExpression);
initializer.delete();
diff --git a/java/java-impl/src/com/intellij/codeInsight/template/postfix/util/JavaPostfixTemplatesUtils.java b/java/java-impl/src/com/intellij/codeInsight/template/postfix/util/JavaPostfixTemplatesUtils.java
index 2142c8fd33da..7e168e23dd1e 100644
--- a/java/java-impl/src/com/intellij/codeInsight/template/postfix/util/JavaPostfixTemplatesUtils.java
+++ b/java/java-impl/src/com/intellij/codeInsight/template/postfix/util/JavaPostfixTemplatesUtils.java
@@ -106,21 +106,21 @@ public abstract class JavaPostfixTemplatesUtils {
public static Condition<PsiElement> IS_THROWABLE = new Condition<PsiElement>() {
@Override
public boolean value(PsiElement element) {
- return element instanceof PsiExpression && isThrowable((((PsiExpression)element).getType()));
+ return element instanceof PsiExpression && isThrowable(((PsiExpression)element).getType());
}
};
public static Condition<PsiElement> IS_NON_VOID = new Condition<PsiElement>() {
@Override
public boolean value(PsiElement element) {
- return element instanceof PsiExpression && isNonVoid((((PsiExpression)element).getType()));
+ return element instanceof PsiExpression && isNonVoid(((PsiExpression)element).getType());
}
};
public static Condition<PsiElement> IS_NOT_PRIMITIVE = new Condition<PsiElement>() {
@Override
public boolean value(PsiElement element) {
- return element instanceof PsiExpression && isNotPrimitiveTypeExpression(((PsiExpression)element));
+ return element instanceof PsiExpression && isNotPrimitiveTypeExpression((PsiExpression)element);
}
};
@@ -130,7 +130,7 @@ public abstract class JavaPostfixTemplatesUtils {
if (!(element instanceof PsiExpression)) return false;
PsiType type = ((PsiExpression)element).getType();
- return (isArray(type) || isIterable(type));
+ return isArray(type) || isIterable(type);
}
};