Refactor eliminate remaining usages of ResolverClassData#getClassDescriptor()
This commit is contained in:
+5
-2
@@ -23,6 +23,7 @@ import org.jetbrains.jet.lang.descriptors.*;
|
|||||||
import org.jetbrains.jet.lang.resolve.DescriptorUtils;
|
import org.jetbrains.jet.lang.resolve.DescriptorUtils;
|
||||||
import org.jetbrains.jet.lang.resolve.java.data.ResolverClassData;
|
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.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.resolver.*;
|
||||||
import org.jetbrains.jet.lang.resolve.java.scope.JavaPackageScope;
|
import org.jetbrains.jet.lang.resolve.java.scope.JavaPackageScope;
|
||||||
import org.jetbrains.jet.lang.resolve.name.FqName;
|
import org.jetbrains.jet.lang.resolve.name.FqName;
|
||||||
@@ -107,8 +108,10 @@ public class JavaDescriptorResolver implements DependencyClassByQualifiedNameRes
|
|||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
public Collection<ConstructorDescriptor> resolveConstructors(@NotNull ResolverClassData classData) {
|
public Collection<ConstructorDescriptor> resolveConstructors(
|
||||||
return constructorResolver.resolveConstructors(classData);
|
@NotNull ResolverClassData classData, @NotNull ClassDescriptorFromJvmBytecode classDescriptor
|
||||||
|
) {
|
||||||
|
return constructorResolver.resolveConstructors(classData, classDescriptor);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
|
|||||||
-8
@@ -28,8 +28,6 @@ import org.jetbrains.jet.lang.resolve.name.FqName;
|
|||||||
*/
|
*/
|
||||||
public class ResolverClassData extends ResolverScopeData {
|
public class ResolverClassData extends ResolverScopeData {
|
||||||
|
|
||||||
private final ClassDescriptorFromJvmBytecode classDescriptor;
|
|
||||||
|
|
||||||
public ResolverClassData(
|
public ResolverClassData(
|
||||||
@Nullable PsiClass psiClass,
|
@Nullable PsiClass psiClass,
|
||||||
@Nullable PsiPackage psiPackage,
|
@Nullable PsiPackage psiPackage,
|
||||||
@@ -38,12 +36,6 @@ public class ResolverClassData extends ResolverScopeData {
|
|||||||
@NotNull ClassDescriptorFromJvmBytecode descriptor
|
@NotNull ClassDescriptorFromJvmBytecode descriptor
|
||||||
) {
|
) {
|
||||||
super(psiClass, psiPackage, fqName, staticMembers, descriptor);
|
super(psiClass, psiPackage, fqName, staticMembers, descriptor);
|
||||||
classDescriptor = descriptor;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public ClassDescriptorFromJvmBytecode getClassDescriptor() {
|
|
||||||
return classDescriptor;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
|
|||||||
+2
-1
@@ -55,7 +55,8 @@ public class ClassDescriptorFromJvmBytecode extends MutableClassDescriptorLite {
|
|||||||
public Collection<ConstructorDescriptor> getConstructors() {
|
public Collection<ConstructorDescriptor> getConstructors() {
|
||||||
if (constructors == null) {
|
if (constructors == null) {
|
||||||
assert resolverBinaryClassData != null;
|
assert resolverBinaryClassData != null;
|
||||||
this.constructors = javaDescriptorResolver.resolveConstructors(resolverBinaryClassData);
|
this.constructors = javaDescriptorResolver.resolveConstructors(resolverBinaryClassData,
|
||||||
|
this);
|
||||||
}
|
}
|
||||||
return constructors;
|
return constructors;
|
||||||
}
|
}
|
||||||
|
|||||||
+3
-2
@@ -114,8 +114,9 @@ public final class JavaClassObjectResolver {
|
|||||||
= new ClassDescriptorFromJvmBytecode(containing, ClassKind.CLASS_OBJECT, javaDescriptorResolver);
|
= new ClassDescriptorFromJvmBytecode(containing, ClassKind.CLASS_OBJECT, javaDescriptorResolver);
|
||||||
ResolverClassData classObjectData = ResolverClassData.createBinaryClassData(classObjectPsiClass, fqName, classObjectDescriptor);
|
ResolverClassData classObjectData = ResolverClassData.createBinaryClassData(classObjectPsiClass, fqName, classObjectDescriptor);
|
||||||
classObjectDescriptor.setClassData(classObjectData);
|
classObjectDescriptor.setClassData(classObjectData);
|
||||||
classObjectDescriptor.setSupertypes(supertypesResolver.getSupertypes(new PsiClassWrapper(classObjectPsiClass), classObjectData,
|
classObjectDescriptor.setSupertypes(supertypesResolver.getSupertypes(classObjectDescriptor, new PsiClassWrapper(classObjectPsiClass), classObjectData,
|
||||||
Collections.<TypeParameterDescriptor>emptyList()));
|
Collections.<TypeParameterDescriptor>emptyList()
|
||||||
|
));
|
||||||
setUpClassObjectDescriptor(classObjectDescriptor, containing, fqName, classObjectData, getClassObjectName(containing.getName())
|
setUpClassObjectDescriptor(classObjectDescriptor, containing, fqName, classObjectData, getClassObjectName(containing.getName())
|
||||||
);
|
);
|
||||||
return classObjectDescriptor;
|
return classObjectDescriptor;
|
||||||
|
|||||||
+2
-1
@@ -248,7 +248,8 @@ public final class JavaClassResolver {
|
|||||||
|
|
||||||
// TODO: ugly hack: tests crash if initializeTypeParameters called with class containing proper supertypes
|
// TODO: ugly hack: tests crash if initializeTypeParameters called with class containing proper supertypes
|
||||||
List<TypeParameterDescriptor> classTypeParameters = classDescriptor.getTypeConstructor().getParameters();
|
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);
|
ClassDescriptorFromJvmBytecode classObjectDescriptor = classObjectResolver.createClassObjectDescriptor(classDescriptor, psiClass);
|
||||||
cache(DescriptorResolverUtils.getFqNameForClassObject(psiClass), classObjectDescriptor);
|
cache(DescriptorResolverUtils.getFqNameForClassObject(psiClass), classObjectDescriptor);
|
||||||
|
|||||||
+3
-2
@@ -62,12 +62,13 @@ public final class JavaConstructorResolver {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
public Collection<ConstructorDescriptor> resolveConstructors(@NotNull ResolverClassData classData) {
|
public Collection<ConstructorDescriptor> resolveConstructors(
|
||||||
|
@NotNull ResolverClassData classData, @NotNull ClassDescriptorFromJvmBytecode containingClass
|
||||||
|
) {
|
||||||
Collection<ConstructorDescriptor> constructors = Lists.newArrayList();
|
Collection<ConstructorDescriptor> constructors = Lists.newArrayList();
|
||||||
|
|
||||||
PsiClass psiClass = classData.getPsiClass();
|
PsiClass psiClass = classData.getPsiClass();
|
||||||
|
|
||||||
ClassDescriptorFromJvmBytecode containingClass = classData.getClassDescriptor();
|
|
||||||
assert psiClass != null;
|
assert psiClass != null;
|
||||||
TypeVariableResolver resolverForTypeParameters = TypeVariableResolvers.classTypeVariableResolver(
|
TypeVariableResolver resolverForTypeParameters = TypeVariableResolvers.classTypeVariableResolver(
|
||||||
containingClass, "class " + psiClass.getQualifiedName());
|
containingClass, "class " + psiClass.getQualifiedName());
|
||||||
|
|||||||
+1
-1
@@ -71,11 +71,11 @@ public final class JavaSupertypeResolver {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public Collection<JetType> getSupertypes(
|
public Collection<JetType> getSupertypes(
|
||||||
|
@NotNull ClassDescriptor classDescriptor,
|
||||||
@NotNull PsiClassWrapper psiClass,
|
@NotNull PsiClassWrapper psiClass,
|
||||||
@NotNull ResolverClassData classData,
|
@NotNull ResolverClassData classData,
|
||||||
@NotNull List<TypeParameterDescriptor> typeParameters
|
@NotNull List<TypeParameterDescriptor> typeParameters
|
||||||
) {
|
) {
|
||||||
ClassDescriptor classDescriptor = classData.getClassDescriptor();
|
|
||||||
|
|
||||||
final List<JetType> result = new ArrayList<JetType>();
|
final List<JetType> result = new ArrayList<JetType>();
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user