JavaDescriptorResolver: remove duplicated code

This commit is contained in:
Natalia.Ukhorskaya
2012-08-30 12:20:26 +04:00
parent c8af013a5a
commit 97cab46c39
@@ -1685,10 +1685,11 @@ public class JavaDescriptorResolver implements DependencyClassByQualifiedNameRes
ClassDescriptor classDescriptor = resolveClass(annotationFqName, DescriptorSearchRule.INCLUDE_KOTLIN, taskList);
JetType expectedArrayType = getExpectedArrayType(classDescriptor, valueName);
if (expectedArrayType == null) {
ValueParameterDescriptor valueParameterDescriptor = getValueParameterDescriptorForAnnotationParameter(valueName, classDescriptor);
if (valueParameterDescriptor == null) {
return null;
}
JetType expectedArrayType = valueParameterDescriptor.getType();
return new ArrayValue(values, expectedArrayType);
}
@@ -1710,21 +1711,6 @@ public class JavaDescriptorResolver implements DependencyClassByQualifiedNameRes
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
private CompileTimeConstant<?> getCompileTimeConstFromReferenceExpression(PsiReferenceExpression value, List<Runnable> taskList) {
PsiElement resolveElement = value.resolve();