diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaDescriptorResolver.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaDescriptorResolver.java index 747dbfc9530..664573e9ba6 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaDescriptorResolver.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaDescriptorResolver.java @@ -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 constructors = clazz.getConstructors(); - assert constructors.size() == 1 : "Annotation class descriptor must have only one constructor"; - List 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 taskList) { PsiElement resolveElement = value.resolve();