From b18ffa52fa3bd4255aae792a6a9359004e75f104 Mon Sep 17 00:00:00 2001 From: "Pavel V. Talanov" Date: Sun, 4 Nov 2012 21:06:07 +0400 Subject: [PATCH] Refactor eliminate remaining usages of ResolverClassData#getClassDescriptor() --- .../jet/lang/resolve/java/JavaDescriptorResolver.java | 7 +++++-- .../jet/lang/resolve/java/data/ResolverClassData.java | 8 -------- .../java/descriptor/ClassDescriptorFromJvmBytecode.java | 3 ++- .../resolve/java/resolver/JavaClassObjectResolver.java | 5 +++-- .../jet/lang/resolve/java/resolver/JavaClassResolver.java | 3 ++- .../resolve/java/resolver/JavaConstructorResolver.java | 5 +++-- .../lang/resolve/java/resolver/JavaSupertypeResolver.java | 2 +- 7 files changed, 16 insertions(+), 17 deletions(-) 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 c440cc89da5..c0db2d570cd 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 @@ -23,6 +23,7 @@ import org.jetbrains.jet.lang.descriptors.*; import org.jetbrains.jet.lang.resolve.DescriptorUtils; import org.jetbrains.jet.lang.resolve.java.data.ResolverClassData; import org.jetbrains.jet.lang.resolve.java.data.ResolverScopeData; +import org.jetbrains.jet.lang.resolve.java.descriptor.ClassDescriptorFromJvmBytecode; import org.jetbrains.jet.lang.resolve.java.resolver.*; import org.jetbrains.jet.lang.resolve.java.scope.JavaPackageScope; import org.jetbrains.jet.lang.resolve.name.FqName; @@ -107,8 +108,10 @@ public class JavaDescriptorResolver implements DependencyClassByQualifiedNameRes } @NotNull - public Collection resolveConstructors(@NotNull ResolverClassData classData) { - return constructorResolver.resolveConstructors(classData); + public Collection resolveConstructors( + @NotNull ResolverClassData classData, @NotNull ClassDescriptorFromJvmBytecode classDescriptor + ) { + return constructorResolver.resolveConstructors(classData, classDescriptor); } @Nullable diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/data/ResolverClassData.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/data/ResolverClassData.java index ec826c5b9b5..c429ecbbb7f 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/data/ResolverClassData.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/data/ResolverClassData.java @@ -28,8 +28,6 @@ import org.jetbrains.jet.lang.resolve.name.FqName; */ public class ResolverClassData extends ResolverScopeData { - private final ClassDescriptorFromJvmBytecode classDescriptor; - public ResolverClassData( @Nullable PsiClass psiClass, @Nullable PsiPackage psiPackage, @@ -38,12 +36,6 @@ public class ResolverClassData extends ResolverScopeData { @NotNull ClassDescriptorFromJvmBytecode descriptor ) { super(psiClass, psiPackage, fqName, staticMembers, descriptor); - classDescriptor = descriptor; - } - - - public ClassDescriptorFromJvmBytecode getClassDescriptor() { - return classDescriptor; } @NotNull diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/descriptor/ClassDescriptorFromJvmBytecode.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/descriptor/ClassDescriptorFromJvmBytecode.java index 74a83a2a702..cb2b23a1477 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/descriptor/ClassDescriptorFromJvmBytecode.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/descriptor/ClassDescriptorFromJvmBytecode.java @@ -55,7 +55,8 @@ public class ClassDescriptorFromJvmBytecode extends MutableClassDescriptorLite { public Collection getConstructors() { if (constructors == null) { assert resolverBinaryClassData != null; - this.constructors = javaDescriptorResolver.resolveConstructors(resolverBinaryClassData); + this.constructors = javaDescriptorResolver.resolveConstructors(resolverBinaryClassData, + this); } return constructors; } diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/JavaClassObjectResolver.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/JavaClassObjectResolver.java index 3559d654b69..c5493e7b41c 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/JavaClassObjectResolver.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/JavaClassObjectResolver.java @@ -114,8 +114,9 @@ public final class JavaClassObjectResolver { = new ClassDescriptorFromJvmBytecode(containing, ClassKind.CLASS_OBJECT, javaDescriptorResolver); ResolverClassData classObjectData = ResolverClassData.createBinaryClassData(classObjectPsiClass, fqName, classObjectDescriptor); classObjectDescriptor.setClassData(classObjectData); - classObjectDescriptor.setSupertypes(supertypesResolver.getSupertypes(new PsiClassWrapper(classObjectPsiClass), classObjectData, - Collections.emptyList())); + classObjectDescriptor.setSupertypes(supertypesResolver.getSupertypes(classObjectDescriptor, new PsiClassWrapper(classObjectPsiClass), classObjectData, + Collections.emptyList() + )); setUpClassObjectDescriptor(classObjectDescriptor, containing, fqName, classObjectData, getClassObjectName(containing.getName()) ); return classObjectDescriptor; diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/JavaClassResolver.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/JavaClassResolver.java index 785c8bfe8b6..34d2292a859 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/JavaClassResolver.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/JavaClassResolver.java @@ -248,7 +248,8 @@ public final class JavaClassResolver { // TODO: ugly hack: tests crash if initializeTypeParameters called with class containing proper supertypes List classTypeParameters = classDescriptor.getTypeConstructor().getParameters(); - supertypes.addAll(supertypesResolver.getSupertypes(new PsiClassWrapper(psiClass), classData, classTypeParameters)); + supertypes.addAll(supertypesResolver.getSupertypes(classDescriptor, new PsiClassWrapper(psiClass), classData, classTypeParameters + )); ClassDescriptorFromJvmBytecode classObjectDescriptor = classObjectResolver.createClassObjectDescriptor(classDescriptor, psiClass); cache(DescriptorResolverUtils.getFqNameForClassObject(psiClass), classObjectDescriptor); diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/JavaConstructorResolver.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/JavaConstructorResolver.java index 9f34ac07c2a..424f70f3946 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/JavaConstructorResolver.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/JavaConstructorResolver.java @@ -62,12 +62,13 @@ public final class JavaConstructorResolver { } @NotNull - public Collection resolveConstructors(@NotNull ResolverClassData classData) { + public Collection resolveConstructors( + @NotNull ResolverClassData classData, @NotNull ClassDescriptorFromJvmBytecode containingClass + ) { Collection constructors = Lists.newArrayList(); PsiClass psiClass = classData.getPsiClass(); - ClassDescriptorFromJvmBytecode containingClass = classData.getClassDescriptor(); assert psiClass != null; TypeVariableResolver resolverForTypeParameters = TypeVariableResolvers.classTypeVariableResolver( containingClass, "class " + psiClass.getQualifiedName()); diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/JavaSupertypeResolver.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/JavaSupertypeResolver.java index 43a0ad30137..d8572d0ace7 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/JavaSupertypeResolver.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/JavaSupertypeResolver.java @@ -71,11 +71,11 @@ public final class JavaSupertypeResolver { } public Collection getSupertypes( + @NotNull ClassDescriptor classDescriptor, @NotNull PsiClassWrapper psiClass, @NotNull ResolverClassData classData, @NotNull List typeParameters ) { - ClassDescriptor classDescriptor = classData.getClassDescriptor(); final List result = new ArrayList();