ConversionResult (@NotNull PsiType targetType, @NotNull PsiType actualType, @NotNull Position position, @NotNull GroovyPsiElement context) { if (position == ASSIGNMENT && resolvesTo(targetType, JAVA_UTIL_SET) && actualType instanceof EmptyListLiteralType) { return ConversionResult.OK; } if (isCompileStatic(context)) { return isCSConvertible(targetType, actualType, context); } if (!isCollectionOrArray(targetType) || !isCollectionOrArray(actualType)) return null; final PsiType lComponentType = extractComponentType(targetType); final PsiType rComponentType = extractComponentType(actualType); if (lComponentType == null || rComponentType == null) return ConversionResult.OK; if (TypesUtil.isAssignableByParameter(lComponentType, rComponentType, context)) return ConversionResult.OK; return null; }