diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaDescriptorResolveData.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaDescriptorResolveData.java index 16a22bc6dd0..9afd1c6ac8a 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaDescriptorResolveData.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaDescriptorResolveData.java @@ -21,15 +21,11 @@ import com.intellij.psi.PsiElement; import com.intellij.psi.PsiPackage; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import org.jetbrains.jet.lang.descriptors.ClassDescriptor; import org.jetbrains.jet.lang.descriptors.ClassOrNamespaceDescriptor; import org.jetbrains.jet.lang.descriptors.NamespaceDescriptor; -import org.jetbrains.jet.lang.descriptors.TypeParameterDescriptor; import org.jetbrains.jet.lang.resolve.name.FqName; import org.jetbrains.jet.lang.resolve.name.Name; -import java.util.ArrayList; -import java.util.List; import java.util.Map; class JavaDescriptorResolveData { @@ -71,7 +67,13 @@ class JavaDescriptorResolveData { private final boolean kotlin; private final ClassOrNamespaceDescriptor classOrNamespaceDescriptor; - protected ResolverScopeData(@Nullable PsiClass psiClass, @Nullable PsiPackage psiPackage, @Nullable FqName fqName, boolean staticMembers, @NotNull ClassOrNamespaceDescriptor descriptor) { + protected ResolverScopeData( + @Nullable PsiClass psiClass, + @Nullable PsiPackage psiPackage, + @Nullable FqName fqName, + boolean staticMembers, + @NotNull ClassOrNamespaceDescriptor descriptor + ) { JavaDescriptorResolver.checkPsiClassIsNotJet(psiClass); this.psiClass = psiClass; @@ -123,15 +125,18 @@ class JavaDescriptorResolveData { void setNamedMembersMap(Map namedMembersMap) { this.namedMembersMap = namedMembersMap; } - - @NotNull - public abstract List getTypeParameters(); } - /** Class with instance members */ + /** + * Class with instance members + */ static class ResolverBinaryClassData extends ResolverClassData { - ResolverBinaryClassData(@NotNull PsiClass psiClass, @Nullable FqName fqName, @NotNull ClassDescriptorFromJvmBytecode classDescriptor) { + ResolverBinaryClassData( + @NotNull PsiClass psiClass, + @Nullable FqName fqName, + @NotNull ClassDescriptorFromJvmBytecode classDescriptor + ) { super(psiClass, null, fqName, false, classDescriptor); } @@ -140,7 +145,6 @@ class JavaDescriptorResolveData { } static final ResolverClassData NEGATIVE = new ResolverBinaryClassData(true); - } static class ResolverClassData extends ResolverScopeData { @@ -167,13 +171,6 @@ class JavaDescriptorResolveData { public ClassDescriptorFromJvmBytecode getClassDescriptor() { return classDescriptor; } - - @NotNull - @Override - public List getTypeParameters() { - return getClassDescriptor().getTypeConstructor().getParameters(); - } - } @@ -188,7 +185,9 @@ class JavaDescriptorResolveData { } } - /** Either package or class with static members */ + /** + * Either package or class with static members + */ static class ResolverNamespaceData extends ResolverScopeData { static final ResolverNamespaceData NEGATIVE = new ResolverNamespaceData(true); @@ -196,7 +195,12 @@ class JavaDescriptorResolveData { private JavaPackageScope memberScope; - ResolverNamespaceData(@Nullable PsiClass psiClass, @Nullable PsiPackage psiPackage, @NotNull FqName fqName, @NotNull NamespaceDescriptor namespaceDescriptor) { + ResolverNamespaceData( + @Nullable PsiClass psiClass, + @Nullable PsiPackage psiPackage, + @NotNull FqName fqName, + @NotNull NamespaceDescriptor namespaceDescriptor + ) { super(psiClass, psiPackage, fqName, true, namespaceDescriptor); this.namespaceDescriptor = namespaceDescriptor; } @@ -217,11 +221,5 @@ class JavaDescriptorResolveData { public void setMemberScope(JavaPackageScope memberScope) { this.memberScope = memberScope; } - - @NotNull - @Override - public List getTypeParameters() { - return new ArrayList(0); - } } } 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 cb88defa36b..d0055de1bae 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 @@ -266,7 +266,8 @@ public class JavaDescriptorResolver implements DependencyClassByQualifiedNameRes javaDescriptorSignatureResolver.initializeTypeParameters(typeParameterDescriptorInitializations, classData.getClassDescriptor(), "class " + qualifiedName); // TODO: ugly hack: tests crash if initializeTypeParameters called with class containing proper supertypes - supertypes.addAll(getSupertypes(new PsiClassWrapper(psiClass), classData, classData.getTypeParameters())); + List classTypeParameters = classData.getClassDescriptor().getTypeConstructor().getParameters(); + supertypes.addAll(getSupertypes(new PsiClassWrapper(psiClass), classData, classTypeParameters)); MutableClassDescriptorLite classObject = createClassObjectDescriptor(classData.getClassDescriptor(), psiClass); if (classObject != null) {