Refactor eliminate remaining usages of ResolverClassData#getClassDescriptor()

This commit is contained in:
Pavel V. Talanov
2012-11-04 21:06:07 +04:00
parent b2af761207
commit b18ffa52fa
7 changed files with 16 additions and 17 deletions
@@ -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<ConstructorDescriptor> resolveConstructors(@NotNull ResolverClassData classData) {
return constructorResolver.resolveConstructors(classData);
public Collection<ConstructorDescriptor> resolveConstructors(
@NotNull ResolverClassData classData, @NotNull ClassDescriptorFromJvmBytecode classDescriptor
) {
return constructorResolver.resolveConstructors(classData, classDescriptor);
}
@Nullable
@@ -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
@@ -55,7 +55,8 @@ public class ClassDescriptorFromJvmBytecode extends MutableClassDescriptorLite {
public Collection<ConstructorDescriptor> getConstructors() {
if (constructors == null) {
assert resolverBinaryClassData != null;
this.constructors = javaDescriptorResolver.resolveConstructors(resolverBinaryClassData);
this.constructors = javaDescriptorResolver.resolveConstructors(resolverBinaryClassData,
this);
}
return constructors;
}
@@ -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.<TypeParameterDescriptor>emptyList()));
classObjectDescriptor.setSupertypes(supertypesResolver.getSupertypes(classObjectDescriptor, new PsiClassWrapper(classObjectPsiClass), classObjectData,
Collections.<TypeParameterDescriptor>emptyList()
));
setUpClassObjectDescriptor(classObjectDescriptor, containing, fqName, classObjectData, getClassObjectName(containing.getName())
);
return classObjectDescriptor;
@@ -248,7 +248,8 @@ public final class JavaClassResolver {
// TODO: ugly hack: tests crash if initializeTypeParameters called with class containing proper supertypes
List<TypeParameterDescriptor> 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);
@@ -62,12 +62,13 @@ public final class JavaConstructorResolver {
}
@NotNull
public Collection<ConstructorDescriptor> resolveConstructors(@NotNull ResolverClassData classData) {
public Collection<ConstructorDescriptor> resolveConstructors(
@NotNull ResolverClassData classData, @NotNull ClassDescriptorFromJvmBytecode containingClass
) {
Collection<ConstructorDescriptor> constructors = Lists.newArrayList();
PsiClass psiClass = classData.getPsiClass();
ClassDescriptorFromJvmBytecode containingClass = classData.getClassDescriptor();
assert psiClass != null;
TypeVariableResolver resolverForTypeParameters = TypeVariableResolvers.classTypeVariableResolver(
containingClass, "class " + psiClass.getQualifiedName());
@@ -71,11 +71,11 @@ public final class JavaSupertypeResolver {
}
public Collection<JetType> getSupertypes(
@NotNull ClassDescriptor classDescriptor,
@NotNull PsiClassWrapper psiClass,
@NotNull ResolverClassData classData,
@NotNull List<TypeParameterDescriptor> typeParameters
) {
ClassDescriptor classDescriptor = classData.getClassDescriptor();
final List<JetType> result = new ArrayList<JetType>();