private static bool CheckSingleType(PredefinedType predefinedType, IPsiModule psiModule, IType type, ITypeConversionRule conversionRule, IType typeInDeclaration) { if (!type.IsGenericOrNonIEnumerable()) { if (!type.IsSubtypeOf(predefinedType.Array)) return true; IDeclaredType scalarType = type.GetScalarType(); return scalarType != null && scalarType.IsImplicitlyConvertibleTo(typeInDeclaration, conversionRule); } IDeclaredType ienumerableOf = CollectionTypeUtil.CreateIEnumerableOf(psiModule, typeInDeclaration); return ienumerableOf == null || type.IsImplicitlyConvertibleTo(ienumerableOf, conversionRule); }