diff options
author | Tor Norbye <tnorbye@google.com> | 2014-08-20 17:28:18 -0700 |
---|---|---|
committer | Tor Norbye <tnorbye@google.com> | 2014-08-20 17:28:18 -0700 |
commit | d76e3920c56d37c942092b7dca20fcaded81c0a5 (patch) | |
tree | 80a55c7b59c38377216daaada4e8bc47b69ceb9a /java/java-impl/src/com/intellij/codeInsight | |
parent | 3b37877a2561bf9fbe072253a18688807d523505 (diff) | |
parent | 1aa2e09bdbd413eacb677e9fa4b50630530d0656 (diff) | |
download | idea-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')
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); } }; |