From 5b916ea108326dff6ba9a5875803d733991d5b8c Mon Sep 17 00:00:00 2001 From: Alexander Udalov Date: Tue, 15 Oct 2013 20:14:53 +0400 Subject: [PATCH] Type parameters/arguments constitute lists, not collections --- .../resolve/java/structure/impl/JavaClassImpl.java | 3 ++- .../java/structure/impl/JavaClassifierTypeImpl.java | 2 +- .../impl/JavaElementCollectionFromPsiArrayUtil.java | 8 ++++---- .../resolve/java/structure/impl/JavaMethodImpl.java | 3 +-- .../resolve/java/resolver/JavaTypeTransformer.java | 13 ++++++------- .../resolve/java/structure/JavaClassifierType.java | 3 ++- .../java/structure/JavaTypeParameterListOwner.java | 4 ++-- 7 files changed, 18 insertions(+), 18 deletions(-) diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/impl/JavaClassImpl.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/impl/JavaClassImpl.java index f40bb6dd2a2..39050e233d4 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/impl/JavaClassImpl.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/impl/JavaClassImpl.java @@ -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 implements JavaC @NotNull @Override - public Collection getTypeParameters() { + public List getTypeParameters() { return typeParameters(getPsi().getTypeParameters()); } diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/impl/JavaClassifierTypeImpl.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/impl/JavaClassifierTypeImpl.java index bbb5f54dd7c..13493d162c6 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/impl/JavaClassifierTypeImpl.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/impl/JavaClassifierTypeImpl.java @@ -103,7 +103,7 @@ public class JavaClassifierTypeImpl extends JavaTypeImpl implement @Override @NotNull - public Collection getTypeArguments() { + public List getTypeArguments() { return types(getPsi().getParameters()); } } diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/impl/JavaElementCollectionFromPsiArrayUtil.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/impl/JavaElementCollectionFromPsiArrayUtil.java index 7d0e37c514c..ec048ae39e6 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/impl/JavaElementCollectionFromPsiArrayUtil.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/impl/JavaElementCollectionFromPsiArrayUtil.java @@ -170,13 +170,13 @@ public class JavaElementCollectionFromPsiArrayUtil { } @NotNull - public static Collection typeParameters(@NotNull PsiTypeParameter[] typeParameters) { - return (Collection) convert(typeParameters, Factories.TYPE_PARAMETERS); + public static List typeParameters(@NotNull PsiTypeParameter[] typeParameters) { + return (List) convert(typeParameters, Factories.TYPE_PARAMETERS); } @NotNull - public static Collection types(@NotNull PsiType[] types) { - return (Collection) convert(types, Factories.TYPES); + public static List types(@NotNull PsiType[] types) { + return (List) convert(types, Factories.TYPES); } @NotNull diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/impl/JavaMethodImpl.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/impl/JavaMethodImpl.java index 67731d0fc82..23016a78676 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/impl/JavaMethodImpl.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/impl/JavaMethodImpl.java @@ -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 implements JavaMet @NotNull @Override - public Collection getTypeParameters() { + public List getTypeParameters() { return typeParameters(getPsi().getTypeParameters()); } diff --git a/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/java/resolver/JavaTypeTransformer.java b/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/java/resolver/JavaTypeTransformer.java index 9081a7b222d..154102153f5 100644 --- a/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/java/resolver/JavaTypeTransformer.java +++ b/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/java/resolver/JavaTypeTransformer.java @@ -185,7 +185,7 @@ public class JavaTypeTransformer { } } else { - Collection javaTypeArguments = classifierType.getTypeArguments(); + List 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' diff --git a/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/java/structure/JavaClassifierType.java b/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/java/structure/JavaClassifierType.java index 87029d24a51..8049f5d8c5d 100644 --- a/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/java/structure/JavaClassifierType.java +++ b/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/java/structure/JavaClassifierType.java @@ -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 getTypeArguments(); + List getTypeArguments(); } diff --git a/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/java/structure/JavaTypeParameterListOwner.java b/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/java/structure/JavaTypeParameterListOwner.java index a2d591fa36e..9715a74df40 100644 --- a/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/java/structure/JavaTypeParameterListOwner.java +++ b/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/java/structure/JavaTypeParameterListOwner.java @@ -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 getTypeParameters(); + List getTypeParameters(); }