private static boolean isAnnoTypeAssignable(@Nullable PsiType type,
                                              @Nullable PsiType rtype,
                                              @NotNull GroovyPsiElement context,
                                              boolean skipArrays) {
    rtype = TypesUtil.unboxPrimitiveTypeWrapper(rtype);
    if (TypesUtil.isAssignableByMethodCallConversion(type, rtype, context)) return true;

    if (!(type instanceof PsiArrayType && skipArrays)) return false;

    final PsiType componentType = ((PsiArrayType)type).getComponentType();
    return isAnnoTypeAssignable(componentType, rtype, context, skipArrays);
  }
private static boolean isAnnoTypeAssignable(@Nullable PsiType type,
                                              @Nullable PsiType rtype,
                                              @NotNull GroovyPsiElement context,
                                              boolean skipArrays)