private static bool IsPropertyCandidate(PropertyDeclarationSyntax propertySyntax, SemanticModel semanticModel) { if (HasDocumentationComment(propertySyntax)) { return(false); } var propertySymbol = semanticModel.GetDeclaredSymbol(propertySyntax); if (propertySymbol == null || !propertySymbol.IsOverride || propertySymbol.IsSealed || propertySymbol.OverriddenProperty == null) { return(false); } if (propertySymbol.GetMethod != null && propertySymbol.OverriddenProperty.GetMethod == null) { return(false); } if (propertySymbol.SetMethod != null && propertySymbol.OverriddenProperty.SetMethod == null) { return(false); } if (SymbolHelper.IsAnyAttributeInOverridingChain(propertySymbol)) { return(false); } return(CheckGetAccessorIfAny(propertySyntax, propertySymbol, semanticModel) && CheckSetAccessorIfAny(propertySyntax, propertySymbol, semanticModel)); }
private static bool IsMethodSymbolExcluded(IMethodSymbol methodSymbol) { return (methodSymbol == null || !methodSymbol.IsOverride || methodSymbol.IsSealed || methodSymbol.OverriddenMethod == null || IgnoredMethodNames.Contains(methodSymbol.Name) || methodSymbol.Parameters.Any(p => p.HasExplicitDefaultValue) || methodSymbol.OverriddenMethod.Parameters.Any(p => p.HasExplicitDefaultValue) || SymbolHelper.IsAnyAttributeInOverridingChain(methodSymbol)); }
public void IsAnyAttributeInOverridingChain_WhenPropertySymbolIsNull_ReturnsFalse() => SymbolHelper.IsAnyAttributeInOverridingChain((IPropertySymbol)null).Should().BeFalse();