Getting rid of unneeded parameters
+ constants introduced
This commit is contained in:
@@ -54,6 +54,9 @@ import static org.jetbrains.jet.lang.resolve.BindingContext.CONSTRUCTOR;
|
||||
* @author abreslav
|
||||
*/
|
||||
public class DescriptorResolver {
|
||||
public static final Name VALUE_OF_METHOD_NAME = Name.identifier("valueOf");
|
||||
public static final Name VALUES_METHOD_NAME = Name.identifier("values");
|
||||
|
||||
@NotNull
|
||||
private TypeResolver typeResolver;
|
||||
@NotNull
|
||||
@@ -1142,43 +1145,46 @@ public class DescriptorResolver {
|
||||
}
|
||||
|
||||
public static SimpleFunctionDescriptor createEnumClassObjectValuesMethod(
|
||||
final ClassDescriptor mutableClassDescriptor,
|
||||
ClassDescriptor classObjectDescriptor,
|
||||
final ClassDescriptor enumClassDescriptor,
|
||||
BindingTrace trace
|
||||
) {
|
||||
ClassDescriptor classObjectDescriptor = enumClassDescriptor.getClassObjectDescriptor();
|
||||
assert classObjectDescriptor != null : "Enum class has no class object";
|
||||
List<AnnotationDescriptor> annotations = Collections.<AnnotationDescriptor>emptyList();
|
||||
SimpleFunctionDescriptorImpl values =
|
||||
new SimpleFunctionDescriptorImpl(classObjectDescriptor, annotations,
|
||||
Name.identifier("values"),
|
||||
VALUES_METHOD_NAME,
|
||||
CallableMemberDescriptor.Kind.DECLARATION);
|
||||
ClassReceiver classReceiver = new ClassReceiver(classObjectDescriptor);
|
||||
JetType type = DeferredType.create(trace, new LazyValue<JetType>() {
|
||||
@Override
|
||||
protected JetType compute() {
|
||||
return JetStandardLibrary.getInstance().getArrayType(mutableClassDescriptor.getDefaultType());
|
||||
return JetStandardLibrary.getInstance().getArrayType(enumClassDescriptor.getDefaultType());
|
||||
}
|
||||
});
|
||||
values.initialize(null, classReceiver, Collections.<TypeParameterDescriptor>emptyList(),Collections.<ValueParameterDescriptor>emptyList(),
|
||||
values.initialize(null, classReceiver, Collections.<TypeParameterDescriptor>emptyList(),
|
||||
Collections.<ValueParameterDescriptor>emptyList(),
|
||||
type, Modality.FINAL,
|
||||
Visibilities.PUBLIC, false);
|
||||
return values;
|
||||
}
|
||||
|
||||
public static SimpleFunctionDescriptor createEnumClassObjectValueOfMethod(
|
||||
final ClassDescriptor mutableClassDescriptor,
|
||||
ClassDescriptor classObjectDescriptor,
|
||||
final ClassDescriptor enumClassDescriptor,
|
||||
BindingTrace trace
|
||||
) {
|
||||
ClassDescriptor classObjectDescriptor = enumClassDescriptor.getClassObjectDescriptor();
|
||||
assert classObjectDescriptor != null : "Enum class has no class object";
|
||||
List<AnnotationDescriptor> annotations = Collections.<AnnotationDescriptor>emptyList();
|
||||
SimpleFunctionDescriptorImpl values =
|
||||
new SimpleFunctionDescriptorImpl(classObjectDescriptor, annotations,
|
||||
Name.identifier("valueOf"),
|
||||
VALUE_OF_METHOD_NAME,
|
||||
CallableMemberDescriptor.Kind.DECLARATION);
|
||||
ClassReceiver classReceiver = new ClassReceiver(classObjectDescriptor);
|
||||
JetType type = DeferredType.create(trace, new LazyValue<JetType>() {
|
||||
@Override
|
||||
protected JetType compute() {
|
||||
return mutableClassDescriptor.getDefaultType();
|
||||
return enumClassDescriptor.getDefaultType();
|
||||
}
|
||||
});
|
||||
ValueParameterDescriptor parameterDescriptor = new ValueParameterDescriptorImpl(
|
||||
|
||||
@@ -292,6 +292,7 @@ public class TypeHierarchyResolver {
|
||||
MutableClassDescriptor classObjectDescriptor = new MutableClassDescriptor(
|
||||
mutableClassDescriptor, outerScope, ClassKind.OBJECT,
|
||||
Name.special("<class-object-for-" + klass.getName() + ">"));
|
||||
mutableClassDescriptor.getBuilder().setClassObjectDescriptor(classObjectDescriptor);
|
||||
classObjectDescriptor.setModality(Modality.FINAL);
|
||||
classObjectDescriptor.setVisibility(DescriptorResolver.resolveVisibilityFromModifiers(klass.getModifierList()));
|
||||
classObjectDescriptor.setTypeParameterDescriptors(new ArrayList<TypeParameterDescriptor>(0));
|
||||
@@ -299,9 +300,8 @@ public class TypeHierarchyResolver {
|
||||
ConstructorDescriptorImpl primaryConstructorForObject =
|
||||
createPrimaryConstructorForObject(null, classObjectDescriptor);
|
||||
primaryConstructorForObject.setReturnType(classObjectDescriptor.getDefaultType());
|
||||
classObjectDescriptor.getBuilder().addFunctionDescriptor(DescriptorResolver.createEnumClassObjectValuesMethod(mutableClassDescriptor, classObjectDescriptor, trace));
|
||||
classObjectDescriptor.getBuilder().addFunctionDescriptor(DescriptorResolver.createEnumClassObjectValueOfMethod(mutableClassDescriptor, classObjectDescriptor,trace));
|
||||
mutableClassDescriptor.getBuilder().setClassObjectDescriptor(classObjectDescriptor);
|
||||
classObjectDescriptor.getBuilder().addFunctionDescriptor(DescriptorResolver.createEnumClassObjectValuesMethod(mutableClassDescriptor, trace));
|
||||
classObjectDescriptor.getBuilder().addFunctionDescriptor(DescriptorResolver.createEnumClassObjectValueOfMethod(mutableClassDescriptor, trace));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user