JavaDescriptorResolver: remove duplicated code
This commit is contained in:
+3
-17
@@ -1685,10 +1685,11 @@ public class JavaDescriptorResolver implements DependencyClassByQualifiedNameRes
|
|||||||
|
|
||||||
ClassDescriptor classDescriptor = resolveClass(annotationFqName, DescriptorSearchRule.INCLUDE_KOTLIN, taskList);
|
ClassDescriptor classDescriptor = resolveClass(annotationFqName, DescriptorSearchRule.INCLUDE_KOTLIN, taskList);
|
||||||
|
|
||||||
JetType expectedArrayType = getExpectedArrayType(classDescriptor, valueName);
|
ValueParameterDescriptor valueParameterDescriptor = getValueParameterDescriptorForAnnotationParameter(valueName, classDescriptor);
|
||||||
if (expectedArrayType == null) {
|
if (valueParameterDescriptor == null) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
JetType expectedArrayType = valueParameterDescriptor.getType();
|
||||||
return new ArrayValue(values, expectedArrayType);
|
return new ArrayValue(values, expectedArrayType);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1710,21 +1711,6 @@ public class JavaDescriptorResolver implements DependencyClassByQualifiedNameRes
|
|||||||
return values;
|
return values;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Nullable
|
|
||||||
private JetType getExpectedArrayType(ClassDescriptor clazz, Name argumentName) {
|
|
||||||
Collection<ConstructorDescriptor> constructors = clazz.getConstructors();
|
|
||||||
assert constructors.size() == 1 : "Annotation class descriptor must have only one constructor";
|
|
||||||
List<ValueParameterDescriptor> valueParameters = constructors.iterator().next().getValueParameters();
|
|
||||||
|
|
||||||
for (ValueParameterDescriptor parameter : valueParameters) {
|
|
||||||
Name parameterName = parameter.getName();
|
|
||||||
if (parameterName.equals(argumentName)) {
|
|
||||||
return parameter.getType();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
private CompileTimeConstant<?> getCompileTimeConstFromReferenceExpression(PsiReferenceExpression value, List<Runnable> taskList) {
|
private CompileTimeConstant<?> getCompileTimeConstFromReferenceExpression(PsiReferenceExpression value, List<Runnable> taskList) {
|
||||||
PsiElement resolveElement = value.resolve();
|
PsiElement resolveElement = value.resolve();
|
||||||
|
|||||||
Reference in New Issue
Block a user