Extract method for clarification
This commit is contained in:
+14
-7
@@ -143,11 +143,9 @@ public class LazyClassMemberScope extends AbstractLazyMemberScope<LazyClassDescr
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void generateEnumClassObjectMethods(@NotNull Collection<? super FunctionDescriptor> result, @NotNull Name name) {
|
private void generateEnumClassObjectMethods(@NotNull Collection<? super FunctionDescriptor> result, @NotNull Name name) {
|
||||||
DeclarationDescriptor containingDeclaration = thisDescriptor.getContainingDeclaration();
|
if (!isEnumClassObject()) return;
|
||||||
if (!(containingDeclaration instanceof ClassDescriptor)) return;
|
|
||||||
ClassDescriptor classDescriptor = (ClassDescriptor) containingDeclaration;
|
ClassDescriptor classDescriptor = (ClassDescriptor) thisDescriptor.getContainingDeclaration();
|
||||||
if (classDescriptor.getClassObjectDescriptor() != thisDescriptor) return;
|
|
||||||
if (classDescriptor.getKind() != ClassKind.ENUM_CLASS) return;
|
|
||||||
|
|
||||||
if (name.equals(DescriptorResolver.VALUES_METHOD_NAME)) {
|
if (name.equals(DescriptorResolver.VALUES_METHOD_NAME)) {
|
||||||
SimpleFunctionDescriptor valuesMethod = DescriptorResolver
|
SimpleFunctionDescriptor valuesMethod = DescriptorResolver
|
||||||
@@ -155,12 +153,21 @@ public class LazyClassMemberScope extends AbstractLazyMemberScope<LazyClassDescr
|
|||||||
result.add(valuesMethod);
|
result.add(valuesMethod);
|
||||||
}
|
}
|
||||||
else if (name.equals(DescriptorResolver.VALUE_OF_METHOD_NAME)) {
|
else if (name.equals(DescriptorResolver.VALUE_OF_METHOD_NAME)) {
|
||||||
SimpleFunctionDescriptor valueOfMethod = DescriptorResolver.createEnumClassObjectValueOfMethod(classDescriptor,
|
SimpleFunctionDescriptor valueOfMethod = DescriptorResolver
|
||||||
resolveSession.getTrace());
|
.createEnumClassObjectValueOfMethod(classDescriptor, resolveSession.getTrace());
|
||||||
result.add(valueOfMethod);
|
result.add(valueOfMethod);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private boolean isEnumClassObject() {
|
||||||
|
DeclarationDescriptor containingDeclaration = thisDescriptor.getContainingDeclaration();
|
||||||
|
if (!(containingDeclaration instanceof ClassDescriptor)) return false;
|
||||||
|
ClassDescriptor classDescriptor = (ClassDescriptor) containingDeclaration;
|
||||||
|
if (classDescriptor.getKind() != ClassKind.ENUM_CLASS) return false;
|
||||||
|
if (classDescriptor.getClassObjectDescriptor() != thisDescriptor) return false;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
@Override
|
@Override
|
||||||
public Set<VariableDescriptor> getProperties(@NotNull Name name) {
|
public Set<VariableDescriptor> getProperties(@NotNull Name name) {
|
||||||
|
|||||||
Reference in New Issue
Block a user