Type parameters/arguments constitute lists, not collections

This commit is contained in:
Alexander Udalov
2013-10-15 20:14:53 +04:00
parent 0958e63be2
commit 5b916ea108
7 changed files with 18 additions and 18 deletions
@@ -30,6 +30,7 @@ import org.jetbrains.jet.lang.resolve.name.FqName;
import org.jetbrains.jet.lang.resolve.name.Name;
import java.util.Collection;
import java.util.List;
import static org.jetbrains.jet.lang.resolve.java.structure.impl.JavaElementCollectionFromPsiArrayUtil.*;
@@ -83,7 +84,7 @@ public class JavaClassImpl extends JavaClassifierImpl<PsiClass> implements JavaC
@NotNull
@Override
public Collection<JavaTypeParameter> getTypeParameters() {
public List<JavaTypeParameter> getTypeParameters() {
return typeParameters(getPsi().getTypeParameters());
}
@@ -103,7 +103,7 @@ public class JavaClassifierTypeImpl extends JavaTypeImpl<PsiClassType> implement
@Override
@NotNull
public Collection<JavaType> getTypeArguments() {
public List<JavaType> getTypeArguments() {
return types(getPsi().getParameters());
}
}
@@ -170,13 +170,13 @@ public class JavaElementCollectionFromPsiArrayUtil {
}
@NotNull
public static Collection<JavaTypeParameter> typeParameters(@NotNull PsiTypeParameter[] typeParameters) {
return (Collection) convert(typeParameters, Factories.TYPE_PARAMETERS);
public static List<JavaTypeParameter> typeParameters(@NotNull PsiTypeParameter[] typeParameters) {
return (List) convert(typeParameters, Factories.TYPE_PARAMETERS);
}
@NotNull
public static Collection<JavaType> types(@NotNull PsiType[] types) {
return (Collection) convert(types, Factories.TYPES);
public static List<JavaType> types(@NotNull PsiType[] types) {
return (List) convert(types, Factories.TYPES);
}
@NotNull
@@ -27,7 +27,6 @@ import org.jetbrains.jet.lang.resolve.java.structure.JavaTypeParameter;
import org.jetbrains.jet.lang.resolve.java.structure.JavaValueParameter;
import org.jetbrains.jet.lang.resolve.name.Name;
import java.util.Collection;
import java.util.List;
import static org.jetbrains.jet.lang.resolve.java.structure.impl.JavaElementCollectionFromPsiArrayUtil.typeParameters;
@@ -46,7 +45,7 @@ public class JavaMethodImpl extends JavaMemberImpl<PsiMethod> implements JavaMet
@NotNull
@Override
public Collection<JavaTypeParameter> getTypeParameters() {
public List<JavaTypeParameter> getTypeParameters() {
return typeParameters(getPsi().getTypeParameters());
}
@@ -185,7 +185,7 @@ public class JavaTypeTransformer {
}
}
else {
Collection<JavaType> javaTypeArguments = classifierType.getTypeArguments();
List<JavaType> javaTypeArguments = classifierType.getTypeArguments();
if (parameters.size() != javaTypeArguments.size()) {
// Most of the time this means there is an error in the Java code
@@ -194,14 +194,13 @@ public class JavaTypeTransformer {
}
}
else {
int index = 0;
for (JavaType typeArgument : javaTypeArguments) {
TypeParameterDescriptor typeParameterDescriptor = parameters.get(index);
index++;
for (int i = 0, size = javaTypeArguments.size(); i < size; i++) {
JavaType typeArgument = javaTypeArguments.get(i);
TypeParameterDescriptor typeParameterDescriptor = parameters.get(i);
TypeUsage howTheProjectionIsUsed = howThisTypeIsUsed == SUPERTYPE ? SUPERTYPE_ARGUMENT : TYPE_ARGUMENT;
TypeProjection typeProjection = transformToTypeProjection(typeArgument, typeParameterDescriptor, typeVariableResolver,
howTheProjectionIsUsed);
TypeProjection typeProjection =
transformToTypeProjection(typeArgument, typeParameterDescriptor, typeVariableResolver, howTheProjectionIsUsed);
if (typeProjection.getProjectionKind() == typeParameterDescriptor.getVariance()) {
// remove redundant 'out' and 'in'
@@ -20,6 +20,7 @@ import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import java.util.Collection;
import java.util.List;
public interface JavaClassifierType extends JavaType {
@Nullable
@@ -37,5 +38,5 @@ public interface JavaClassifierType extends JavaType {
boolean isRaw();
@NotNull
Collection<JavaType> getTypeArguments();
List<JavaType> getTypeArguments();
}
@@ -18,9 +18,9 @@ package org.jetbrains.jet.lang.resolve.java.structure;
import org.jetbrains.annotations.NotNull;
import java.util.Collection;
import java.util.List;
public interface JavaTypeParameterListOwner extends JavaElement {
@NotNull
Collection<JavaTypeParameter> getTypeParameters();
List<JavaTypeParameter> getTypeParameters();
}