ConversionResult (@NotNull PsiType targetType, @NotNull PsiType actualType, @NotNull GroovyPsiElement context) { if (targetType instanceof PsiArrayType && actualType instanceof PsiArrayType) { if (((PsiArrayType)targetType).getComponentType() instanceof PsiPrimitiveType != ((PsiArrayType)actualType).getComponentType() instanceof PsiPrimitiveType) { // groovy 3.0.13 disallows boxing in array components return null; } return TypesUtil.isAssignableByParameter(((PsiArrayType)targetType).getComponentType(), ((PsiArrayType)actualType).getComponentType(), context) ? ConversionResult.OK : ConversionResult.ERROR; } return null; }