diff --git a/source/com/intellij/refactoring/openapi/impl/TypeCookRefactoringImpl.java b/source/com/intellij/refactoring/openapi/impl/TypeCookRefactoringImpl.java index 5ab0399071eb..ad1a96f0f51f 100644 --- a/source/com/intellij/refactoring/openapi/impl/TypeCookRefactoringImpl.java +++ b/source/com/intellij/refactoring/openapi/impl/TypeCookRefactoringImpl.java @@ -8,7 +8,7 @@ import com.intellij.openapi.project.Project; import com.intellij.psi.PsiElement; import com.intellij.refactoring.RefactoringImpl; import com.intellij.refactoring.TypeCookRefactoring; -import com.intellij.refactoring.typeCook.TypeCookProcessor; +import com.intellij.refactoring.typeCook.deductive.TypeCookProcessor; import java.util.List; diff --git a/source/com/intellij/refactoring/typeCook/Util.java b/source/com/intellij/refactoring/typeCook/Util.java index d2107422561f..084b9e062b26 100644 --- a/source/com/intellij/refactoring/typeCook/Util.java +++ b/source/com/intellij/refactoring/typeCook/Util.java @@ -778,5 +778,71 @@ public class Util { return false; } + + public static void changeType(final PsiElement element, final PsiType type) { + try { + if (element instanceof PsiTypeCastExpression) { + final PsiTypeCastExpression cast = ((PsiTypeCastExpression)element); + + cast.getCastType().replace(cast.getManager().getElementFactory().createTypeElement(type)); + } + else if (element instanceof PsiVariable) { + final PsiVariable field = ((PsiVariable)element); + + field.normalizeDeclaration(); + field.getTypeElement().replace(field.getManager().getElementFactory().createTypeElement(type)); + } + else if (element instanceof PsiMethod) { + final PsiMethod method = ((PsiMethod)element); + + method.getReturnTypeElement().replace(method.getManager().getElementFactory().createTypeElement(type)); + } + else if (element instanceof PsiNewExpression) { + final PsiNewExpression newx = (PsiNewExpression)element; + final PsiClassType.ClassResolveResult result = Util.resolveType(type); + + if (result == null) { + return; + } + + final PsiSubstitutor subst = result.getSubstitutor(); + final PsiTypeParameter[] parms = Util.getTypeParametersList(result.getElement()); + + if (parms.length >= 0 && subst.substitute(parms[0]) != null) { + PsiJavaCodeReferenceElement classReference = newx.getClassReference(); + PsiReferenceParameterList list = null; + + if (classReference == null) { + list = newx.getAnonymousClass().getBaseClassReference().getParameterList(); + } + else { + list = classReference.getParameterList(); + } + + if (list == null) { + return; + } + + final PsiElementFactory factory = newx.getManager().getElementFactory(); + + PsiTypeElement[] elements = list.getTypeParameterElements(); + for (int i = 0; i < elements.length; i++) { + elements[i].delete(); + } + + for (int i = 0; i < parms.length; i++) { + PsiType aType = subst.substitute(parms[i]); + list.add(factory.createTypeElement(aType == null ? PsiType.getJavaLangObject(list.getManager()) : aType)); + } + } + } + else { + LOG.error ("Unexpected element type " + element.getClass().getName()); + } + } + catch (IncorrectOperationException e) { + LOG.error("Incorrect Operation Exception thrown in CastRole.\n"); + } + } } diff --git a/source/com/intellij/refactoring/typeCook/deductive/builder/Result.java b/source/com/intellij/refactoring/typeCook/deductive/builder/Result.java new file mode 100644 index 000000000000..81898d438aaf --- /dev/null +++ b/source/com/intellij/refactoring/typeCook/deductive/builder/Result.java @@ -0,0 +1,128 @@ +package com.intellij.refactoring.typeCook.deductive.builder; + +import com.intellij.psi.*; +import com.intellij.refactoring.typeCook.deductive.PsiTypeVariable; +import com.intellij.refactoring.typeCook.deductive.resolver.Binding; +import com.intellij.refactoring.typeCook.Bottom; +import com.intellij.refactoring.typeCook.Util; +import com.intellij.openapi.project.Project; + +import java.util.HashSet; +import java.util.HashMap; +import java.util.Iterator; + +/** + * Created by IntelliJ IDEA. + * User: db + * Date: Feb 7, 2005 + * Time: 7:40:34 PM + * To change this template use File | Settings | File Templates. + */ +public class Result { + final HashSet myVictims; + final HashMap myTypes; + final Project myProject; + + Binding myBinding; + + public Result(final System system) { + myVictims = system.myElements; + myTypes = system.myTypes; + myProject = system.myProject; + } + + final private PsiType substitute(final PsiType t) { + if (t instanceof PsiWildcardType) { + final PsiWildcardType wcType = (PsiWildcardType)t; + final PsiType bound = wcType.getBound(); + + if (bound == null) { + return t; + } + + final PsiManager manager = PsiManager.getInstance(myProject); + final PsiType subst = substitute(bound); + return wcType.isExtends() ? PsiWildcardType.createExtends(manager, subst) : PsiWildcardType.createSuper(manager, subst); + } + else if (t instanceof PsiTypeVariable) { + final PsiType b = myBinding.apply(t); + + if (b instanceof Bottom || b instanceof PsiTypeVariable) { + return null; + } + + return substitute(b); + } + else if (t instanceof Bottom) { + return null; + } + else if (t instanceof PsiArrayType) { + return substitute(((PsiArrayType)t).getComponentType()).createArrayType(); + } + else if (t instanceof PsiClassType) { + final PsiClassType.ClassResolveResult result = ((PsiClassType)t).resolveGenerics(); + + final PsiClass aClass = result.getElement(); + final PsiSubstitutor aSubst = result.getSubstitutor(); + + if (aClass == null) { + return t; + } + + PsiSubstitutor theSubst = PsiSubstitutor.EMPTY; + + for (final Iterator p = aSubst.getSubstitutionMap().keySet().iterator(); p.hasNext();) { + final PsiTypeParameter parm = p.next(); + final PsiType type = aSubst.substitute(parm); + + theSubst = theSubst.put(parm, substitute(type)); + } + + return aClass.getManager().getElementFactory().createType(aClass, theSubst); + } + else { + return t; + } + } + + public void incorporateSolution(final Binding binding) { + if (myBinding == null) { + myBinding = binding; + } + else { + myBinding.merge(binding); + } + } + + public PsiType getCookedType(final PsiElement element) { + return substitute(myTypes.get(element)); + } + + public HashSet getCookedElements() { + final HashSet set = new HashSet(); + + for (final Iterator e = myVictims.iterator(); e.hasNext();) { + final PsiElement element = e.next(); + final PsiType originalType = + element instanceof PsiMethod + ? ((PsiMethod)element).getReturnType() + : element instanceof PsiVariable + ? ((PsiVariable)element).getType() + : ((PsiExpression)element).getType(); + + if (!originalType.equals(getCookedType(element))){ + set.add(element); + } + } + + return set; + } + + public void apply(final HashSet victims) { + for (final Iterator e=victims.iterator(); e.hasNext();){ + final PsiElement element = e.next(); + + Util.changeType(element, getCookedType(element)); + } + } +} diff --git a/source/com/intellij/refactoring/typeCook/deductive/builder/SystemBuilder.java b/source/com/intellij/refactoring/typeCook/deductive/builder/SystemBuilder.java index 14ad4db0a92b..cf8f2371fa17 100644 --- a/source/com/intellij/refactoring/typeCook/deductive/builder/SystemBuilder.java +++ b/source/com/intellij/refactoring/typeCook/deductive/builder/SystemBuilder.java @@ -54,7 +54,7 @@ public class SystemBuilder { myTypeVariableFactory = new PsiTypeVariableFactory(); } - public HashSet collect(final PsiElement[] scopes) { + private HashSet collect(final PsiElement[] scopes) { return new VictimCollector(scopes, mySettings).getVictims(); } @@ -848,6 +848,10 @@ public class SystemBuilder { } } + public System build (final PsiElement[] scopes) { + return build(collect(scopes)); + } + public System build(final HashSet victims) { final PsiSearchHelper helper = myManager.getSearchHelper(); diff --git a/source/com/intellij/refactoring/typeCook/deductive/resolver/Binding.java b/source/com/intellij/refactoring/typeCook/deductive/resolver/Binding.java index d0b70e794bd2..c58aea082674 100644 --- a/source/com/intellij/refactoring/typeCook/deductive/resolver/Binding.java +++ b/source/com/intellij/refactoring/typeCook/deductive/resolver/Binding.java @@ -4,6 +4,8 @@ import com.intellij.psi.PsiType; import com.intellij.refactoring.typeCook.deductive.PsiTypeVariableFactory; import com.intellij.refactoring.typeCook.deductive.PsiTypeVariable; +import java.util.HashSet; + /** * Created by IntelliJ IDEA. * User: db @@ -30,4 +32,8 @@ public abstract class Binding { public abstract Binding reduceRecursive(); public abstract boolean binds(final PsiTypeVariable var); + + public abstract void merge (Binding b); + + public abstract HashSet getBoundVariables (); } diff --git a/source/com/intellij/refactoring/typeCook/deductive/resolver/BindingFactory.java b/source/com/intellij/refactoring/typeCook/deductive/resolver/BindingFactory.java index 0d0e557f396e..ac72d4b34892 100644 --- a/source/com/intellij/refactoring/typeCook/deductive/resolver/BindingFactory.java +++ b/source/com/intellij/refactoring/typeCook/deductive/resolver/BindingFactory.java @@ -450,6 +450,24 @@ public class BindingFactory { public boolean binds(final PsiTypeVariable var) { return myBindings[var.getIndex()] != null; } + + public void merge(Binding b) { + for (final Iterator v=b.getBoundVariables().iterator(); v.hasNext();){ + final PsiTypeVariable var = v.next(); + final int index = var.getIndex(); + + if (myBindings[index] != null){ + LOG.error ("Oops... Binding conflict..."); + } + else { + myBindings[index] = b.apply(var); + } + } + } + + public HashSet getBoundVariables() { + return myBoundVariables; + } } interface Balancer { diff --git a/testData/refactoring/typeCook/t04/after/Test.1.items b/testData/refactoring/typeCook/t04/after/Test.1.items index eb4cfd2a1771..14dd6d7dedd1 100644 --- a/testData/refactoring/typeCook/t04/after/Test.1.items +++ b/testData/refactoring/typeCook/t04/after/Test.1.items @@ -1 +1 @@ -LinkedList\nPsiField:x +LinkedList\nPsiField:x diff --git a/testData/refactoring/typeCook/t05/after/Test.1.items b/testData/refactoring/typeCook/t05/after/Test.1.items index eb4cfd2a1771..14dd6d7dedd1 100644 --- a/testData/refactoring/typeCook/t05/after/Test.1.items +++ b/testData/refactoring/typeCook/t05/after/Test.1.items @@ -1 +1 @@ -LinkedList\nPsiField:x +LinkedList\nPsiField:x diff --git a/testData/refactoring/typeCook/t07/after/Test.1.items b/testData/refactoring/typeCook/t07/after/Test.1.items index 1fa8eaca6eff..d84f5577e7e9 100644 --- a/testData/refactoring/typeCook/t07/after/Test.1.items +++ b/testData/refactoring/typeCook/t07/after/Test.1.items @@ -1,2 +1,2 @@ -LinkedList\nPsiField:x +LinkedList\nPsiField:x LinkedList\nPsiField:y diff --git a/testData/refactoring/typeCook/t08/after/Test.1.items b/testData/refactoring/typeCook/t08/after/Test.1.items index b794981b970e..7c95ec613b5b 100644 --- a/testData/refactoring/typeCook/t08/after/Test.1.items +++ b/testData/refactoring/typeCook/t08/after/Test.1.items @@ -1,2 +1,2 @@ -LinkedList\nPsiField:x +LinkedList\nPsiField:x LinkedList\nPsiField:y diff --git a/testData/refactoring/typeCook/t12/after/Test.1.items b/testData/refactoring/typeCook/t12/after/Test.1.items index 1fa8eaca6eff..d84f5577e7e9 100644 --- a/testData/refactoring/typeCook/t12/after/Test.1.items +++ b/testData/refactoring/typeCook/t12/after/Test.1.items @@ -1,2 +1,2 @@ -LinkedList\nPsiField:x +LinkedList\nPsiField:x LinkedList\nPsiField:y diff --git a/testData/refactoring/typeCook/t120/after/Test.1.items b/testData/refactoring/typeCook/t120/after/Test.1.items index 8de11ea27069..8525308e2525 100644 --- a/testData/refactoring/typeCook/t120/after/Test.1.items +++ b/testData/refactoring/typeCook/t120/after/Test.1.items @@ -1 +1 @@ -List\nPsiLocalVariable:y +List\nPsiLocalVariable:y diff --git a/testData/refactoring/typeCook/t121/after/Test.1.items b/testData/refactoring/typeCook/t121/after/Test.1.items index 52a6f282b421..fbbd7e4994e6 100644 --- a/testData/refactoring/typeCook/t121/after/Test.1.items +++ b/testData/refactoring/typeCook/t121/after/Test.1.items @@ -1,2 +1,2 @@ A\nPsiLocalVariable:a -List\nPsiLocalVariable:y +List\nPsiLocalVariable:y diff --git a/testData/refactoring/typeCook/t128/after/Test.1.items b/testData/refactoring/typeCook/t128/after/Test.1.items index 2c089fa97cc9..af43963da9b1 100644 --- a/testData/refactoring/typeCook/t128/after/Test.1.items +++ b/testData/refactoring/typeCook/t128/after/Test.1.items @@ -1 +1 @@ -Collection\nparameter 0 of g +Collection\nparameter 0 of g diff --git a/testData/refactoring/typeCook/t129/after/Test.1.items b/testData/refactoring/typeCook/t129/after/Test.1.items new file mode 100644 index 000000000000..54d3e755058f --- /dev/null +++ b/testData/refactoring/typeCook/t129/after/Test.1.items @@ -0,0 +1,2 @@ +Collection\nparameter 0 of g +Set\nPsiLocalVariable:x diff --git a/testData/refactoring/typeCook/t129/after/Test.items b/testData/refactoring/typeCook/t129/after/Test.items new file mode 100644 index 000000000000..9590afe8150e --- /dev/null +++ b/testData/refactoring/typeCook/t129/after/Test.items @@ -0,0 +1,2 @@ +Collection\nparameter 0 of g +Set\nPsiLocalVariable:x diff --git a/testData/refactoring/typeCook/t13/after/Test.1.items b/testData/refactoring/typeCook/t13/after/Test.1.items index bd3e46371be0..24fd3fb16f70 100644 --- a/testData/refactoring/typeCook/t13/after/Test.1.items +++ b/testData/refactoring/typeCook/t13/after/Test.1.items @@ -1,3 +1,3 @@ -LinkedList\nPsiField:y +LinkedList\nPsiField:y LinkedList\nPsiField:x LinkedList\nPsiTypeCastExpression:(LinkedList) y.get() diff --git a/testData/refactoring/typeCook/t130/after/Test.1.items b/testData/refactoring/typeCook/t130/after/Test.1.items index d8c43f540450..1b798a1b3416 100644 --- a/testData/refactoring/typeCook/t130/after/Test.1.items +++ b/testData/refactoring/typeCook/t130/after/Test.1.items @@ -1,3 +1,3 @@ -List\nPsiLocalVariable:requests -List\nPsiTypeCastExpression:(ArrayList)requestMap.get(new A()) +ArrayList\nPsiLocalVariable:requests +ArrayList\nPsiTypeCastExpression:(ArrayList)requestMap.get(new A()) Map\nparameter 0 of f diff --git a/testData/refactoring/typeCook/t16/after/Test.1.items b/testData/refactoring/typeCook/t16/after/Test.1.items index 1fa8eaca6eff..66c786c60a8b 100644 --- a/testData/refactoring/typeCook/t16/after/Test.1.items +++ b/testData/refactoring/typeCook/t16/after/Test.1.items @@ -1,2 +1,2 @@ +LinkedList\nPsiField:y LinkedList\nPsiField:x -LinkedList\nPsiField:y diff --git a/testData/refactoring/typeCook/t17/after/Test.1.items b/testData/refactoring/typeCook/t17/after/Test.1.items index 1fa8eaca6eff..d84f5577e7e9 100644 --- a/testData/refactoring/typeCook/t17/after/Test.1.items +++ b/testData/refactoring/typeCook/t17/after/Test.1.items @@ -1,2 +1,2 @@ -LinkedList\nPsiField:x +LinkedList\nPsiField:x LinkedList\nPsiField:y diff --git a/testData/refactoring/typeCook/t19/after/Test.1.items b/testData/refactoring/typeCook/t19/after/Test.1.items index eaa695eecd25..ddaf41c729c7 100644 --- a/testData/refactoring/typeCook/t19/after/Test.1.items +++ b/testData/refactoring/typeCook/t19/after/Test.1.items @@ -1,3 +1,3 @@ -LinkedList\nPsiField:x +LinkedList\nPsiField:x LinkedList\nPsiField:y LinkedList\nPsiTypeCastExpression:(LinkedList) x.get() diff --git a/testData/refactoring/typeCook/t35/after/Test.1.items b/testData/refactoring/typeCook/t35/after/Test.1.items index 64c0106f21e7..4dec29d9906e 100644 --- a/testData/refactoring/typeCook/t35/after/Test.1.items +++ b/testData/refactoring/typeCook/t35/after/Test.1.items @@ -1,3 +1,3 @@ -LinkedList\nPsiLocalVariable:y -ListLinked\nPsiLocalVariable:x -ListLinked\nnew +LinkedList\nPsiLocalVariable:y +ListLinked\nPsiLocalVariable:x +ListLinked\nnew diff --git a/testData/refactoring/typeCook/t36/after/Test.1.items b/testData/refactoring/typeCook/t36/after/Test.1.items index ca89c7db6f7b..3d3002f9cb9a 100644 --- a/testData/refactoring/typeCook/t36/after/Test.1.items +++ b/testData/refactoring/typeCook/t36/after/Test.1.items @@ -1,3 +1,3 @@ -LinkedList\nPsiLocalVariable:y -ListLinked\nPsiLocalVariable:x -ListLinked\nnew +LinkedList\nPsiLocalVariable:y +ListLinked\nPsiLocalVariable:x +ListLinked\nnew diff --git a/testData/refactoring/typeCook/t48/after/Test.1.items b/testData/refactoring/typeCook/t48/after/Test.1.items index a72409835af8..4525541c6abc 100644 --- a/testData/refactoring/typeCook/t48/after/Test.1.items +++ b/testData/refactoring/typeCook/t48/after/Test.1.items @@ -1,3 +1,3 @@ -LinkedList\nPsiLocalVariable:y -LinkedList\nnew -LinkedList\nparameter 0 of f +LinkedList\nPsiLocalVariable:y +LinkedList\nnew +LinkedList\nparameter 0 of f diff --git a/testData/refactoring/typeCook/t56/after/Test.1.items b/testData/refactoring/typeCook/t56/after/Test.1.items index 03c964b3f738..c43e1e0a10fa 100644 --- a/testData/refactoring/typeCook/t56/after/Test.1.items +++ b/testData/refactoring/typeCook/t56/after/Test.1.items @@ -1,3 +1,3 @@ -LinkedList>\nPsiLocalVariable:x -LinkedList\nPsiLocalVariable:y -LinkedList\nPsiLocalVariable:z +LinkedList>\nPsiLocalVariable:x +LinkedList\nPsiLocalVariable:y +LinkedList\nPsiLocalVariable:z diff --git a/testData/refactoring/typeCook/t70/after/Test.1.items b/testData/refactoring/typeCook/t70/after/Test.1.items index 078ff3a6f7ec..7856e9ffaf06 100644 --- a/testData/refactoring/typeCook/t70/after/Test.1.items +++ b/testData/refactoring/typeCook/t70/after/Test.1.items @@ -1,2 +1,2 @@ -List\nPsiLocalVariable:x -List\nnew +List\nPsiLocalVariable:x +List\nnew diff --git a/testData/refactoring/typeCook/t73/after/Test.1.items b/testData/refactoring/typeCook/t73/after/Test.1.items index 212151ab8c54..87606f165054 100644 --- a/testData/refactoring/typeCook/t73/after/Test.1.items +++ b/testData/refactoring/typeCook/t73/after/Test.1.items @@ -1,4 +1,4 @@ -List\nPsiLocalVariable:x -List\nPsiLocalVariable:y -List\nnew -List\nnew +List\nPsiLocalVariable:x +List\nPsiLocalVariable:y +List\nnew +List\nnew diff --git a/testData/refactoring/typeCook/t76/after/Test.1.items b/testData/refactoring/typeCook/t76/after/Test.1.items index 0df8fa5c3844..1f8e2d743727 100644 --- a/testData/refactoring/typeCook/t76/after/Test.1.items +++ b/testData/refactoring/typeCook/t76/after/Test.1.items @@ -1,5 +1,5 @@ -Iterator>\nPsiLocalVariable:i -OfList>\nPsiLocalVariable:x -OfList>\nnew +Iterator>\nPsiLocalVariable:i +OfList>\nPsiLocalVariable:x +OfList>\nnew Set\nPsiLocalVariable:u Set\nPsiTypeCastExpression:(Set) i.get() diff --git a/testData/refactoring/typeCook/t77/after/Test.1.items b/testData/refactoring/typeCook/t77/after/Test.1.items index 0df8fa5c3844..1ec2dd203f36 100644 --- a/testData/refactoring/typeCook/t77/after/Test.1.items +++ b/testData/refactoring/typeCook/t77/after/Test.1.items @@ -1,5 +1,5 @@ -Iterator>\nPsiLocalVariable:i -OfList>\nPsiLocalVariable:x -OfList>\nnew -Set\nPsiLocalVariable:u -Set\nPsiTypeCastExpression:(Set) i.get() +Iterator>\nPsiLocalVariable:i +OfList>\nPsiLocalVariable:x +OfList>\nnew +Set\nPsiLocalVariable:u +Set\nPsiTypeCastExpression:(Set) i.get() diff --git a/testData/refactoring/typeCook/t80/after/Test.1.items b/testData/refactoring/typeCook/t80/after/Test.1.items index 0df8fa5c3844..1f8e2d743727 100644 --- a/testData/refactoring/typeCook/t80/after/Test.1.items +++ b/testData/refactoring/typeCook/t80/after/Test.1.items @@ -1,5 +1,5 @@ -Iterator>\nPsiLocalVariable:i -OfList>\nPsiLocalVariable:x -OfList>\nnew +Iterator>\nPsiLocalVariable:i +OfList>\nPsiLocalVariable:x +OfList>\nnew Set\nPsiLocalVariable:u Set\nPsiTypeCastExpression:(Set) i.get() diff --git a/testData/refactoring/typeCook/t82/after/Test.1.items b/testData/refactoring/typeCook/t82/after/Test.1.items index 375c8c5d324f..99e5b92ad2ad 100644 --- a/testData/refactoring/typeCook/t82/after/Test.1.items +++ b/testData/refactoring/typeCook/t82/after/Test.1.items @@ -1,6 +1,6 @@ -List[]\nPsiLocalVariable:x -List[]\nnew -List\nPsiLocalVariable:y -List\nPsiLocalVariable:z -List\nnew -List\nnew +List[]\nPsiLocalVariable:x +List[]\nnew +List\nPsiLocalVariable:y +List\nPsiLocalVariable:z +List\nnew +List\nnew diff --git a/testData/refactoring/typeCook/t86/after/Test.1.items b/testData/refactoring/typeCook/t86/after/Test.1.items index 2d2088bb2008..a720f7d7d9d6 100644 --- a/testData/refactoring/typeCook/t86/after/Test.1.items +++ b/testData/refactoring/typeCook/t86/after/Test.1.items @@ -1 +1 @@ -List\nPsiLocalVariable:x +List\nPsiLocalVariable:x diff --git a/testData/refactoring/typeCook/t87/after/Test.1.items b/testData/refactoring/typeCook/t87/after/Test.1.items index 9a1632c555fb..b5851cb0fadc 100644 --- a/testData/refactoring/typeCook/t87/after/Test.1.items +++ b/testData/refactoring/typeCook/t87/after/Test.1.items @@ -1,2 +1,2 @@ -List\nPsiLocalVariable:x -List\nnew +List\nPsiLocalVariable:x +List\nnew diff --git a/testData/refactoring/typeCook/t90/after/Test.1.items b/testData/refactoring/typeCook/t90/after/Test.1.items index e69de29bb2d1..d375ef987949 100644 --- a/testData/refactoring/typeCook/t90/after/Test.1.items +++ b/testData/refactoring/typeCook/t90/after/Test.1.items @@ -0,0 +1,2 @@ +List\nparameter 0 of f +List\nparameter 0 of g diff --git a/testData/refactoring/typeCook/t90/after/Test.items b/testData/refactoring/typeCook/t90/after/Test.items index e69de29bb2d1..d375ef987949 100644 --- a/testData/refactoring/typeCook/t90/after/Test.items +++ b/testData/refactoring/typeCook/t90/after/Test.items @@ -0,0 +1,2 @@ +List\nparameter 0 of f +List\nparameter 0 of g diff --git a/testData/refactoring/typeCook/t96/after/Test.1.items b/testData/refactoring/typeCook/t96/after/Test.1.items index d8a4008c03aa..854311cd80e0 100644 --- a/testData/refactoring/typeCook/t96/after/Test.1.items +++ b/testData/refactoring/typeCook/t96/after/Test.1.items @@ -1,4 +1,4 @@ -List>\nPsiLocalVariable:x -List>\nPsiLocalVariable:y -List>\nnew -List>\nnew +List>\nPsiLocalVariable:x +List>\nPsiLocalVariable:y +List>\nnew +List>\nnew diff --git a/testSource/com/intellij/refactoring/TypeCookTest.java b/testSource/com/intellij/refactoring/TypeCookTest.java index 5523be4b6055..1f1838534444 100644 --- a/testSource/com/intellij/refactoring/TypeCookTest.java +++ b/testSource/com/intellij/refactoring/TypeCookTest.java @@ -649,7 +649,7 @@ public class TypeCookTest extends MultiFileTestCase { } }); - final com.intellij.refactoring.typeCook.deductive.builder.System commonSystem = b.build(b.collect(new PsiElement[]{aClass})); + final com.intellij.refactoring.typeCook.deductive.builder.System commonSystem = b.build(new PsiElement[]{aClass}); System.out.println("System built:\n" + commonSystem);