Refactor: Eliminate some usages of ResolverClassData#getClassDescriptor()
This commit is contained in:
+11
-10
@@ -116,7 +116,8 @@ public final class JavaClassObjectResolver {
|
||||
classObjectDescriptor.setClassData(classObjectData);
|
||||
classObjectDescriptor.setSupertypes(supertypesResolver.getSupertypes(new PsiClassWrapper(classObjectPsiClass), classObjectData,
|
||||
Collections.<TypeParameterDescriptor>emptyList()));
|
||||
setUpClassObjectDescriptor(containing, fqName, classObjectData, getClassObjectName(containing.getName()));
|
||||
setUpClassObjectDescriptor(classObjectDescriptor, containing, fqName, classObjectData, getClassObjectName(containing.getName())
|
||||
);
|
||||
return classObjectDescriptor;
|
||||
}
|
||||
|
||||
@@ -155,28 +156,28 @@ public final class JavaClassObjectResolver {
|
||||
classObjectDescriptor.setClassData(classData);
|
||||
|
||||
ResolverClassData data = ResolverClassData.createSyntheticClassObjectClassData(psiClass, classObjectDescriptor);
|
||||
setUpClassObjectDescriptor(containing, fqName, data, getClassObjectName(containing.getName().getName()));
|
||||
setUpClassObjectDescriptor(classObjectDescriptor, containing, fqName, data, getClassObjectName(containing.getName().getName()));
|
||||
|
||||
return classObjectDescriptor;
|
||||
}
|
||||
|
||||
private void setUpClassObjectDescriptor(
|
||||
@NotNull ClassDescriptorFromJvmBytecode classObjectDescriptor,
|
||||
@NotNull ClassDescriptor containing,
|
||||
@NotNull FqNameBase fqName,
|
||||
@NotNull ResolverClassData data,
|
||||
@NotNull Name classObjectName
|
||||
) {
|
||||
ClassDescriptorFromJvmBytecode classDescriptor = data.getClassDescriptor();
|
||||
classDescriptor.setName(classObjectName);
|
||||
classDescriptor.setModality(Modality.FINAL);
|
||||
classDescriptor.setVisibility(containing.getVisibility());
|
||||
classDescriptor.setTypeParameterDescriptors(Collections.<TypeParameterDescriptor>emptyList());
|
||||
classDescriptor.createTypeConstructor();
|
||||
classObjectDescriptor.setName(classObjectName);
|
||||
classObjectDescriptor.setModality(Modality.FINAL);
|
||||
classObjectDescriptor.setVisibility(containing.getVisibility());
|
||||
classObjectDescriptor.setTypeParameterDescriptors(Collections.<TypeParameterDescriptor>emptyList());
|
||||
classObjectDescriptor.createTypeConstructor();
|
||||
JavaClassMembersScope classMembersScope = new JavaClassMembersScope(semanticServices, data);
|
||||
WritableScopeImpl writableScope =
|
||||
new WritableScopeImpl(classMembersScope, classDescriptor, RedeclarationHandler.THROW_EXCEPTION, fqName.toString());
|
||||
new WritableScopeImpl(classMembersScope, classObjectDescriptor, RedeclarationHandler.THROW_EXCEPTION, fqName.toString());
|
||||
writableScope.changeLockLevel(WritableScope.LockLevel.BOTH);
|
||||
classDescriptor.setScopeForMemberLookup(writableScope);
|
||||
classObjectDescriptor.setScopeForMemberLookup(writableScope);
|
||||
}
|
||||
|
||||
|
||||
|
||||
+3
-3
@@ -212,11 +212,11 @@ public final class JavaClassResolver {
|
||||
|
||||
assert (!unresolvedCache.contains(fqName)) : "We can resolve the class, so it can't be 'unresolved' during parent resolution";
|
||||
|
||||
return doCreateClassDescriptor(fqName, psiClass, taskList, containingDeclaration).getClassDescriptor();
|
||||
return doCreateClassDescriptor(fqName, psiClass, taskList, containingDeclaration);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
private ResolverClassData doCreateClassDescriptor(
|
||||
private ClassDescriptorFromJvmBytecode doCreateClassDescriptor(
|
||||
@NotNull FqName fqName,
|
||||
@NotNull PsiClass psiClass,
|
||||
@NotNull PostponedTasks taskList,
|
||||
@@ -260,7 +260,7 @@ public final class JavaClassResolver {
|
||||
|
||||
trace.record(BindingContext.CLASS, psiClass, classDescriptor);
|
||||
|
||||
return classData;
|
||||
return classDescriptor;
|
||||
}
|
||||
|
||||
private void cache(@NotNull FqNameBase fqName, @Nullable ClassDescriptor classDescriptor) {
|
||||
|
||||
+6
-6
@@ -145,7 +145,7 @@ public final class JavaConstructorResolver {
|
||||
}
|
||||
else {
|
||||
for (PsiMethod psiConstructor : psiConstructors) {
|
||||
ConstructorDescriptor constructor = resolveConstructor(psiClass, classData, isStatic, psiConstructor);
|
||||
ConstructorDescriptor constructor = resolveConstructor(psiClass, isStatic, psiConstructor, containingClass);
|
||||
if (constructor != null) {
|
||||
constructors.add(constructor);
|
||||
}
|
||||
@@ -162,9 +162,9 @@ public final class JavaConstructorResolver {
|
||||
@Nullable
|
||||
private ConstructorDescriptor resolveConstructor(
|
||||
PsiClass psiClass,
|
||||
ResolverClassData classData,
|
||||
boolean aStatic,
|
||||
PsiMethod psiConstructor
|
||||
PsiMethod psiConstructor,
|
||||
ClassDescriptorFromJvmBytecode classDescriptor
|
||||
) {
|
||||
PsiMethodWrapper constructor = new PsiMethodWrapper(psiConstructor);
|
||||
|
||||
@@ -178,14 +178,14 @@ public final class JavaConstructorResolver {
|
||||
}
|
||||
|
||||
ConstructorDescriptorImpl constructorDescriptor = new ConstructorDescriptorImpl(
|
||||
classData.getClassDescriptor(),
|
||||
classDescriptor,
|
||||
Collections.<AnnotationDescriptor>emptyList(), // TODO
|
||||
false);
|
||||
|
||||
String context = "constructor of class " + psiClass.getQualifiedName();
|
||||
JavaDescriptorResolver.ValueParameterDescriptors valueParameterDescriptors = valueParameterResolver.resolveParameterDescriptors(
|
||||
constructorDescriptor, constructor.getParameters(),
|
||||
TypeVariableResolvers.classTypeVariableResolver(classData.getClassDescriptor(), context));
|
||||
TypeVariableResolvers.classTypeVariableResolver(classDescriptor, context));
|
||||
|
||||
if (valueParameterDescriptors.getReceiverType() != null) {
|
||||
throw new IllegalStateException();
|
||||
@@ -202,7 +202,7 @@ public final class JavaConstructorResolver {
|
||||
alternativeMethodSignatureData.getError());
|
||||
}
|
||||
|
||||
constructorDescriptor.initialize(classData.getClassDescriptor().getTypeConstructor().getParameters(),
|
||||
constructorDescriptor.initialize(classDescriptor.getTypeConstructor().getParameters(),
|
||||
valueParameterDescriptors.getDescriptors(),
|
||||
DescriptorResolverUtils.resolveVisibility(psiConstructor, constructor.getJetConstructorAnnotation()),
|
||||
aStatic);
|
||||
|
||||
Reference in New Issue
Block a user