add explicit type arguments: preserve nested wildcards (IDEA-134967)

This commit is contained in:
Anna Kozlova
2015-01-08 13:33:00 +01:00
parent 23379055b0
commit e4e0a33134
3 changed files with 31 additions and 1 deletions
@@ -73,7 +73,7 @@ public class AddTypeArgumentsFix extends MethodArgumentFix {
PsiTypeParameter typeParameter = typeParameters[i];
final PsiType substitution = helper.getSubstitutionForTypeParameter(typeParameter, returnType, toType, false, level);
if (substitution == null || PsiType.NULL.equals(substitution)) return null;
mappings[i] = GenericsUtil.eliminateWildcards(substitution);
mappings[i] = GenericsUtil.eliminateWildcards(substitution, false);
}
final PsiElementFactory factory = JavaPsiFacade.getInstance(expression.getProject()).getElementFactory();
@@ -0,0 +1,15 @@
// "Add explicit type arguments" "true"
import java.util.Collections;
import java.util.List;
class Bar {
public static void main(String[] args) {
new Bar().complexTypeParams(Collections.<Class<?>>emptyList());
}
void complexTypeParams(List<Class<?>> list) {}
}
@@ -0,0 +1,15 @@
// "Add explicit type arguments" "true"
import java.util.Collections;
import java.util.List;
class Bar {
public static void main(String[] args) {
new Bar().complexTypeParams(Collections.e<caret>mptyList());
}
void complexTypeParams(List<Class<?>> list) {}
}