EA-39486 Fixed - IAE: AnnotationResolver.resolveAnnotationArgument

This commit is contained in:
Natalia.Ukhorskaya
2012-10-24 12:28:58 +04:00
parent b62fe5f5fb
commit 34a9d6a469
@@ -120,14 +120,17 @@ public class AnnotationResolver {
List<ValueArgument> valueArguments = descriptorToArgument.getValue().getArguments(); List<ValueArgument> valueArguments = descriptorToArgument.getValue().getArguments();
ValueParameterDescriptor parameterDescriptor = descriptorToArgument.getKey(); ValueParameterDescriptor parameterDescriptor = descriptorToArgument.getKey();
for (ValueArgument argument : valueArguments) { for (ValueArgument argument : valueArguments) {
JetExpression argumentExpression = argument.getArgumentExpression();
if (argumentExpression != null) {
CompileTimeConstant<?> compileTimeConstant = CompileTimeConstant<?> compileTimeConstant =
resolveAnnotationArgument(argument.getArgumentExpression(), parameterDescriptor.getType(), trace); resolveAnnotationArgument(argumentExpression, parameterDescriptor.getType(), trace);
if (compileTimeConstant != null) { if (compileTimeConstant != null) {
descriptor.setValueArgument(parameterDescriptor, compileTimeConstant); descriptor.setValueArgument(parameterDescriptor, compileTimeConstant);
} }
} }
} }
} }
}
@Nullable @Nullable
public CompileTimeConstant<?> resolveAnnotationArgument(@NotNull JetExpression expression, @NotNull final JetType expectedType, final BindingTrace trace) { public CompileTimeConstant<?> resolveAnnotationArgument(@NotNull JetExpression expression, @NotNull final JetType expectedType, final BindingTrace trace) {