refactoring for easier next step refactoring
call MutableClassDescriptor.setTypeParameterDescriptors(..) exactly once
This commit is contained in:
+5
-1
@@ -28,7 +28,7 @@ public class MutableClassDescriptor extends MutableDeclarationDescriptor impleme
|
|||||||
private final Set<CallableMemberDescriptor> callableMembers = Sets.newHashSet();
|
private final Set<CallableMemberDescriptor> callableMembers = Sets.newHashSet();
|
||||||
private final Set<PropertyDescriptor> properties = Sets.newHashSet();
|
private final Set<PropertyDescriptor> properties = Sets.newHashSet();
|
||||||
private final Set<NamedFunctionDescriptor> functions = Sets.newHashSet();
|
private final Set<NamedFunctionDescriptor> functions = Sets.newHashSet();
|
||||||
private List<TypeParameterDescriptor> typeParameters = Lists.newArrayList();
|
private List<TypeParameterDescriptor> typeParameters;
|
||||||
private Collection<JetType> supertypes = Lists.newArrayList();
|
private Collection<JetType> supertypes = Lists.newArrayList();
|
||||||
private Map<String, ClassDescriptor> innerClassesAndObjects = Maps.newHashMap();
|
private Map<String, ClassDescriptor> innerClassesAndObjects = Maps.newHashMap();
|
||||||
|
|
||||||
@@ -217,6 +217,10 @@ public class MutableClassDescriptor extends MutableDeclarationDescriptor impleme
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void setTypeParameterDescriptors(List<TypeParameterDescriptor> typeParameters) {
|
public void setTypeParameterDescriptors(List<TypeParameterDescriptor> typeParameters) {
|
||||||
|
if (this.typeParameters != null) {
|
||||||
|
throw new IllegalStateException();
|
||||||
|
}
|
||||||
|
this.typeParameters = new ArrayList<TypeParameterDescriptor>();
|
||||||
for (TypeParameterDescriptor typeParameterDescriptor : typeParameters) {
|
for (TypeParameterDescriptor typeParameterDescriptor : typeParameters) {
|
||||||
this.typeParameters.add(typeParameterDescriptor);
|
this.typeParameters.add(typeParameterDescriptor);
|
||||||
scopeForSupertypeResolution.addTypeParameterDescriptor(typeParameterDescriptor);
|
scopeForSupertypeResolution.addTypeParameterDescriptor(typeParameterDescriptor);
|
||||||
|
|||||||
@@ -94,6 +94,7 @@ public class TypeHierarchyResolver {
|
|||||||
classObjectDescriptor.setName("class-object-for-" + klass.getName());
|
classObjectDescriptor.setName("class-object-for-" + klass.getName());
|
||||||
classObjectDescriptor.setModality(Modality.FINAL);
|
classObjectDescriptor.setModality(Modality.FINAL);
|
||||||
classObjectDescriptor.setVisibility(DescriptorResolver.resolveVisibilityFromModifiers(klass.getModifierList()));
|
classObjectDescriptor.setVisibility(DescriptorResolver.resolveVisibilityFromModifiers(klass.getModifierList()));
|
||||||
|
classObjectDescriptor.setTypeParameterDescriptors(new ArrayList<TypeParameterDescriptor>(0));
|
||||||
classObjectDescriptor.createTypeConstructor();
|
classObjectDescriptor.createTypeConstructor();
|
||||||
createPrimaryConstructorForObject(null, classObjectDescriptor);
|
createPrimaryConstructorForObject(null, classObjectDescriptor);
|
||||||
mutableClassDescriptor.setClassObjectDescriptor(classObjectDescriptor);
|
mutableClassDescriptor.setClassObjectDescriptor(classObjectDescriptor);
|
||||||
@@ -243,6 +244,7 @@ public class TypeHierarchyResolver {
|
|||||||
MutableClassDescriptor descriptor = entry.getValue();
|
MutableClassDescriptor descriptor = entry.getValue();
|
||||||
descriptor.setModality(Modality.FINAL);
|
descriptor.setModality(Modality.FINAL);
|
||||||
descriptor.setVisibility(DescriptorResolver.resolveVisibilityFromModifiers(objectDeclaration.getModifierList()));
|
descriptor.setVisibility(DescriptorResolver.resolveVisibilityFromModifiers(objectDeclaration.getModifierList()));
|
||||||
|
descriptor.setTypeParameterDescriptors(new ArrayList<TypeParameterDescriptor>(0));
|
||||||
descriptor.createTypeConstructor();
|
descriptor.createTypeConstructor();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user