private bool IsViableFieldOrProperty( ITypeSymbol parameterType, ISymbol symbol) { if (symbol != null && !symbol.IsStatic && parameterType.Language == symbol.Language) { if (symbol is IFieldSymbol field) { return (!field.IsReadOnly && _service.IsConversionImplicit(_semanticDocument.SemanticModel.Compilation, parameterType, field.Type)); } else if (symbol is IPropertySymbol property) { return (property.Parameters.Length == 0 && property.SetMethod != null && IsSymbolAccessible(property.SetMethod) && _service.IsConversionImplicit(_semanticDocument.SemanticModel.Compilation, parameterType, property.Type)); } } return(false); }