Skip to content

Commit

Permalink
JavaDescriptorResolveData.ResolverClassData classDescriptor is privat…
Browse files Browse the repository at this point in the history
…e and accessed via getter
  • Loading branch information
pTalanov committed Oct 3, 2012
1 parent 1026675 commit 09c609e
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 27 deletions.
Expand Up @@ -145,7 +145,7 @@ static class ResolverBinaryClassData extends ResolverClassData {

static class ResolverClassData extends ResolverScopeData {

final ClassDescriptorFromJvmBytecode classDescriptor;
private final ClassDescriptorFromJvmBytecode classDescriptor;

List<JavaDescriptorSignatureResolver.TypeParameterDescriptorInitialization> typeParameters;

Expand All @@ -166,8 +166,7 @@ protected ResolverClassData(
classDescriptor = descriptor;
}

@NotNull
public ClassDescriptor getClassDescriptor() {
public ClassDescriptorFromJvmBytecode getClassDescriptor() {
return classDescriptor;
}

Expand Down
Expand Up @@ -206,7 +206,7 @@ else if (searchRule == DescriptorSearchRule.INCLUDE_KOTLIN) {
}
classData = createJavaClassDescriptor(psiClass, tasks);
}
return classData.classDescriptor;
return classData.getClassDescriptor();
}

@NotNull
Expand Down Expand Up @@ -235,7 +235,7 @@ private ResolverClassData createJavaClassDescriptor(@NotNull final PsiClass psiC
containingDeclaration, kind, psiClass, fqName, this)
.getResolverBinaryClassData();
classDescriptorCache.put(fqName, classData);
classData.classDescriptor.setName(name);
classData.getClassDescriptor().setName(name);

List<JetType> supertypes = new ArrayList<JetType>();

Expand All @@ -246,35 +246,35 @@ private ResolverClassData createJavaClassDescriptor(@NotNull final PsiClass psiC
typeParameters.add(typeParameter.descriptor);
}

classData.classDescriptor.setTypeParameterDescriptors(typeParameters);
classData.classDescriptor.setSupertypes(supertypes);
classData.classDescriptor.setVisibility(resolveVisibility(psiClass, JetClassAnnotation.get(psiClass)));
classData.getClassDescriptor().setTypeParameterDescriptors(typeParameters);
classData.getClassDescriptor().setSupertypes(supertypes);
classData.getClassDescriptor().setVisibility(resolveVisibility(psiClass, JetClassAnnotation.get(psiClass)));
Modality modality;
if (classData.classDescriptor.getKind() == ClassKind.ANNOTATION_CLASS) {
if (classData.getClassDescriptor().getKind() == ClassKind.ANNOTATION_CLASS) {
modality = Modality.FINAL;
}
else {
modality = Modality.convertFromFlags(
psiClass.hasModifierProperty(PsiModifier.ABSTRACT) || psiClass.isInterface(),
!psiClass.hasModifierProperty(PsiModifier.FINAL));
}
classData.classDescriptor.setModality(modality);
classData.classDescriptor.createTypeConstructor();
classData.classDescriptor.setScopeForMemberLookup(new JavaClassMembersScope(semanticServices, classData));
classData.getClassDescriptor().setModality(modality);
classData.getClassDescriptor().createTypeConstructor();
classData.getClassDescriptor().setScopeForMemberLookup(new JavaClassMembersScope(semanticServices, classData));

javaDescriptorSignatureResolver.initializeTypeParameters(classData.typeParameters, classData.classDescriptor, "class " + qualifiedName);
javaDescriptorSignatureResolver.initializeTypeParameters(classData.typeParameters, classData.getClassDescriptor(), "class " + qualifiedName);

// TODO: ugly hack: tests crash if initializeTypeParameters called with class containing proper supertypes
supertypes.addAll(getSupertypes(new PsiClassWrapper(psiClass), classData, classData.getTypeParameters()));

MutableClassDescriptorLite classObject = createClassObjectDescriptor(classData.classDescriptor, psiClass);
MutableClassDescriptorLite classObject = createClassObjectDescriptor(classData.getClassDescriptor(), psiClass);
if (classObject != null) {
classData.classDescriptor.getBuilder().setClassObjectDescriptor(classObject);
classData.getClassDescriptor().getBuilder().setClassObjectDescriptor(classObject);
}

classData.classDescriptor.setAnnotations(resolveAnnotations(psiClass, taskList));
classData.getClassDescriptor().setAnnotations(resolveAnnotations(psiClass, taskList));

trace.record(BindingContext.CLASS, psiClass, classData.classDescriptor);
trace.record(BindingContext.CLASS, psiClass, classData.getClassDescriptor());

return classData;
}
Expand All @@ -285,7 +285,7 @@ public Collection<ConstructorDescriptor> resolveConstructors(@NotNull ResolverCl

PsiClass psiClass = classData.getPsiClass();

ClassDescriptorFromJvmBytecode containingClass = classData.classDescriptor;
ClassDescriptorFromJvmBytecode containingClass = classData.getClassDescriptor();
assert psiClass != null;
TypeVariableResolver resolverForTypeParameters = TypeVariableResolvers.classTypeVariableResolver(
containingClass, "class " + psiClass.getQualifiedName());
Expand Down Expand Up @@ -390,19 +390,19 @@ private ConstructorDescriptor resolveConstructor(PsiClass psiClass, ResolverClas
}

ConstructorDescriptorImpl constructorDescriptor = new ConstructorDescriptorImpl(
classData.classDescriptor,
classData.getClassDescriptor(),
Collections.<AnnotationDescriptor>emptyList(), // TODO
false);

String context = "constructor of class " + psiClass.getQualifiedName();
ValueParameterDescriptors valueParameterDescriptors = resolveParameterDescriptors(
constructorDescriptor, constructor.getParameters(),
TypeVariableResolvers.classTypeVariableResolver(classData.classDescriptor, context));
TypeVariableResolvers.classTypeVariableResolver(classData.getClassDescriptor(), context));

if (valueParameterDescriptors.receiverType != null) {
throw new IllegalStateException();
}
constructorDescriptor.initialize(classData.classDescriptor.getTypeConstructor().getParameters(),
constructorDescriptor.initialize(classData.getClassDescriptor().getTypeConstructor().getParameters(),
valueParameterDescriptors.descriptors,
resolveVisibility(psiConstructor, constructor.getJetConstructor()), aStatic);
trace.record(BindingContext.CONSTRUCTOR, psiConstructor, constructorDescriptor);
Expand Down Expand Up @@ -460,7 +460,7 @@ private MutableClassDescriptorLite createClassObjectDescriptor(@NotNull ClassDes
containing, ClassKind.CLASS_OBJECT, classObjectPsiClass, fqName, this)
.getResolverBinaryClassData();

ClassDescriptorFromJvmBytecode classObjectDescriptor = classData.classDescriptor;
ClassDescriptorFromJvmBytecode classObjectDescriptor = classData.getClassDescriptor();
classObjectDescriptor.setSupertypes(
getSupertypes(new PsiClassWrapper(classObjectPsiClass), classData, new ArrayList<TypeParameterDescriptor>(0)));
setUpClassObjectDescriptor(containing, fqName, classData, getClassObjectName(containing.getName()));
Expand Down Expand Up @@ -509,7 +509,7 @@ private void setUpClassObjectDescriptor(
@NotNull ResolverClassData data,
@NotNull Name classObjectName
) {
ClassDescriptorFromJvmBytecode classDescriptor = data.classDescriptor;
ClassDescriptorFromJvmBytecode classDescriptor = data.getClassDescriptor();
classDescriptorCache.put(fqName, data);
classDescriptor.setName(classObjectName);
classDescriptor.setModality(Modality.FINAL);
Expand Down Expand Up @@ -562,7 +562,7 @@ private ClassOrNamespaceDescriptor resolveParentDescriptor(@NotNull PsiClass psi
}

private Collection<JetType> getSupertypes(PsiClassWrapper psiClass, ResolverClassData classData, List<TypeParameterDescriptor> typeParameters) {
ClassDescriptor classDescriptor = classData.classDescriptor;
ClassDescriptor classDescriptor = classData.getClassDescriptor();

final List<JetType> result = new ArrayList<JetType>();

Expand Down Expand Up @@ -1374,7 +1374,7 @@ public List<FunctionDescriptor> resolveMethods(@NotNull ResolverScopeData scopeD

static Collection<JetType> getSupertypes(ResolverScopeData scope) {
if (scope instanceof ResolverClassData) {
return ((ResolverClassData) scope).classDescriptor.getSupertypes();
return ((ResolverClassData) scope).getClassDescriptor().getSupertypes();
}
else if (scope instanceof ResolverNamespaceData) {
return Collections.emptyList();
Expand Down
Expand Up @@ -318,10 +318,10 @@ List<TypeParameterDescriptorInitialization> createUninitializedClassTypeParamete

if (jetClassAnnotation.signature().length() > 0) {
return resolveClassTypeParametersFromJetSignature(
jetClassAnnotation.signature(), psiClass, classData.classDescriptor);
jetClassAnnotation.signature(), psiClass, classData.getClassDescriptor());
}

return makeUninitializedTypeParameters(classData.classDescriptor, psiClass.getTypeParameters());
return makeUninitializedTypeParameters(classData.getClassDescriptor(), psiClass.getTypeParameters());
}


Expand Down

0 comments on commit 09c609e

Please sign in to comment.