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.setClassData(classObjectData);
|
||||||
classObjectDescriptor.setSupertypes(supertypesResolver.getSupertypes(new PsiClassWrapper(classObjectPsiClass), classObjectData,
|
classObjectDescriptor.setSupertypes(supertypesResolver.getSupertypes(new PsiClassWrapper(classObjectPsiClass), classObjectData,
|
||||||
Collections.<TypeParameterDescriptor>emptyList()));
|
Collections.<TypeParameterDescriptor>emptyList()));
|
||||||
setUpClassObjectDescriptor(containing, fqName, classObjectData, getClassObjectName(containing.getName()));
|
setUpClassObjectDescriptor(classObjectDescriptor, containing, fqName, classObjectData, getClassObjectName(containing.getName())
|
||||||
|
);
|
||||||
return classObjectDescriptor;
|
return classObjectDescriptor;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -155,28 +156,28 @@ public final class JavaClassObjectResolver {
|
|||||||
classObjectDescriptor.setClassData(classData);
|
classObjectDescriptor.setClassData(classData);
|
||||||
|
|
||||||
ResolverClassData data = ResolverClassData.createSyntheticClassObjectClassData(psiClass, classObjectDescriptor);
|
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;
|
return classObjectDescriptor;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void setUpClassObjectDescriptor(
|
private void setUpClassObjectDescriptor(
|
||||||
|
@NotNull ClassDescriptorFromJvmBytecode classObjectDescriptor,
|
||||||
@NotNull ClassDescriptor containing,
|
@NotNull ClassDescriptor containing,
|
||||||
@NotNull FqNameBase fqName,
|
@NotNull FqNameBase fqName,
|
||||||
@NotNull ResolverClassData data,
|
@NotNull ResolverClassData data,
|
||||||
@NotNull Name classObjectName
|
@NotNull Name classObjectName
|
||||||
) {
|
) {
|
||||||
ClassDescriptorFromJvmBytecode classDescriptor = data.getClassDescriptor();
|
classObjectDescriptor.setName(classObjectName);
|
||||||
classDescriptor.setName(classObjectName);
|
classObjectDescriptor.setModality(Modality.FINAL);
|
||||||
classDescriptor.setModality(Modality.FINAL);
|
classObjectDescriptor.setVisibility(containing.getVisibility());
|
||||||
classDescriptor.setVisibility(containing.getVisibility());
|
classObjectDescriptor.setTypeParameterDescriptors(Collections.<TypeParameterDescriptor>emptyList());
|
||||||
classDescriptor.setTypeParameterDescriptors(Collections.<TypeParameterDescriptor>emptyList());
|
classObjectDescriptor.createTypeConstructor();
|
||||||
classDescriptor.createTypeConstructor();
|
|
||||||
JavaClassMembersScope classMembersScope = new JavaClassMembersScope(semanticServices, data);
|
JavaClassMembersScope classMembersScope = new JavaClassMembersScope(semanticServices, data);
|
||||||
WritableScopeImpl writableScope =
|
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);
|
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";
|
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
|
@NotNull
|
||||||
private ResolverClassData doCreateClassDescriptor(
|
private ClassDescriptorFromJvmBytecode doCreateClassDescriptor(
|
||||||
@NotNull FqName fqName,
|
@NotNull FqName fqName,
|
||||||
@NotNull PsiClass psiClass,
|
@NotNull PsiClass psiClass,
|
||||||
@NotNull PostponedTasks taskList,
|
@NotNull PostponedTasks taskList,
|
||||||
@@ -260,7 +260,7 @@ public final class JavaClassResolver {
|
|||||||
|
|
||||||
trace.record(BindingContext.CLASS, psiClass, classDescriptor);
|
trace.record(BindingContext.CLASS, psiClass, classDescriptor);
|
||||||
|
|
||||||
return classData;
|
return classDescriptor;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void cache(@NotNull FqNameBase fqName, @Nullable ClassDescriptor classDescriptor) {
|
private void cache(@NotNull FqNameBase fqName, @Nullable ClassDescriptor classDescriptor) {
|
||||||
|
|||||||
+6
-6
@@ -145,7 +145,7 @@ public final class JavaConstructorResolver {
|
|||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
for (PsiMethod psiConstructor : psiConstructors) {
|
for (PsiMethod psiConstructor : psiConstructors) {
|
||||||
ConstructorDescriptor constructor = resolveConstructor(psiClass, classData, isStatic, psiConstructor);
|
ConstructorDescriptor constructor = resolveConstructor(psiClass, isStatic, psiConstructor, containingClass);
|
||||||
if (constructor != null) {
|
if (constructor != null) {
|
||||||
constructors.add(constructor);
|
constructors.add(constructor);
|
||||||
}
|
}
|
||||||
@@ -162,9 +162,9 @@ public final class JavaConstructorResolver {
|
|||||||
@Nullable
|
@Nullable
|
||||||
private ConstructorDescriptor resolveConstructor(
|
private ConstructorDescriptor resolveConstructor(
|
||||||
PsiClass psiClass,
|
PsiClass psiClass,
|
||||||
ResolverClassData classData,
|
|
||||||
boolean aStatic,
|
boolean aStatic,
|
||||||
PsiMethod psiConstructor
|
PsiMethod psiConstructor,
|
||||||
|
ClassDescriptorFromJvmBytecode classDescriptor
|
||||||
) {
|
) {
|
||||||
PsiMethodWrapper constructor = new PsiMethodWrapper(psiConstructor);
|
PsiMethodWrapper constructor = new PsiMethodWrapper(psiConstructor);
|
||||||
|
|
||||||
@@ -178,14 +178,14 @@ public final class JavaConstructorResolver {
|
|||||||
}
|
}
|
||||||
|
|
||||||
ConstructorDescriptorImpl constructorDescriptor = new ConstructorDescriptorImpl(
|
ConstructorDescriptorImpl constructorDescriptor = new ConstructorDescriptorImpl(
|
||||||
classData.getClassDescriptor(),
|
classDescriptor,
|
||||||
Collections.<AnnotationDescriptor>emptyList(), // TODO
|
Collections.<AnnotationDescriptor>emptyList(), // TODO
|
||||||
false);
|
false);
|
||||||
|
|
||||||
String context = "constructor of class " + psiClass.getQualifiedName();
|
String context = "constructor of class " + psiClass.getQualifiedName();
|
||||||
JavaDescriptorResolver.ValueParameterDescriptors valueParameterDescriptors = valueParameterResolver.resolveParameterDescriptors(
|
JavaDescriptorResolver.ValueParameterDescriptors valueParameterDescriptors = valueParameterResolver.resolveParameterDescriptors(
|
||||||
constructorDescriptor, constructor.getParameters(),
|
constructorDescriptor, constructor.getParameters(),
|
||||||
TypeVariableResolvers.classTypeVariableResolver(classData.getClassDescriptor(), context));
|
TypeVariableResolvers.classTypeVariableResolver(classDescriptor, context));
|
||||||
|
|
||||||
if (valueParameterDescriptors.getReceiverType() != null) {
|
if (valueParameterDescriptors.getReceiverType() != null) {
|
||||||
throw new IllegalStateException();
|
throw new IllegalStateException();
|
||||||
@@ -202,7 +202,7 @@ public final class JavaConstructorResolver {
|
|||||||
alternativeMethodSignatureData.getError());
|
alternativeMethodSignatureData.getError());
|
||||||
}
|
}
|
||||||
|
|
||||||
constructorDescriptor.initialize(classData.getClassDescriptor().getTypeConstructor().getParameters(),
|
constructorDescriptor.initialize(classDescriptor.getTypeConstructor().getParameters(),
|
||||||
valueParameterDescriptors.getDescriptors(),
|
valueParameterDescriptors.getDescriptors(),
|
||||||
DescriptorResolverUtils.resolveVisibility(psiConstructor, constructor.getJetConstructorAnnotation()),
|
DescriptorResolverUtils.resolveVisibility(psiConstructor, constructor.getJetConstructorAnnotation()),
|
||||||
aStatic);
|
aStatic);
|
||||||
|
|||||||
Reference in New Issue
Block a user