diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaDescriptorResolver.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaDescriptorResolver.java index 0e1682c53eb..c47411575c4 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaDescriptorResolver.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaDescriptorResolver.java @@ -869,10 +869,16 @@ public class JavaDescriptorResolver { private void initializeTypeParameters(List typeParametersInitialization, @NotNull DeclarationDescriptor typeParametersOwner, @NotNull String context) { List prevTypeParameters = new ArrayList(); + + List typeParameters = Lists.newArrayList(); + for (TypeParameterDescriptorInitialization typeParameterDescriptor : typeParametersInitialization) { + typeParameters.add(typeParameterDescriptor.descriptor); + } + for (TypeParameterDescriptorInitialization psiTypeParameter : typeParametersInitialization) { prevTypeParameters.add(psiTypeParameter.descriptor); initializeTypeParameter(psiTypeParameter, - TypeVariableResolvers.typeVariableResolverFromTypeParameters(prevTypeParameters, typeParametersOwner, context)); + TypeVariableResolvers.typeVariableResolverFromTypeParameters(typeParameters, typeParametersOwner, context)); } } diff --git a/compiler/testData/readJavaBinaryClass/ClassWithTypePRefNext.java b/compiler/testData/readJavaBinaryClass/ClassWithTypePRefNext.java new file mode 100644 index 00000000000..d67172424f7 --- /dev/null +++ b/compiler/testData/readJavaBinaryClass/ClassWithTypePRefNext.java @@ -0,0 +1,7 @@ +package test; + +interface Foo { +} + +class ClassWithTypePRefNext, P> { +} diff --git a/compiler/testData/readJavaBinaryClass/ClassWithTypePRefNext.kt b/compiler/testData/readJavaBinaryClass/ClassWithTypePRefNext.kt new file mode 100644 index 00000000000..8e117e7b6ab --- /dev/null +++ b/compiler/testData/readJavaBinaryClass/ClassWithTypePRefNext.kt @@ -0,0 +1,5 @@ +package test + +trait Foo : java.lang.Object + +open class ClassWithTypePRefNext?, erased P>() : java.lang.Object() diff --git a/compiler/testData/readJavaBinaryClass/ClassWithTypePRefNext.txt b/compiler/testData/readJavaBinaryClass/ClassWithTypePRefNext.txt new file mode 100644 index 00000000000..7d7ddeff88b --- /dev/null +++ b/compiler/testData/readJavaBinaryClass/ClassWithTypePRefNext.txt @@ -0,0 +1,7 @@ +namespace test + +abstract trait test.Foo : java.lang.Object { +} +open class test.ClassWithTypePRefNext?, /*1*/ P : jet.Any?> : java.lang.Object { + final /*constructor*/ fun ?, /*1*/ P : jet.Any?>(): test.ClassWithTypePRefNext +}